修饰符, 修饰符控制范围和使用范围
类修饰符:public,protected,private,缺省的访问修符,abstract,final
域的修饰符:public, protected, private, static, final, transient, volatile
方法修饰符:public, protected, private, static, final, abstract, native, synchronized
类
访问修饰符 修饰符 class 类名称 [extends 父类名称 implement 接口名称]{
成员变量定义;
构造函数定义;
成员方法定义;
}
注:访问修饰符与修饰符的位置可以互换
类修饰符
访问控制修饰符:Public , Protected(内部类使用), Private(内部类使用) ,缺省的访问修饰符
抽象类修饰符:Abstract
最终类修饰符: Final
访问控制修饰符: |
||
名称说明备注 |
名称说明备注 |
名称说明备注 |
Public |
定义为pulbic类可以被任何包中的类所使用,不加public类只能由同一个源文件或同一个包中的类使用. |
在同一个源文件中不能同时包含两个public. public类必须在java文件中定义. |
Protected(内部类使用) |
Protected关键字限定类的成员仅仅可以被该类及其子类访问。 |
|
Private(内部类使用) |
Private限定类的成员公能被该类的其他成员使用 |
有利于内部信息隐藏 |
缺省的访问修饰符 |
缺省的访问修饰符 |
缺省的访问修饰符 |
抽象类修饰符: |
||
Abstract一 |
用此关键字的类是一个未完成的类,该类中只是声明方法,但不能实现 |
不能用实例化对象,只能被继承 非abstract类中含有abstract,编译出错 Abstract和final只能用其一 |
最终类修饰符: |
||
Final |
不能被继承,提高安全性,完美。Final的定义是完整的,不可以有任何的子类 |
Abstract和final只能用其一 |
域(类中的属性或变量)
¡ [域修饰符] 类型 变量[=初始值][,变量]
变量: |
成员变量 |
局部变量 |
|
定义 |
在类中定义的变量 |
方法中定义的变量以及方法的参数 |
|
可分为: |
实例变量(类中的非静态变量) 类变量(类中的静态变量)static |
||
初始化器 |
{} Static{} |
无 |
|
类型: |
两都都可以使用java中的任意类型(如:int,boolean,float…) |
||
作用范围: |
整个类类中有效 |
只在定义它的方法中有效 |
|
修饰符: |
有访问修饰符 |
无 |
|
初始化: |
可心不初始化(null(引用类型)或者0、false) |
必须初始化 |
|
注: |
1.如果局部变量的名字与成员变量的名字相同,则成员变量将在方法中被隐藏 |
||
当你需要使用成员变量时,可采用关键字(this),但在static方法中不能使用this,supper关建字。 |
域修饰符
名称 |
说明 |
备注 |
访问控制修饰符 |
||
public |
可以被任何类访问 |
|
protected |
可以被同一包中的所有类访问 可以被所有子类访问 |
子类没有在同一包中也可以访问 |
Private |
只能够被当前类的方法访问 |
|
缺省 无访问修饰符 |
可以被同一包中的所有类访问 |
如果子类没有在同一个包中,也不能访问 |
静态域修饰符 |
||
static |
静态变量(又称为类变量,其它的称为实例变量) |
可以被类的所有实例共享。 并不需要创建类的实例就可以访问静态变量 |
最终域修饰符 |
||
Final |
常量,值只能够分配一次,不能更改 |
注意不要使用const,虽然它和C、C++中的const关键字含义一样 可以同static一起使用,避免对类的每个实例维护一个拷贝 |
其它修饰符 |
||
Transient |
告诉编译器,在类对象序列化的时候,此变量不需要持久保存 |
主要是因为改变量可以通过其它变量来得到,使用它是为了性能的问题 |
volatile |
指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确的处理 |
方法
访问修饰符 修饰符 返回类型 方法名称(参数列表)throws 违例列表
¡ 类的构造器方法不能够有修饰符、返回类型和throws子句
¡ 类的构造器方法被调用时,它首先调用父类的构造器方法,然后运行实例变量和静态变量的初始化器,然后才运行构造器本身。
¡ 如果构造器方法没有显示的调用一个父类的构造器,那么编译器会自动为它加上一个默认的super(),而如果父类又没有默认的无参数构造器,编译器就会报错。super必须是构造器方法的第一个子句。
¡ 注意理解private构造器方法的使用技巧。
方法的修饰符
¡ 访问控制修饰符 :Public , protected ,缺省
无访问修饰符
¡ 静态方法修饰符 :static
¡ 最终方法修饰符 :Final
¡ 抽象方法修饰符 :Abstract
¡ 本地方法修饰符 : Native
¡ 同步方法修饰符 :synchronized
访问修饰符 |
本类 |
同一包中的类 |
不同包中的类 |
Public |
? |
?* |
?* |
Private |
? |
||
Protected |
? |
?* |
* |
缺省 |
? |
?* |
|
?可访问 *可继承 |
修饰符的使用范围
修饰符 |
类 |
方法 |
变量 |
Final |
Y |
Y |
Y |
Abstract |
Y |
Y |
N |
Static |
N |
Y |
Y |
Native |
N |
Y |
N |
Transient |
N |
N |
Y |
Volatile |
N |
N |
Y |
synchronized |
N |
Y |
N |