Java 成员内部类

 

接下来,我们准备为大家介绍“成员内部类”。

 

  成员内部类:首先,什么是内部类?内部类就是在一个类中再定义一个类,

        而在类中所定义的类就称为内部类。

        然后,什么是成员,其实就是前面学习过的属性(Java属性调用)这一章,

        而现在只是换了个说法,叫成员,其实就是属性。

        然后,通过内部类所定义的对象就是成员内部类

   

 

  内部类的语法格式

  

  class 外部类类名

  {

     class 内部类类名

     { }

  }

 

  语法分析

  (1)就是前面学习过的类定义,以class开头。

  (2)外部类类名,其实,就是类名,按变量命名规则定义即可。

  (3)一对大括号,格式要求。

  (4)在大括号中,再使用 class 定义一个内部类类名,内部类名按变量命名规则定义即可。

  (5)一对大括号,格式要求。

 

   

 

 

 

  接下来,我们结合例子作进一步的学习。

 

例子1:

 

class wp     //定义wp作为外部类

{

  gun g1 = new gun();   //通过内部类gun定义了g1对象作为成员内部类,即内部类对象。

 

  class gun  //定义gun作为内部类

  {

    

  }

}

 

 

 

(1)外部类不可以直接访问内部类中的成员或方法。

(2)外部类的方法可以返回内部类的引用。

 

(3)内部类可以直接访问外部类中的成员与方法,即使是私有方法也可以访问。

 

例子2:

 

class wp     //定义wp作为外部类。

{

  int wx;

  gun g1 = new gun();   //通过内部类gun定义了g1对象,作为成员内部类,即内部类对象。

 

  class gun   //定义gun作为内部类

  {

    int x;   //定义了内部类的成员 x 。

 

    gun()    //构造函数

    {

     x =0;

     }

 

    public void gx()  //内部类方法gx

    {

      wx = 0;   //可以直接访问外部类成员wx。

      mx();    //可以直接访问外部类中的mx方法

    }

  }

 

  public gun wp1()       //外部类方法wp1,同时返回类型是gun内部类

  {

     x = 4;       //错误,外部方法不可以直接访问内部类成员x。

     gx();        //错误,外部方法不可以直接访问内部类的方法gx。

     g1.x = 4;     //正确,可以通过成员内部类g1,访问内部类gun中的成员x。

     g1.gx();      //正确,可以通过成员内部类g1,访问内部类gun中的方法gx。

     return new gun(); //返回内部类的引用

  }

 

  private void mx()       //外部类方法mx

  {

    wx = 1;

  }

}

      

 

  非常好,现在,我们已经掌握了Java中的“成员内部类”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

  不要停留在理论规则上面,快动起来吧!

    

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练