三个修饰符
public 属性 方法 构造方法 类
protected 属性 方法 构造方法
default 属性 方法 构造方法 类
private 属性 方法 构造方法
static 静态的
1) 属性 类变量 不属于任何对象,全类共有,可以直接用类名访问
类变量在类加载的时候分配空间并初始化,而不是对象创建时
2) 方法 静态方法可以直接用类名调用
静态方法中只能访问类的静态成员(属性+方法) (不能访问this)
非静态方法中可以访问类的静态成员
静态方法之间可以覆盖,但是 没有多态!
对引用调用静态方法,等价于对引用类型调用静态方法
3) 初始代码块 静态初始代码块
类加载的时候执行一次
类加载:当JVM第一次使用一个类时,需要通过ClassPath找到这个类对应的.class文件,并把文件中的类的信息读取到JVM,并保存起来.
类加载的过程:
1.如果需要,先加载父类
2.按照类的定义顺序,初始化静态属性,或执行静态初始代码块
一般情况下,一个类只会加载一次
final
1)变量 常量 一旦赋值,不能改变
常量属性,系统不再提供默认值.由程序员在初始化属性或构造方法中主动赋值
2)方法 不能被覆盖
3)类 不能被继承
abstract 抽象的
1)类 抽象类只能声明引用,不能创建对象
半成品 供子类继承
2)方法 抽象方法只有声明,没有实现
如果一个类中有抽象方法,这个类必须是抽象类;抽象类中未必有抽象方法
子类继承抽象类,如果子类不希望也成为抽象类,就必须实现父类中所有的抽象方法
static private final 不能和abstract联用