目录
- 方法参数类型以及返回值类型问题研究
- 权限修饰符
- 匿名内部类
1、方法参数类型以及返回值类型问题研究
- 如果你以后看到一个方法的形参要一个类类型,你就传一个该类的对象
- 如果你以后看到一个方法的形参要一个抽象类类型,你就传一个该类的子类对象
- 如果你以后看到一个方法的形参要一个接口类型,你就传一个该接口的子类对象
- 如果你以后看到一个方法的返回值类型要一个类类型,你就返该类的一个对象
- 如果你以后看到一个方法的返回值类型要一个抽象类类型,你就返回一个该抽象类的子类对象
- 如果你以后看到一个方法的返回值类型要一个接口类型,你就返回一个该接口的子类对象
2、链式编程
- 当你调用完一个方法后,这个方法的返回值是一个对象,那么你就可以紧接着打点.再去调用这个对象的方法
3、package关键字的概述及作用
-
包的概述:就是文件夹
-
包的作用:用来解决同一个路径下不能存在同名文件的问题(分类管理)
-
包的划分:按照功能、按照模块
-
定义包的格式:
package 包名;
-
定义包的注意事项:
A:package语句必须是程序的第一条可执行的代码
B:package语句在一个Java文件中只能有一个
C:如果没有package,默认表示无包名
4、import关键字的概述和使用
-
导包的概述
不同包下的类之间的访问,我们发现,每次使用不同包下类的时候,都需要加包的全路径。比较麻烦,这个时候,Java就提供了导包的功能。
-
导包格式
import 包名;注意这种方式导入是到类的名称
5、四种权限修饰符
本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类)
private Y
默认的 Y Y
protected Y Y Y
public Y Y Y Y
6、内部类概述和访问特点
-
内部类概述
把类A定义到类B中,那么类A就称为内部类,类B称作外部类
-
内部类访问特点
内部类可以直接访问外部类的成员,包括私有的成员
外部类要访问内部类的成员,必须创建内部类的对象
7、内部类分类及成员内部类的直接使用
-
按照内部类的位置分类
成员位置:在成员位置定义的类,被称为成员内部类。类中方法外
局部位置:在局部位置定义的类,被称为局部内部类。方法中
-
外界直接访问成员内部类的成员
外部类名.内部类名 对象名= 外部类对象.内部类对象
例如:Outer.Inner inner=new Outer().new Inner();
8、成员内部类的常见修饰符及应用
-
成员内部类的修饰符
A:private 为了保证数据的安全性,内部类可以使用private修饰,一旦内部类私有之后,外界就不能直接创建内部类的对象了,外部类可以。
B:static 可以修饰内部类,为了方便访问数据。
注意:静态内部类访问的外部类数据必须用静态修饰,静态内部类只能访问外部类静态所修饰的数据
成员方法可以是静态的也可以是非静态的
-
成员内部类被静态修饰后的访问方式:
外部类名.内部类名 对象名 = new 外部类名.内部类名();
9、局部内部类访问局部变量的问题
-
可以直接访问外部类的成员
-
在局部内部类里面要访问外部类的局部变量,那么这个局部变量要加上final让他成为一个常量,原因如下:
因为局部变量会随着方法的调用完毕而消失,这个时候,局部对象并没有立马从堆内存中消失,还要使用那个变量。为了让数据还能继续被使用,就用final修饰,这样,在堆内存里面存储的其实是一个常量值。JDK1.8之后,final会默认加上,你不用手动去加,但是你要知道。
10、匿名内部类的格式和理解
-
匿名内部类:就是局部内部类的简化写法。
-
前提:存在一个类或者接口;这里的类可以是具体类也可以是抽象类
-
格式:new 类名或者接口名(){
重写方法;
};
-
匿名内部类的本质是什么呢?
是一个继承了该类或者实现了该接口的子类匿名对象。本质是一个对象,不是类。