DAY8 Final等

Final关键字

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

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

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

单例类(设计模式)

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

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

实现步骤:

饿汉式

对象直接创建好了再用

把类的构造器私有。

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

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

懒汉式

用对象才创建

把类的构造器私有。

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

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

枚举类

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

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

反编译后 javap .\1.class

场景

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

抽象类

注意&特点

抽象类的注意事项、特点

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

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

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

场景

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

模板方法(设计模式)

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

接口类

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

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

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

作用

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

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

接口和抽象类的区别

相关推荐
皮皮林5517 小时前
Java性能调优黑科技!1行代码实现毫秒级耗时追踪,效率飙升300%!
java
冰_河7 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
桦说编程10 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅12 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者13 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺13 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart14 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP15 小时前
MyBatis-mybatis入门与增删改查
java
孟陬18 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端