内部类的概念与分类、成员内部类定义及使用
概念:
如果一个事物的内部包含另一个事物,那么这就是一个类内部包含另一个类。
例如:身体和心脏的关系。又如:汽车和发动机的关系。
分类:
1.成员内部类
2.局部内部类(包含匿名内部类)
成员内部类的定义格式:
修饰符 class 外部类名称 {
修饰符 class 内部类名称 {
// ...
}
// ...
}
注意:内用外,随意访问;外用内,需要内部类对象。
1 public class Body { // 外部类 2 public class Heart { // 成员内部类 3 4 // 内部类的方法 5 public void beat() { 6 System.out.println("心脏跳动:蹦蹦蹦!"); 7 System.out.println("我叫:" + name); // 正确写法! 8 } 9 10 } 11 12 13 // 外部类的成员变量 14 private String name; 15 16 // 外部类的方法 17 public void methodBody() { 18 System.out.println("外部类的方法"); 19 new Heart().beat();//创建内部类对象,来进行外用内 20 } 21 22 public String getName() { 23 return name; 24 } 25 26 public void setName(String name) { 27 this.name = name; 28 } 29 30 31 }
成员内部类的使用:
1 1. 间接方式:在外部类的方法当中,使用内部类;然后main只是调用外部类的方法。 2 2. 直接方式,公式: 3 类名称 对象名 = new 类名称(); 4 【外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();】 5 */ 6 public class Demo01InnerClass { 7 8 public static void main(String[] args) { 9 Body body = new Body(); // 外部类的对象 10 // 通过外部类的对象,调用外部类的方法,里面间接在使用内部类Heart 11 body.methodBody(); 12 System.out.println("====================="); 13 14 // 按照公式写: 15 Body.Heart heart = new Body().new Heart(); 16 heart.beat(); 17 } 18 19 }
1 // 外部类的方法 2 public void methodBody() { 3 System.out.println("外部类的方法"); 4 new Heart().beat();//创建内部类对象,来进行外用内 5 }
浙公网安备 33010602011771号