三大修饰符: static final abstract
修饰符分类:访问修饰符(public、private、protected、default)
static
修饰对象:属性、方法和初始代码块
类:静态内部类
Class Outer{
static Class Inner{
}
}
属性:全类共有
成员变量:包括实例变量和类变量(静态变量)。但普遍将非静态成员变量叫做成员变量。
访问方式:类名访问 类名.属性
方法:全类共有
调用方式:类名调用 类名.方法
注意要点:
(1)静态方法不能调用非静态方法,由于非静态的方法在创建对象时才会出现,而静态方法是在类加载时出现的,所以用静态方法调用非静态方法,非静态方法可能还没有出现对象。
(2)静态方法覆盖要求子类中的方法必须也是静态方法,而且没有多态。
静态方法的调用只和引用有关,对引用调用静态方法,等同于对引用的引用类型调用静态方法。
初始代码块:初始化属性时运行
补充:
(1)类的创建步骤中、第三步是初始化本类属性
(2)类加载:java中有一个类叫classLoader在遇到创建类时,会加载类。是属于虚拟机的组件,当虚拟机第一次遇到一个类时,会到ClassPath中找到对应的字节码文件,将内容读入虚拟机保存起立,只执行一次。
(3)类加载出现的时机:创建类对象时,访问静态成员。声明类的引用不会发生类加载。
(4)出现的过程:加载父类、按照程序定义的顺序,初始化静态成员或执行静态初始化代码。
特例:static是不可以修饰类的 但都可以修饰内部类 换句话说就是以上内容是针对的都是外部类。
final
修饰对象:类、属性和方法
类:修饰的类不能被继承
方法:修饰的方法不能被子类覆盖,只能继承。
属性:一旦修饰赋值即为常量。变量没有默认值,要求程序猿主动赋值。
赋值时机:初始化属性、构造方法和静态初始代码块。
abstract
修饰对象:类和方法
类:只能声明引用,不能创建对象,主要供子类继承
方法:只有声明没有实现。
要点:
(1)一个类中有一个抽象方法,那么这个类一定是抽象方法。如果一个类不想变成抽象类,就要把抽象方法实现。
(2)可有构造方法
(3)final、static和private都不能和abstract相遇
修饰符分类:访问修饰符(public、private、protected、default)
static
修饰对象:属性、方法和初始代码块
类:静态内部类
Class Outer{
static Class Inner{
}
}
属性:全类共有
成员变量:包括实例变量和类变量(静态变量)。但普遍将非静态成员变量叫做成员变量。
访问方式:类名访问 类名.属性
方法:全类共有
调用方式:类名调用 类名.方法
注意要点:
(1)静态方法不能调用非静态方法,由于非静态的方法在创建对象时才会出现,而静态方法是在类加载时出现的,所以用静态方法调用非静态方法,非静态方法可能还没有出现对象。
(2)静态方法覆盖要求子类中的方法必须也是静态方法,而且没有多态。
静态方法的调用只和引用有关,对引用调用静态方法,等同于对引用的引用类型调用静态方法。
初始代码块:初始化属性时运行
补充:
(1)类的创建步骤中、第三步是初始化本类属性
(2)类加载:java中有一个类叫classLoader在遇到创建类时,会加载类。是属于虚拟机的组件,当虚拟机第一次遇到一个类时,会到ClassPath中找到对应的字节码文件,将内容读入虚拟机保存起立,只执行一次。
(3)类加载出现的时机:创建类对象时,访问静态成员。声明类的引用不会发生类加载。
(4)出现的过程:加载父类、按照程序定义的顺序,初始化静态成员或执行静态初始化代码。
特例:static是不可以修饰类的 但都可以修饰内部类 换句话说就是以上内容是针对的都是外部类。
final
修饰对象:类、属性和方法
类:修饰的类不能被继承
方法:修饰的方法不能被子类覆盖,只能继承。
属性:一旦修饰赋值即为常量。变量没有默认值,要求程序猿主动赋值。
赋值时机:初始化属性、构造方法和静态初始代码块。
abstract
修饰对象:类和方法
类:只能声明引用,不能创建对象,主要供子类继承
方法:只有声明没有实现。
要点:
(1)一个类中有一个抽象方法,那么这个类一定是抽象方法。如果一个类不想变成抽象类,就要把抽象方法实现。
(2)可有构造方法
(3)final、static和private都不能和abstract相遇