您的位置:首页 > 编程语言 > Java开发

Java【public、private、protected区别】-访问权限

2016-11-04 14:15 288 查看
public,protected,private是Java里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如: 

public   class   A{ 

    void   method(){}; 



method就属于default权限。 

这四个修饰符的访问权限如下表: 

----------------------------------------------- 

                      类内部     package内       子类         其他 

public             允许         允许                 允许         允许 

protected       允许         允许                 允许         不允许 

default           允许         允许                 不允许     不允许 

private           允许         不允许             不允许     不允许 

----------------------------------------------- 

比如:用protected修饰的成员(变量或方法),在类内部可以调用,同一个package下的其他类也可以调用,子类里也可以调用,其他地方则不可以调用,也就是说在其他
 
 
 
Java语言定义了public、protected、private、abstract、static和final这6常用修饰 

词外还定义了5个不太常用的修饰词,下面是对这11个Java修饰词的介绍: 

1.public 

使用对象:类、接口、成员 

介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的 

2.private 

使用对象:成员 

介绍:成员只可以在定义它的类中被访问 

3.static 

使用对象:类、方法、字段、初始化函数 

介绍:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。静态方法 

是类方法, 

是被指向到所属的类而不是类的实例。静态字段是类字段,无论该字段所在的类创建了 

多少实例,该字 

段只存在一个实例被指向到所属的类而不是类的实例。初始化函数是在装载类时执行 

的,而不是在创建 

实例时执行的。 

4.final 

使用对象:类、方法、字段、变量 

介绍:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态查询),字段值 

不允许被 

修改。 

5.abstract 

使用对象:类、接口、方法 

介绍:类中包括没有实现的方法,不能被实例化。如果是一个abstract方法,则方法体 

为空,该方 

法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract类 

6.protected 

使用对象:成员 

介绍:成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类 

必须是该成 

员所属类的子类。 

7.native 

使用对象:成员 

介绍:与操作平台相关,定义时并不定义其方法,方法的实现被一个外部的库实现。 

8.strictfp 

使用对象:类、方法 

介绍:strictfp修饰的类中所有的方法都隐藏了strictfp修饰词,方法执行的所有浮点 

计算遵守 

IEEE   754标准,所有取值包括中间的结果都必须表示为float或double类型,而不能利用 

由本地平台浮 

点格式或硬件提供的额外精度或表示范围。 

9.synchronized 

使用对象:方法 

介绍:对于一个静态的方法,在执行之前jvm把它所在的类锁定;对于一个非静态类的方 

法,执行 

前把某个特定对象实例锁定。 

10.volatile 

使用对象:字段 

介绍:因为异步线程可以访问字段,所以有些优化操作是一定不能作用在字段上的。 

volatile有时 

可以代替synchronized。 

11.transient 

使用对象:字段 

介绍:字段不是对象持久状态的一部分,不应该把字段和对象一起串起。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: