欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java修饰符,

来源: javaer 分享于  点击 1864 次 点评:151

Java修饰符,


访问修饰符

default (即缺省,什么也不写)使用默认访问修饰符,在同一类,在同一包内的类是可见的。

*public*

接口都隐式声明为public static final ,接口里的方法默认情况下访问权限为public

不同包中的类虽然是public,但在访问时需要导入所在类的包:import 包

*protected*

protected不能修饰类和接口、接口的成员变量、成员方法,可修饰类的成员变量和方法。

~~~子类与父类在同一个包中,父类中protected成员变量、方法、构造方法可被子类访问

~~~子类与父类在不同包中,子类实例可访问其从父类继承来的protected方法,无法访问父类实例的protected方法

*private*

private修饰的变量、方法只能被所属的类访问,无法继承,接口和类不能声明为private类型

父类中声明为public的方法在子类中也必须是public
父类中声明为protected的方法要么为protected要么为public
父类中声明为private的方法无法被继承

非访问修饰符

*static* 修饰类变量和类方法

静态变量:一个类无论实现多少次实例,它的静态变量只有一个拷贝,静态变量也称为类变量,局部变量无法声明为静态变量。
静态方法:static声明的方法独立于对象存在,静态方法不能使用非静态变量,静态方法从参数列表中获得数据然后计算这些数据。
static变量只能初始化一次。
static变量相当于是类的公有属性,不会根据实例变化而变化。
static变量不是说不能改变,不能改变的量为常量,static变量不会因为函数调用变化而变化,在某个实例中修改了static变量的值,则它在所有的实例、类中都会是新的值。

*final*
final变量只能被显式地被初始化且只能初始化一次,final对象的引用不能指向不同的对象,但final对象的数据可以变
final与static一起创建一个类常量:public final static a=6;
类中的final方法可以被子类继承但不能被子类修改,声明final方法的主要目的就是为了该方法的内容不被修改
final类不能被继承,没有类能够继承final类的任何特性。

*abstract*
抽象类不能用来实例化,声明抽象类的唯一目的就是为了之后对该类进行扩充。
如果一个类中含有抽象方法,那么这个类只能声明为抽象类。
抽象类中可以有抽象方法和非抽象方法。

一个类不能同时用abstract和final进行修饰
抽象方法只有方法体,但没有具体实现。该方法的具体实现是在子类中实现的。 例: public abstract method();
任何继承抽象类的子类必须要实现父类的所有抽象方法,除非该子类也是抽象类

*synchronized*
synchronized修饰的方法同一时间只能被一个线程访问

*transient*
序列化的对象包含被transient修饰的实例变量时,JVM跳过该特定的变量。
该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。

*volatile*
volatile修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。若该成员变量值发生改变,会强制将变化的值写回共享内存,这样在不同线程同一时间看到某个成员变量同一个值。‘
一个volatile对象引用可能是null。

总结

 

 

 

 





相关文章

    暂无相关文章
相关栏目:

用户点评