Java中修饰符的分类及用法
访问权限修饰符:
public
-
修饰class,方法,变量;
-
所修饰类的名字必须与文件名相同,文件中最多能有一个pulic修饰的类。
private
-
class不可用,方法,变量可以用;
-
只限于本类成员访问和修改,本类和子类的对象实例都不能访问。
protected
-
class不可用,成员(方法&变量)可以用;
-
只限于本类和子类访问,本类和子类实例能访问。
default
-
即以上修饰符都没有;
-
只能在本类,以及同包下访问。
非访问修饰符
static
-
修饰类方法&类变量。
-
是静态修饰符,静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间。
final
-
修饰的类不能被继承;
-
修饰的方法不能被覆盖/覆写;
-
修饰的实例变量:
- 在创建对象时赋值,之后不能再次赋值;
- 在构造方法里给final实例变量赋值。这样在new对象的时候会给final变量赋给定的值;
- 默认的无参构造方法会给变量赋默认值。
-
修饰的引用变量:
- 不能更改引用地址(不能更改保存的值:内存地址),但是可以更改所指向对象的属性。
public static final 常量
- 修饰的静态变量属于类
abstract
-
final和abstract不能一块使用,对立的。
-
抽象类:除了不能实例化,其他都和别的一样
-
抽象方法:没有方法体,目的是让子类去覆写它
-
有抽象方法的类必须声明为抽象类,抽象类中可以没有抽象方法。
interface
-
接口只有抽象方法和常量。
-
接口里面的方法和常量可以不加abstract修饰符,接口中的东西全是public的
-
接口之间(多)继承用extends
-
不能有方法体,接口中没有构造方法。无法new对象
implements
- 非抽象类实现接口:必须覆写接口中的所有方法;
覆写的方法必须加上public(访问权限不能更低)