三个修饰符 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联用