当利用 5 修饰一个属性(变量)的时候,此时的属性成为常量。
22 利用 5 定义常量(注意在 22 命名规范中常量需要全部字母都大写):
;2*87;
常量的地址不可改变,但在地址中保存的值(即对象的属性)是可以改变的。
; 可以配合 使用。?
5,*87;
在 22 中利用 5 的组合方式对常量进行标识(固定格式)。
对于在构造方法中利用 5 进行赋值的时候,此时在构造之前系统设置的默认值相对于构造方法失效。
常量(这里的常量指的是实例常量:即成员变量)赋值:
① 在初始化的时候通过显式声明赋值。Final int x=3;
② 在构造的时候赋值。
局部变量可以随时赋值。
利用 nal 定义方法:这样的方法为一个不可覆盖的方法。
Public nal void print(){};
为了保证方法的一致性(即不被改变),可将方法用 nal 定义。
如果在父类中有 nal 定义的方法,那么在子类中继承同一个方法。
如果一个方法前有修饰词 private 或 static,则系统会自动在前面加上 nal。即 private 和
static 方法默认均为 nal 方法。
注:nal 并不涉及继承,继承取决于类的修饰符是否为 private、default、protected 还是
public。也就是说,是否继承取决于这个方法对于子类是否可见。
Abstract(抽象)可以修饰类、方法
如果将一个类设置为 abstract,则此类必须被继承使用。此类不可生成对象,必须被继承使用。
Abstract 可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。
Abstract 虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。
Final 和 abstract 永远不会同时出现。
当 abstract 用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现,实现留给子类覆盖,
子类覆盖该方法之后方法才能够生效。
注意比较:
private void print(){};此语句表示方法的空实现。
Abstract void print();•此语句表示方法的抽象,无实现。
如果一个类中有一个抽象方法,那么这个类一定为一个抽象类。
反之,如果一个类为抽象类,那么其中可能有非抽象的方法。
如果让一个非抽象类继承一个含抽象方法的抽象类,则编译时会发生错误。因为当一个非抽象类继承一
达内 java 学习笔记