一、接口
(一)、接口的介绍
1.接口不是类,是抽象方法的合集,比抽象方法更抽象。在接口中(jdk1.8之前)只能定义常量和抽象方法
2.接口的作用:约束作用,约束实现接口的类必须重写所有的抽象方法,否则为抽象类
3.接口的关键字 interface
4.定义格式:
修饰符 interface 接口名{}
5.注意:一定不能写class
6.在接口中定义抽象方法的格式
返回值类型 方法名();
因为接口中默认会加上 权限修饰符 和abstract 关键字
7.在接口中定义常量的格式
数据类型 常量名 = 值(常量名定义方法:全部字母大写,单词和单词之间用下划线“_”连接)
因为 默认会加上权限修饰符 final static关键字
(二)接口的实现
1.实现接口的关键字 implements
2.接口是用来被实现的,实现了接口的类叫实现类。接口不能创建对象,因为接口没有构造器
3.一个类可以实现多个接口
4.接口的实现格式
修饰符 class 类名 implements 接口1,接口2…{}
(三)接口的多继承
1.注意区分:类是单继承的,但接口是多继承的
2.接口的多继承格式
修饰符 interface 接口名 extends 接口名1,接口名2…{}
(四)接口在JDK1.8之后的新特性
1.JDK1.8之前,接口中只能定义抽象方法、常量
2.JDK1.8之后,接口中多了3个特性
(1)默认方法(即实例方法):用接口的实现类对象调用
格式:default 返回值类型 方法名(形参列表){}
(2)静态方法: 用 接口名.静态方法名 直接调用
格式:static 返回值类型 方法名(形参列表){}
(3)私有方法:只能在本接口中访问
格式:private 返回值类型 方法名(形参列表){}
(五)实现多个接口的注意事项
1.一个类实现了多个接口,在不同接口中有2个重名的静态方法,是不影响的(因为静态方法是用方法名调用的)
2.一个类继承了一个父类,并且实现了若干个接口,父类的实例方法和接口的默认方法重名时,访问则遵循就近原则
3.一个类实现的若干接口中有重名的默认方法时,实现类必须重写该重名的默认方法
二、代码块
(一)静态代码块
1.代码块分为:静态代码块、实例代码块
2.静态代码块的格式:static{ }
3.静态代码块的作用:给静态资源数据初始化赋值(静态代码块会随着类一同被加载,是属于类本身的,在类被加载的时候会自动运行。)
4.静态代码块不能访问实力资源
(二)实例代码块
1.实例代码块是没有static修饰的,属于每一个对象,会随着对象创建,自动执行
2.作用:初始化实例资源
3.格式:直接一个大括号结束 { }
4.注意:实例代码块可以为静态资源初始化赋值,但不建议这样操作
静态资源也可以用对象名访问,但不建议这样操作
三、final关键字
(一)介绍
1.可以修饰方法、类、变量
2.final关键字修饰方法:代表此方法不能被重写
格式:修饰符 final 返回值类型 方法名(形参列表)
3.final修饰类:此类不能被继承(用于保护知识产权)
格式:public final class 类名{}
(二)final修饰变量
1.共同特点:有值且只能被赋值一次,不能被更改
2.修饰局部变量:
格式:final 数据类型 局部变量名
赋值方式:a.在定义时被直接赋值;b.在定义后,可以被赋值一次
3.修饰静态变量:被final修饰的静态变量称为常量
格式:修饰符final static 常量名 (全部大写,单词间用“_”隔开)
赋值方式:a.在定义时直接赋值;b.在静态代码块中赋值且只能被赋值一次
注意:不能在静态方法中给常量赋值
4.修饰实例变量:
格式:
赋值方式:a.在定义时直接赋值;b.在实例代码块中赋值;c.在每一个构造方法中赋值(必须是每一个构造器都对其进行赋值,否则报错)
5.
四、单利设计模式
(一)单利设计模式介绍
1.运用单利涉及模式的类,它的对象在系统中永远只会有一个
2.使用场景:我们希望该类对象只有一个,业务对象有可能只有一个
3.好处:节约内存,提升性能
4.
(二)单利涉及模式有两种:饿汉式,懒汉式
1.饿汉式:不管有没有使用到,这个类都会产生一个对象
设计步骤:
(1)需要定义一个变量来存储唯一对象,用static修饰(如果再在static之前加上final,这样就不用担心这个值被修改)。
(2)把构造器私有化(防止外部随意调用构造器创建对象)
(3)提供一个公开的静态方法,返回这个唯一的实例对象
2.懒汉式:等我们需要使用时,才会创建一个唯一对象
设计步骤:
(1)需要定义一个变量准备接受唯一对象。注意不要用final修饰,否则会报错(因为常量不管有没有用到,必须有值)
注意:该变量一定要是静态的,因为静态方法不能访问实例变量
(2)把构造器私有化(防止外部随意调用)
(3)提供一个公开的静态方法。判断是否有唯一对象存在:如果没有,则创建一个唯一对象返回出去;如果有,则直接返回该唯一对象
3.
五、枚举
(一)枚举介绍:枚举类是一种特殊的类,可以定义在类中,也可以定义在类中
1.应用场景:
想控制某个变量的值在一定范围的时候,就可以使用枚举进行限定
2.关键字:enum
3.枚举格式:注意——枚举名首字母大写
enum 枚举名{
在枚举的第一行,都是给枚举类的对象
}
4.使用枚举的格式
枚举类名.对象名
5.枚举类的特点:
(1)不能被继承
(2)第一行都是枚举对象,申明对象名臣即可
(3)枚举类不能在外部创建对象(因为其构造器默认私有,且不可更改其权限)
(4)可以写带参数的构造器,但也必须私有
(二)枚举类的扩展使用
1.valueOf 方法
2.values 返回该枚举的对象数组