DAY8 Final等

Final关键字

final修饰静态变量,这个变量今后被称为常量, 可以记住一个固定值,并且程序中不能修改了,通常这个值作为系统的配置信息。常量的名称,建议全部大写,多个单词用下划线连接。

复制代码
    public static final String CARD_TYPE_GOLD = "gold";

final修饰实例变量一般没有意义。

单例类(设计模式)

一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。

目的:确保某个类只能创建一个对象

实现步骤:

饿汉式

对象直接创建好了再用

把类的构造器私有。

定义一个类变量记住类的一个对象。

定义一个类方法,返回对象。

懒汉式

用对象才创建

把类的构造器私有。

定义一个静态变量用于存储对象。

提供一个静态方法,保证返回的是同一个对象。

枚举类

枚举类中的第一行,只能写枚举类的对象名 称,且要用逗号隔开。

这些名称,本质是常量,每个常量都记住了枚举类的一个对象。

反编译后 javap .\1.class

场景

枚举类很适合做信息分类和标志,比如键盘的上下左右

抽象类

注意&特点

抽象类的注意事项、特点

抽象类中不一定要有抽象方法,有抽象方法的类必须是抽象类。

类有的成员:成员变量、方法、构造器,抽象类都可以有。
抽象类最主要的特点:抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现。

一个类继承抽象类,必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。

场景

父类知道每个子类都要做某个行为,但每个子类要做的情况不一样,父类就定义成抽象方法,交给子类去重写实现,我们设计这样的抽象类,就是为了更好的支持多态。

模板方法(设计模式)

提供一个方法作为完成某类功能的模板,模板方法封装了每个实现步骤,但允许子类提供特定步骤的实现。

接口类

Java提供了一个关键字interface定义出接口。

JDK8之前只能写常量(final static 赋值)和抽象方法,接口不能创建对象

实现类实现多个接口,必须重写完全部接口的全部抽象方法,否则则需要定义为抽象类。

作用

弥补了类单继承的不足,一个类同时可以实现多个接口,使类的角色更多,功能更强大。

让程序可以面向接口编程,这样程序员就可以灵活方便的切换各种业务实现(更利于程序的解耦合)

接口和抽象类的区别

相关推荐
泡海椒7 分钟前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
景熙55231 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
wno7042 小时前
Spring Security权限控制
java·python·spring
杨运交2 小时前
[071][验证码模块]基于Spring拦截器的验证码认证设计思想
java·后端·spring
Geek-Chow3 小时前
CountDownLatch in Java
java
SL_staff3 小时前
从RBAC到场景化授权:《无忧·企业文档》三级权限模型的技术实践解析
java·开源·产品
传奇开心果编程4 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
SL_staff4 小时前
财务系统慎用低代码?从数据模型闭环看合规落地的技术实践
java·低代码·全栈
滕州市燕猫虎计算机科技工作室个体工商户4 小时前
IDEA:Command line is too long
java·ide·intellij-idea
步行cgn5 小时前
Spring p 命名空间注入详解
java·前端·spring