Final关键字
final修饰静态变量,这个变量今后被称为常量, 可以记住一个固定值,并且程序中不能修改了,通常这个值作为系统的配置信息。常量的名称,建议全部大写,多个单词用下划线连接。
public static final String CARD_TYPE_GOLD = "gold";
final修饰实例变量一般没有意义。
单例类(设计模式)
一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。
目的:确保某个类只能创建一个对象
实现步骤:
饿汉式
对象直接创建好了再用
把类的构造器私有。
定义一个类变量记住类的一个对象。
定义一个类方法,返回对象。
懒汉式
用对象才创建
把类的构造器私有。
定义一个静态变量用于存储对象。
提供一个静态方法,保证返回的是同一个对象。
枚举类
枚举类中的第一行,只能写枚举类的对象名 称,且要用逗号隔开。
这些名称,本质是常量,每个常量都记住了枚举类的一个对象。
反编译后 javap .\1.class
场景
枚举类很适合做信息分类和标志,比如键盘的上下左右
抽象类
注意&特点
抽象类的注意事项、特点
抽象类中不一定要有抽象方法,有抽象方法的类必须是抽象类。
类有的成员:成员变量、方法、构造器,抽象类都可以有。
抽象类最主要的特点:抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现。
一个类继承抽象类,必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。
场景
父类知道每个子类都要做某个行为,但每个子类要做的情况不一样,父类就定义成抽象方法,交给子类去重写实现,我们设计这样的抽象类,就是为了更好的支持多态。
模板方法(设计模式)
提供一个方法作为完成某类功能的模板,模板方法封装了每个实现步骤,但允许子类提供特定步骤的实现。
接口类
Java提供了一个关键字interface定义出接口。
JDK8之前只能写常量(final static 赋值)和抽象方法,接口不能创建对象
实现类实现多个接口,必须重写完全部接口的全部抽象方法,否则则需要定义为抽象类。
作用
弥补了类单继承的不足,一个类同时可以实现多个接口,使类的角色更多,功能更强大。
让程序可以面向接口编程,这样程序员就可以灵活方便的切换各种业务实现(更利于程序的解耦合)