成员内部类
Posted wurengen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了成员内部类相关的知识,希望对你有一定的参考价值。
什么是内部类
将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。
成员内部类
成员内部类 :定义在类中方法外的类。
定义格式:
、
修饰符 class 外部类名称
修饰符 class 内部类名称
// ...
// ...
注意:内用外,随意访问;外用内,需要内部类对象。
如何使用成员内部类?
有两种方式:
1. 间接方式:在外部类的方法当中,使用内部类;然后main只是调用外部类的方法。
2. 直接方式,公式:
代码举例
定义成员内部类
package 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;
使用成员内部类
package demo03; /* 如何使用成员内部类?有两种方式: 1. 间接方式:在外部类的方法当中,使用内部类;然后main只是调用外部类的方法。 2. 直接方式,公式: 类名称 对象名 = new 类名称(); 【外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();】 */ 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();
执行结果
内部类如何访问同名的变量
代码举例
package demo03; // 如果出现了重名现象,那么格式是:外部类名称.this.外部类成员变量名 public class Outer int num = 10; // 外部类的成员变量 public class Inner /*extends Object*/ int num = 20; // 内部类的成员变量 public void methodInner() int num = 30; // 内部类方法的局部变量 System.out.println(num); // 局部变量,就近原则 System.out.println(this.num); // 内部类的成员变量 System.out.println(Outer.this.num); // 外部类的成员变量
以上是关于成员内部类的主要内容,如果未能解决你的问题,请参考以下文章