修饰符, 修饰符控制范围和使用范围
类修饰符: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
|
综合实例
• BedeckDome.java类:
• 类Test.java(未完)