今日内容
内部类
引用类型
内部类 以前2个类是独立分开定义的 概述 把类定义在另一个类的内部,该类就被称为内部类。 举例:把类Inner定义在类Outer中,类Inner就被称为内部类。class Outer { class Inner { } } |
内部类的访问规则
A:可以直接访问外部类的成员,包括私有 B:外部类要想访问内部类成员,必须创建对象内部类的分类
A:成员内部类 B:局部内部类 C:静态内部类 D:匿名内部类(1) 成员内部类
成员内部类——就是位于外部类成员位置的类特点:可以使用外部类中所有的成员变量和成员方法(包括private的)定义格式:
class 外部类 { // 成员变量 // 成员方法 class 内部类 { // 成员变量 // 成员方法 } } |
class Car { //外部类 class Engine { //内部类 } } |
局部内部类:定义在方法中的类。
定义格式:使用方式: 在定义好局部内部类后,直接就创建对象
访问特点: 内部类可以直接访问外部类的成员,包括私有成员。 代码:匿名内部类【重点】
匿名内部类 :是内部类的简化写法。它的本质是一个 带具体实现的 父类或者父接口的 匿名的 子类对象。开发中,最常用到的内部类就是匿名内部类了。 之前我們使用接口时,似乎得做如下几步操作: 1. 定义子类 2. 重写接口中的方法 3. 创建子类对象 4. 调用重写后的方法 我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快捷方式。 匿名内部类前提 :匿名内部类必须继承一个父类或者实现一个父接口。 匿名内部类格式new 父类名或者接口名(){ // 方法重写 @Override public void method() { // 执行语句 } }; |
匿名内部类的本质
1. 定义一个没有名字的内部类
2. 这个类实现了Swim接口
3. 创建了这个没有名字的类的对象
引用类型用法总结 实际的开发中,引用类型的使用非常重要,也是非常普遍的。我们可以在理解基本类型的使用方式基础上,进一步 去掌握引用类型的使用方式。基本类型可以作为成员变量、作为方法的参数、作为方法的返回值,那么当然引用类 型也是可以的。 class作为成员变量 在定义一个类Role(游戏角色)时,代码如下:class Role { int id; // 角色id int blood; // 生命值 String name; // 角色名称 } |
class Weapon { String name;// 武器名称 int hurt;// 伤害值 } |
class Armour { String name;// 装备名称 int protect;// 防御值 } |
输出结果:
使用屠龙刀,造成999999点伤害
穿上麒麟甲 ,生命值增加10000
interface作为方法参数和返回值类型 当接口作为方法的参数时,需要传递什么呢?当接口作为方法的返回值类型时,需要返回什么呢?对,其实都是它的 子类对象。