一.final关键字
1.1 final关键字的概述
final: 不可改变。可以用于修饰类、方法和变量。
- 类:被修饰的类,不能被继承。
- 方法:被修饰的方法,不能被重写。
- 变量:被修饰的变量,就只能赋值一次,不能被重新赋值。
1.2 final关键字的使用
1.2.1 修饰类
格式如下:
1.2.2 修饰方法
格式如下:
1.2.3 修饰变量
被final修饰的常量名称,一般都有书写规范,所有字母都大写
局部变量
成员变量
成员变量涉及到初始化的问题,初始化方式有两种,只能二选一:
- 显示初始化;
- 构造方法初始化。
二.static关键字
2.1 static关键字概述
static关键字:静态的意思 , 可以修饰变量 , 也可以修饰方法 , 被static修饰 的成员 , 我们叫做静态成员
static关键字特点
- 静态成员被所类的所有对象共享
- 可以通过对象调用 , 也可以通过类名调用 , 建议使用类名
2.2 static关键字注意事项
- 静态方法中只能调用静态成员
- 非静态方法中可以调用任何成员
2.3 静态代码块
三种代码块{ 代码块 }, 其中两种没有使用价值
了解:局部代码块 方法中
了解:构造代码块 写在类中,创建对象的时候运行
掌握:静态代码块 写在类中, static{} 在使用类的成员的时候,仅仅执行一 次
三.接口
3.1 接口概述
接口是功能的集合。接口的内部主要就是定义方法,包含常量,抽象方法 (JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK9)。
接口不能创建对象;接口是用来被类实现(implements)的,实现接口的 类称为实现类。
好处:
- 功能的定义与实现分离,优化了程序设计。
- 程序的扩展性
3.2 接口的定义
- 定义接口的关键字使用interface
- 接口中可以定义变量,变量有固定的修饰符修饰:public static final。 接口中的变量也称之为常量,其值不能改变。
- 接口中可以定义方法,方法有固定的修饰符,public abstract
3.3 类实现接口
类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关 键字不同,实现使用implements。实现类需要重写接口中所有的抽象方 法,创建该类对象,就可以调用方法了,否则它必须是一个抽象类。
3.4 接口的多实现
3.5 继承类同时实现接口
3.6 接口新增方法
public interface 接口名称 {
常量(JDK7及其以前)
抽象方法(JDK7及其以前)
默认方法(JDK8额外增加)
静态方法(JDK8额外增加)
私有方法(JDK9额外增加)
}
3.7 接口和抽象的区别
- 相同点
位于继承的顶端,用于被其他类实现或继承;
都不能直接创建对象;
都包含抽象方法,其子类都必须覆写这些抽象方法;
- 不同点
抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重 用性;
一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口; (接口弥补了Java的单继承)
抽象类是 继承体系中应该具备的功能, 继承体系是一种 is..a关系
接口是这个事物中的扩展功能,继承体系是一种 like..a关系
四.权限修饰符
在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰 的内容会有不同的访问权限。public:公共的;protected:受保护的;(空 的):默认的;private:私有的。