欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java开发之内部类的用法

程序员文章站 2023-12-05 21:48:04
在java的开发中,java开发人员建议,尽量少用内部类,要把内部类提出他所处的那个类,单独生成一个类。直接来代码:复制代码 代码如下:package com.b510;&...
在java的开发中,java开发人员建议,尽量少用内部类,要把内部类提出他所处的那个类,单独生成一个类。
直接来代码:
复制代码 代码如下:

package com.b510;

 /**
  * 内部类之间的调用
  *
  * @author hongten
  *
  * @time 2012-3-19 2012
  */
 public class innerclasstest {

     public static void main(string[] args) {
         // 这是innerclasstest的一个实例
         innerclasstest innerclasstest = new innerclasstest();
         innerclasstest.sayhelloworld();

         // 这是类a的一个实例
         innerclasstest.a ia = innerclasstest.new a();
         ia.asayhello();

         // 这是innerclassb的一个实例
         innerclasstest.a.innerclassb iab = ia.new innerclassb();
         iab.bsayhello();

         // 这是innerclassc的一个实例
         innerclasstest.a.innerclassb.innerclassc iabc = iab.new innerclassc();
         iabc.csayhello();

         // 这是innerclassd的一个实例
         innerclasstest.a.innerclassd iad = ia.new innerclassd();
         iad.dsayhello();

         // 这是innerclasse的一个实例
         innerclasstest.a.innerclassb.innerclassc.innerclasse iabce = iabc.new innerclasse();
         iabce.esayhello();

         // 当然在我们调用innerclasse的时候,还可以写成这样
         innerclasstest.a.innerclassb.innerclassc.innerclasse e = new innerclasstest().new a().new innerclassb().new innerclassc().new innerclasse();
         system.out.println("======================分隔符====");
         e.esayhello();
     }

     // 类innerclasstest中的方法
     public void sayhelloworld() {
         system.out.println("i am test,helloworld!");
     }

     /**
      * 定义a类,他是innerclasstest类的内部类
 */
     class a {
         // 类a中的方法
         public void asayhello() {
             system.out.println("i am a,helloworld!");
         }

         /**
          * 定义innerclassb类,他继承类a
 */
         class innerclassb extends a {
             // 类innerclassb中的方法
             public void bsayhello() {
                 system.out.println("i am b,helloworld");
             }

             /**
              * 定义innerclassc类,他是innerclassb的内部类
 */
             class innerclassc {
                 // 类innerclassc中的方法
                 public void csayhello() {
                     system.out.println("i am c,helloworld!");
                 }

                 /**
                  * 定义innerclasse类,他是innerclassc的内部类
 */
                 class innerclasse {
                     // 类innerclasse中的方法
                     public void esayhello() {
                         system.out.println("i am e,helloworld!");
                     }
                 }
             }
         }

         /**
          * 定义innerclassd类,他是a的内部类
 */
         class innerclassd {
             // 类innerclassd中的方法
             public void dsayhello() {
                 system.out.println("i am d,helloworld!");
             }
         }
     }
 }

运行效果:
复制代码 代码如下:

i am test,helloworld!
 i am a,helloworld!
 i am b,helloworld
 i am c,helloworld!
 i am d,helloworld!
 i am e,helloworld!
 ======================分隔符====
 i am e,helloworld!