public、private、protected、default 访问权限的区别以及其它的Java修饰词
来源:互联网 发布:知微数据华为 编辑:程序博客网 时间:2024/06/08 01:05
Java中public、private、protected 访问权限的区别
java平台中的public,protected,private是Java里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如:
这四个修饰符的访问权限如下表
-----------------------------------------------
类内部 package内 子类 其他
public 允许 允许 允许 允许
protected 允许 允许 允许 不允许
default 允许 允许 不允许 不允许
private 允许 不允许 不允许 不允许
-----------------------------------------------
比如:用protected修饰的成员(变量或方法),在类内部可以调用,同一个package下的其他类也可以调用,子类里也可以调用,其他地方则不可以调用,也就是说在其他
Java语言定义了public、protected、private、abstract、static和final这6常用修饰 词外还定义了5个不太常用的修饰词,下面是对这11个Java修饰词的介绍:
介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的
介绍:成员只可以在定义它的类中被访问
介绍:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。静态方法 是类方法, 是被指向到所属的类而不是类的实例。静态字段是类字段,无论该字段所在的类创建了 多少实例,该字段只存在一个实例被指向到所属的类而不是类的实例。初始化函数是在装载类时执行 的,而不是在创建 实例时执行的。
介绍:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态查询),字段值 不允许被修改。
介绍:类中包括没有实现的方法,不能被实例化。如果是一个abstract方法,则方法体
为空,该方
法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract类
介绍:成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类 必须是该成员所属类的子类。
介绍:与操作平台相关,定义时并不定义其方法,方法的实现被一个外部的库实现。
介绍:strictfp修饰的类中所有的方法都隐藏了strictfp修饰词,方法执行的所有浮点 计算遵守 IEEE 754标准,所有取值包括中间的结果都必须表示为float或double类型,而不能利用 由本地平台浮 点格式或硬件提供的额外精度或表示范围。
介绍:对于一个静态的方法,在执行之前jvm把它所在的类锁定;对于一个非静态类的方 法,执行 前把某个特定对象实例锁定。
介绍:因为异步线程可以访问字段,所以有些优化操作是一定不能作用在字段上的。 volatile有时 可以代替synchronized。
介绍:字段不是对象持久状态的一部分,不应该把字段和对象一起串起。
java平台中的public,protected,private是Java里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如:
public class B{ 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
使用对象:字段介绍:字段不是对象持久状态的一部分,不应该把字段和对象一起串起。
0 0
- public、private、protected、default 访问权限的区别以及其它的Java修饰词
- java 中 private public protected default 访问权限的区别
- public,protected,default ,private的访问权限
- public default protected private的访问权限区别
- java类的访问权限问题(public default private protected)
- Java访问权限修饰词private、public、protected、default、default(缺省)
- Java访问控制符private, default, protected, public的区别
- Java public protected default private 访问权限区别
- JAVA修饰词详解:public、protected、default、private
- Java中 public、private、protected 访问权限的区别
- JAVA的public,private,protected访问权限
- c# 修饰词public, protected, private,internal,protected的区别
- c# 修饰词public, protected, private,internal,protected的区别
- c# 修饰词public, protected, private,internal,protected的区别
- 访问修饰符public,private,protected,default时的区别
- Java的public、protected、default和private权限
- Java【public、private、protected区别】-访问权限
- Java【public、private、protected区别】-访问权限
- 为什么那么多家长选择童年汇
- GWT 设置TextBox输入时的字体大小
- Java 理论与实践: 处理 InterruptedException
- Android中SQLite应用详解
- 链表操作
- public、private、protected、default 访问权限的区别以及其它的Java修饰词
- HDUJ 2015 偶数求和
- 理想的早教班是什么样的?
- Spring 3整合Quartz 2实现定时任务三:动态暂停 恢复 修改和删除任务
- UVA The Sultan's Successors
- seajs模块依赖的加载处理
- LPC Function
- MultiBroadcastTest
- 动态规划3-Warshall算法和Floyd算法