- 单例设计模式final 关键字抽象类接口
学习时间:
提示:这里可以添加计划学习的时间
例如:
周一至周五晚上 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 继承类
10.8.8 接口的多态特性



