目录
1、内部类的概念
1.1、什么是内部类
- 将类写在其他类的内部。
- 可以写在其他类的成员位置和局部位置。
- 这是写在其他内部的类成为内部类,其他类成为外部类
1.2、什么时候使用内部类
在描述事物时,若一个事物内部还包含其他可能包含的事物。比如在描述汽车时,汽车中还包含发动机,这时发动机就可以使用内部内来描述。
class 汽车{ // 外部类
class 发动机 { // 内部类
}
}
1.3、内部类的分类
- 内部类可以分为成员内部类和局部内部类。
- 定义内部类时,就是一个正常定义类的过程,同时包含各种修饰符。继承与实现关系等。在内部类中可以直接访问外部类的所有成员。
2、成员内部类
2.1、成员内部类概念
成员内部类就是定义在外部类中的成员位置。与类中的成员变量相似,可以通过外部类对象进行访问。
2.2、定义格式
class 外部类 {
修饰符 class 内部类 {
...
}
}
2.3、访问方式
外部类名.内部类名 变量名= new 外部类名().new 内部类名();
2.4、代码示例
// 定义类
class Body { // 外部类:身体
private boolean life = true; // 生命状态
public class Heart { // 内部类:心脏
public void jump(){
System.out.println("心在跳动...");
// 内部类可以直接访问外部类的成员变量
System.out.println("生命状态.:" + life);
}
}
}
// 访问内部类
public static void main(String[] args){
Body.Heart heart = new Body().new Heart();
heart.jump();
}
3、局部内部类
3.1、局部内部类概念
局部内部类就是定义在外部类中的局部位置。与访问方法中局部变量相似,可以通过调用方法进行访问
3.2、定义格式
class 外部类 {
修饰符 返回值类型 方法名(参数列表){
class 内部类 {
...
}
}
}
3.3、访问方式
在外部类方法中,创建内部类对象,进行访问
3.4、代码示例
public class Party { // 外部类:聚会
public void pullBall(){ // 吹气球
class Ball{ // 内部类:气球
public void sky(){
System.out.println("气球上天了");
}
}
new Ball().sky();
}
}
// 访问内部类
public class Test {
public static void main(String[] args) {
Party p = new Party();
p.pullBall();
}
}