JAVA-DAY7-面向对象进阶
final关键词
final关键词是什么?
final是最终的意思,可以修饰类,方法,变量
- 修饰类:该类被称为最终类,特点是不能被继承了
- 修饰方法:该方法被称为最终方法,特点是不能被重写了
- 修饰变量:该变量有且仅能被赋值一次
1,类不能被继承
2,方法不能被重写
3,final修饰变量:变量有且仅能被赋值一次
变量有哪些呢?
a,成员变量:
静态成员变量
实例成员变量
b,局部变量
//final修饰静态变量,这个变量以后被称为常量,可以记住有一个固定值,并且程序中不能修改了,通常这个值作为系统的配置信息
public static final String schoolName = "黑马程序员";
final在变量这块只修饰静态变量,不修饰实例变量
常量
使用常量记录系统配置信息的优势、执行原理
.代码可读性更好/可维护性也更好。
.程序译后,常量会被“宏替换":出现常量的地方全部会被替换成其记住
的字面量/这样可以保证使用常量和直接用字面量的性能是一样的。
单例类
单例类是为了创建出一个类,这个类只去创建出唯一对象,比如任务管理器,多了反而浪费内存
因此我们需要单例类,单例类分两种,一种是懒汉式单例类,一种是饿汉式单例类,这两种类都分别有不同的优势和应用场景,并无好坏之分,接下来我们要介绍这两种单例类
饿汉式单例类
饿汉式单例:拿对象时,对象早就被创建好了。
懒汉式单例类
二者区别与场景
饿汉式单例类在一开始调用类就创建好了对象,他调用对象更快,不需要判断,而懒汉式单例类需要判断,因此调用创建对象慢,但是懒汉式单例只有在真正需要创建对象才会创建对象(调用方法),因此不会浪费内存等,当我们不需要创建对象而是用懒汉式单例类里的其他方法,不会去创建对象