1 final关键字
1.1概念
子类可以在父类的基础上改写内容,方法重写。但有些时候我们不能随意的继承或改写父类的内容,为了避免这种情况,Java提供了final关键字,不让子类修改内容【阻断继承】
1.2 作用范围
- final可修饰类和方法,变量
- 修饰类:不可被继承(public final class String)(Scanner)(Math)
- 修饰方法:不能被重写
- 修饰变量:不能重新赋值
1.3 语法格式
//修饰类
final class XX{}
//修饰方法
修饰符 final 返回值类型 方法名(参数列表){}
//修饰局部变量
final修饰 只赋值一次,不可被更改,被fianl修饰后,只能指向一个对象,地址不能再更改,但不影响对象内容成员变量的值得修改
//修饰成员变量:涉及到初始化 初始化有两种
1 显示初始化
public class User{
final static String USER_NAME = "张三";
}
2 构造方法初始化
public User(....){
this.USER_NAME = USER_NAME;
}
2 权限修饰符
2.1 访问权限
Java 提供了四种访问权限
- public --公共的
- protected – 受保护的
- default – 默认的
- private – 私有的
2.2可见性
- 同一个类中:上述四个修饰符都可被访问
- 同一个包中:public protected default 可访问
- 不同包中子类: public protected
- 不同包的无关类:public protected
最大权限是public
最小权限是private
2.3 建议
在编写代码时
- 成员变量使用private ,隐藏细节、
- 构造方法使用public 。特例(单例模式 private修饰构造方法)
- 成员方法使用public
3 package 关键字
3.1分类
- 系统包
- 自定义包
3.2 关键字
import java.util.*;
4 内部类
4.1概念
将类A定义在B中,里面的类A称为内部类,B称为外部类
4.2 分类
- 成员内部类
- 实例内部类
- 静态内部类
- 局部内部类
- 匿名内部类
4.3 成员内部类
4.3.1 特点
- 内部类可直接访问外部类成员,包括外部类的私有成员
- 外部类要访问内部类成员,必须要建立内部类对象
格式:外部类名.内部类名 对象名 = new 外部类().new 内部类();
4.4匿名内部类
是内部类的简化写法,开发中最常用
以接口为例
当使用一个接口,步骤如下
- 创建接口 ,定义方法
- 定义子类
- 重写实现类
- 调用重写后的方法
我们的目的,最终只是为了调用方法,匿名内部类将上述四部简化为一步
4.4.1 格式
new 父类或接口名(){
public void nethod()//重写的方法
}
接口作为方法参数时,都可以使用匿名内部类
5 引用类型作为成员变量
6 引用类型作为方法参数
7 引用类型作为返回值
8 引用类型总结
在实际开发中,引用类型使用非常重要、
基本类型:成员变量,方法参数,返回值
- class作为成员变量
- interface作为成员变量
接口是方法的集合封装,对应游戏扩展功能。
适用接口作为成员变量,以便我们随时更换功能:易于扩展,更加灵活
接口作为成员变量对他进行赋值,实际上是给接口一个子类对象 - interface作为方法参数和返回值类型–传参还返回子类对象
作为返回值时—返回的子类对象