关于final:
final:最终的 --> 可以类比成阉割手术,被final修饰没有后续
可以修饰:类,成员变量,成员方法;
修饰类:最终的类,不能有子类
修饰成员变量:变成常量
自定义常量的格式:
public static final 数据类型 常量名 = 初始化值;
修饰成员方法:子类不能重写
关于static:
static:静态的
可以修饰:成员变量,成员方法
被 static 修饰的成员具备以下特点:
1.随着类的加载而加载优先于对象
2.被所有的对象所共享
3.可以使用类名直接调用
非静态成员方法 静态成员方法
静态成员变量 可以 可以
静态成员方法 可以 可以
非静态成员变量 可以 不可以
非静态成员方法 可以 不可以
静态虽好,但是只能访问静态的成员;
若要在静态方法内使用非静态的成员,必须提前创建好对象,使用对象调方法(属性);比如main()方法
静态在工具类中使用广泛:
工具类编写的步骤:
1.创建一个类 类名 XxxxUtils
2.私有无参构造方法并不提供任何其他的构造方法
3.把所有的成员方法使用 public static 修饰
所有的成员变量 使用自定义常量表示; public static final 去修饰
static 不能和哪些关键字公用:
1. this : this 代表的本类对象的引用,要有对象才会有this,而 static 修饰的方法是随着类的加载而加载优先于对象;
2. abstract : static 修饰的成员方法可以使用类名调用,而 abstract 修饰的方法没有方法体 不能被直接调用;