面向对象高级
2025年3月20日大约 2 分钟
面向对象高级
final 关键字
final 最终,可以修饰:类、方法、变量
特点
- 修饰类:最终类,不能被继承 (工具类)
- 修饰方法:最终方法,不能被重写
- 修饰变量:常量,只能赋值一次
- 一般不会用来修饰实例变量
- 修饰基本类型的变量:变量存储数据不能改变
- 修饰引用类型的变量:变量存储地址值不能改变,但是地址指向的内容可以改变
常量
常量:
- 使用了static final 修饰的成员变量
- 在程序运行过程中,其值不可以发生改变
常量的命名规范:大写英文单词,多个单词使用下划线分割
public class Person{
public static final String PLANET = "The Earth";
}
常量的优点
- 代码可维护性好
- 程序在编译时就会将使用常量的地方,进行宏替换,因此对程序性能没有影响
单例类(设计模式)
保证一个类只有一个对象
什么是设计模式
设计模式(Design pattern)是软件开发人员在软件开发过程中面临的一般问题的解决方案。即解决问题的最优解
饿汉式单例
在类加载时,就创建对象
写法
- 把类的构造器私有
- 定义一个静态变量(类变量)记住类的一个对象
- 定义一个静态方法(类方法)返回对象
public class A {
// 定义一个类变量(静态变量)记住类的一个对象
private static A a = new A();
// 私有化构造器
private A(){}
// 定义一个类方法返回对象
public static A getInstance(){
return a;
}
}
懒汉式单例
在使用对象时,才创建对象
写法
- 把类的构造器私有
- 定义一个静态变量(类变量)记住类的一个对象
- 提供静态方法,返回的要是同一个对象
public class A {
// 定义一个类变量(静态变量)记住类的一个对象
private static A a;
// 私有化构造器
private A(){}
// 提供静态方法,返回的要是同一个对象(在使用对象时,才创建对象)
public static A getInstance(){
if(a == null){
a = new A();
}
return a;
}
}