什么是成员内部类?案例演示成员内部类的使用

在一个类中除了可以定义成员变量、成员方法,还可以定义类,这样的类被称作成员内部类。在成员内部类中,可以访问外部类的所有成员,包括成员变量和成员方法;在外部类中,同样可以访问成员内部类的变量和方法。

接下来通过一个案例来学习成员内部类的定义和使用,如文件1所示。

文件1 Example18.java

     // 定义外部类Outer
     class Outer {
         int m = 0; // 定义外部类的成员变量
         // 定义外部类成员方法
         void test1() {
             System.out.println("外部类成员方法");
         }
         // 定义成员内部类Inner
        class Inner {
             int n = 1;
             // 1、定义内部类方法,访问外部类成员变量和方法
             void show1() {
                 System.out.println("外部类成员变量m="+m);
                 test1();
             }
             void show2(){
                 System.out.println("内部类成员方法");
             }
         }
         // 2、定义外部类方法,访问内部类变量和方法
         void test2() {
             Inner inner = new Inner();
             System.out.println("内部类成员变量n="+inner.n);
             inner.show2();
         }
     }
     // 定义测试类
     public class Example18 {
         public static void main(String[] args) {
             Outer outer = new Outer();                // 创建外部类对象
             Outer.Inner inner = outer.new Inner(); // 创建内部类对象
             inner.show1();  // 测试在成员内部类中访问外部类成员变量和方法
             outer.test2(); // 测试在外部类中访问内部类成员变量和方法
         }
     }

运行结果如图1所示。

图1 运行结果

文件1中,定义了一个外部类Outer,并在该类中定义了成员变量、成员方法和成员内部类Inner。在成员内部类Inner中,编写了show1()方法来测试内部类对外部类成员变量和方法的调用;同时在外部类Outer中,编写了test2()方法来测试外部类对内部类变量和方法的调用。从图1可以看出,成员内部类可以访问外部类所有成员,同时外部类也可以访问成员内部类的所有成员。

需要注意的是,在文件1中第31行代码是通过外部类对象创建的内部类对象,这样就可以操作内部类中的成员。创建内部类对象的具体语法格式如下:

外部类名.内部类名 变量名 = new 外部类名().new 内部类名();

猜你喜欢:

gzip模块启用和配置指令详解

nginx的location配置详解:location匹配规则

使用Spring Boot注册整合方式整合Servlet三大组件

传智教育java开发培训课程

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/java/253937.html

(0)
上一篇 2022年5月9日 05:17
下一篇 2022年5月9日 05:22

相关推荐

发表回复

登录后才能评论