09、三个修饰符
1、abstract
1.1、什么是抽象
似是而非的,像却又不是;具备某种对象的特征,但不完整。
1.2、不该被创建的对象

1.3、抽象类
应用: abstract修饰类,此类不能new对象。

1.4、抽象类的作用

1.5、不该被实现的方法

1.6、抽象方法

1.7、总结
1、abstract修饰类 : 不能new对象,但可以声明引用。
2、abstract修饰方法 : 只有方法声明,没有方法实现。(需包含在抽象类中)
3、抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类。
4、子类继承抽象类后,必须重写父类中所有的抽象方法,否则子类还是抽象类。
2、static
2.1、实例属性
实例属性是每个对象各自持有的独立空间(多份),对象单方面修改,不会影响其他对象。

2.2、静态属性
静态属性是整个类共同持有的共享空间(一份),任何对象修改,都会影响其他对象。

2.3、什么是静态
1、静态(static)可以修饰属性和方法。
2、称为静态属性(类属性)、静态方法(类方法)。
3、静态成员是全类所有对象共享的成员。
4、在全类中只有一份,不因创建多个对象而产生多份。
5、不必创建对象,可直接通过类名访问。

2.4、静态方法

2.5、静态的特点
1、静态方法允许直接访问静态成员。
2、静态方法不能直接访问非静态成员。
3、静态方法中不允许使用this或是super关键字。
4、静态方法可以继承,不能重写、没有多态。
2.6、类加载
JVM首次使用某个类时,需通过CLASSPATH查找该类的.class文件。
将.class文件中对类的描述信息加载到内存中,进行保存。
如:包名、类名、父类、属性、方法、构造方法.…
加载时机:
创建对象。
创建子类对象。
访问静态属性。
调用静态方法。
主动加载:Class.forName(“全限定名”);
2.7、静态代码块

2.8、动态代码块

2.9、对象创建过程

2.10、带有继承的对象创建过程

2.11、总结
static修饰的成员为静态成员,无需创建对象,可直接通过类名访问。
静态方法不能直接访问非静态成员。
静态方法中不能使用this或super.
静态方法可以继承、不能重写、没有多态。
静态代码块在类加载时被执行,且只执行一次。
3、final
3.1、什么是最终
概念: 最后的,不可更改的
final可修饰的内容:
类(最终类)
方法(最终方法)
变量(最终变量)
3.2、final类
final修饰类: 此类不能被继承。
String、Math、System均为final修饰的类,不能被继承。
final修饰方法: 此方法不能被覆盖。
意为最终方法,不支持子类以覆盖的形式修改。
3.3、final变量
final修饰变量: 此变量值不能被改变(常量)

3.4、实例常量

3.5、静态常量

3.6、对象常量

3.7、总结
final修饰类: 此类不能被继承。
final修饰方法: 此方法不能被覆盖。
final修饰变量: 此变量值不能被改变。(无初始值、只允许赋值一次)。
局部常量:显示初始化。
实例常量:显示初始化、动态代码块、构造方法。
静态常量:显示初始化、静态代码块。
基本类型常量:值不可变。
引用类型常量:地址不可变。

浙公网安备 33010602011771号