private
private关键字,只有在本类之中可以被直接修改。
protected
如果一个类中变量或方法有修饰字protected,同一类、同一包可以使用。不同包的类要使用,必须是该类的子类才能存取变量或调用。
public
任何类和对象都可以引用。
注:如果前面不加public,private和final,那么只能被同包内的类和对象引用。
static
static修饰的类成员变量和类成员方法,只能被类调用,将作为类变量,可以不依靠创建对象来调用。比如静态工厂方法可以用来生成对象。但是该类的某一特定对象,也可以通过this.访问类的静态变量和静态方法。
static无法方法内的局部变量。
final
final修饰的变量:不能修改引用。
例如:对于immutable的类型,如int,String。不允许修改变量的值。
对于mutable的类型,如ArrayList,可以继续向其中添加或者修改元素,但是不能将新的ArrayList赋值给变量,否则会在编译阶段报错。
当用final作用于类的成员变量时,成员变量必须在定义时或者构造器中进行初始化赋值。
final修饰的方法:不能被Override
final修饰的类:不能被继承。final类中的成员方法将被视作final类型。
参考和引用: