java成员内部类的定义

java成员内部类的定义

成员内部类的定义格式:

1
2
3
4
5
6
7
8
修饰符 class 外部类名称 {

修饰符 class 内部类名称 {
// ...
}

// ...
}

注意:

内用外,随意访问;外用内,需要内部类对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package cn.itcast.day11.demo03;

public class Demo01InnerClass {

public static void main(String[] args) {
Body body = new Body(); // 外部类的对象
// 通过外部类的对象,调用外部类的方法,里面间接在使用内部类Heart
body.methodBody();
System.out.println("=====================");

// 按照公式写:
Body.Heart heart = new Body().new Heart();
heart.beat();
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package cn.itcast.day11.demo03;

public class Body { // 外部类

public class Heart { // 成员内部类

// 内部类的方法
public void beat() {
System.out.println("心脏跳动:蹦蹦蹦!");
System.out.println("我叫:" + name); // 正确写法!
}

}

// 外部类的成员变量
private String name;

// 外部类的方法
public void methodBody() {
System.out.println("外部类的方法");
new Heart().beat();
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}