-
定义
public,static等,这种用来修饰或者标明类、方法或者变量属性的标识符,就是修饰符。通常放在语句的最前端, -
按照功能可以分为下面两大类:
访问控制修饰符: 用来控制对类、方法和变量访问权限的修饰符。
非访问修饰符: 除访问控制修饰符以外的用来修饰变量或者方法的修饰符。 -
访问控制修饰符
-
default:
可以用来修饰类、接口、变量、方法。在同一包内可见,不使用任何修饰符,即缺省,可以不写。 -
public:
用来修饰类、接口、变量、方法。 对所有类可见。接口里的变量都隐式声明为 public static final, 而接口里的方法默认情况下访问权限为 public。 -
private:
用来修饰变量和方法,在同一类内可见。私有访问修饰符是最严格的访问级别,所以被声明为 private 的方法、变量和构造方法只能被所属类访问,并且类和接口不能声明为 private。声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。此访问修饰符的使用目的主要是用来隐藏类的实现细节和保护类的数据。 -
protected:
修饰变量和方法,特别注意不能修饰类。 对同一包内的类和所有子类可见。
-
子类与基类在同一包中:被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问;
-
子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法。
区别与联系 -
非访问修饰符
-
static
如果static用来修饰变量,就叫静态变量;如果用来修饰方法,就叫做静态方法。
- 静态变量: 静态变量是属于类本身的,也就是说无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。
-
静态方法: 静态方法也是属于类本身的,需要注意的是静态方法不能使用类的非静态变量。
对类变量和方法的访问可以直接使用 **classname.variablename **和 **classname.methodname **的方式访问。
-
final
final 表示"最后的、最终的"含义,通常用于声明系统中的共有的不变的常量。需要注意一下几点:
- 变量一旦赋值后,不能被重新赋值。
- 被 final 修饰的实例变量必须显式指定初始值。
- final 修饰符通常和 static 修饰符一起使用来创建类常量, 变量通常大写。
- final还可以修饰方法,类中的 final 方法可以被子类继承,但是不能被子类修改。
- 也可以用来修饰类,final 类不能被继承,没有类能够继承 final 类的任何特性。
public class Test{
public static final int BOXWIDTH = 6;
static final String TITLE = "Manager";
}
-
其他
abstract、synchronized、transient、volatile
网友评论