2022.3.23java学习记录

学习内容:

  1. 单例设计模式
  2. final 关键字
  3. 抽象类
  4. 接口

学习时间:

提示:这里可以添加计划学习的时间

例如:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习产出:

10.4.2 什么是单例模式

单例(单个的实例)
1.所谓类的单例设计模式,就是采取一 定的方法保证在整个的软件系统中,对某
个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法
2. 单例模式有两种方式: 1)饿汉式2)懒汉式

10.4.3 单例模式应用实例

演示饿汉式和懒汉式单例模式的实现。
步骤如下:
1)构造器私有化=》防止直接new 
2)类的内部创建对象
3)向外暴露一个静态的公共方法。getnstance

10.4.4 饿汉式 VS 懒汉式

1.二者最主要的区别在于创建对象的时机不同:饿汉式是在类加载就创建了对象实例,
而懒汉式是在使用时才创建。
2.
饿汉式不存在线程安全问题,懒汉式存在线程安全问题。(后面学习线程后,会完善|
一把)
3. 饿汉式存在浪费资源的可能。因为如果程序员一个对象实例都没有使用,那么饿汉
式创建的对象就浪费了,懶汉式是使用时才创建,就不存在这个问题。
4. 在我们javaSE标准类中,java.lang.Runtime就是经典的单例模式。

10.5 final 关键字
10.5.1 基本介绍

| Final01.java
final中文意思:最后的,最终的
final 可以修饰类、属性、方法和局部变量
在某些情况下,程序员可能有以下需求,就会使用到final:
1)当不希望类被继承时,可以用final修饰. [索例演示]
2)当不希望父类的某个方法被子类覆盖/重写(override)时可以用final关键字
修饰。[ 案例演示访问修饰符final返回类型方法名]
3)当不希望类的的某个属性的值被修改可以用final修饰. [案例演示public
final double TAX RATE=0.08]
4)当不希望某个局部变量被修改,可以使用final修饰[案例演示: final double
TAX RATE=0.08 ]

10.5.2 final 使用注意事项和细节讨论

1) final修饰的属性又叫常量,一般用XX XX XX来命名
2) final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如
下位置之一[选择一个位置赋初值即可] :
①定义时:public final double TAX RATE=0.08;
②在构造器中
③在代码块中。
3)如果final修饰的属性是静态的,则初始化的位置只能是
①定义时②在静态代码块不能在构造器中赋值。
4) final类不能继承, 但是可以实例化对象。[A2类]
5)如果类不是final类,但是含有final方法, 则该方法虽然不能重写,但是可
以被继承。[A3类]

10.6 抽象类
10.6.3 抽象类的介绍

1)abstract关键字来修饰一个类时,这个类就叫抽象类
访问修饰符abstract类名{
2)abstract关键字来修饰一个方法时,这个方法就是抽象方法
访问修饰符abstract返回类型方法名(参数列表)://没有方法体
3)抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现
抽象类(
4)抽象类,是考官比较爱问的知识点,在框架和设计模式使用较多

10.6.4 抽象类使用的注意事项和细节讨论

1)抽象类不能被实例化[举例]
2)抽象类不一 定要包含abstract方法。 也就是说,抽象类可以没有abstract方法[举例]
3) 一旦类包含了abstract方法,则这个类必须声明为abstract [说明]
4) abstract只能修饰类和方法,不能修饰属性和其它的。[说明]
5)抽象类可以有任意成员[抽象类本质还是类] ,比如:非抽象方法、
构造器、静态属性等等[举例]
6)抽象方法不能有主体,即不能实现.如图所示
7)如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,
除非它自己也声明为abstract类。[举例 A,B,C]

10.8 接口
10.8.3 基本介绍

接口就是给出一些没有实现的方法,封装到一 起,到某个类要使用的时候,在根据具体情况把这些
方法写出来。语法:
interface接口名{
//属性
//抽象方法
class类名implements接口{
自己属性:
自己方法;
必须实现的接口的抽象方法
小结:接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有
方法体[jdk7.0]。接口体现了程序设计的多态和高内聚低偶合的设计思想。
特别说明: Jdk8.0后接口类可以有静态方法,默认方法,也就是说接口中可以有方法的具体
实现

 深入讨论

10.8.5 注意事项和细节

接口注意事项和细节
接口注意事项和细节
10.8.7 实现接口 vs 继承类
实现类接口vs继承类
接口和继承解决的问题不同
10.8.8 接口的多态特性
接口的多态特性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值