java-内部类
3129 点击·0 回帖
![]() | ![]() | |
![]() | 在java的开发中,java开发人员建议,尽量少用内部类,要把内部类提出他所处的那个类,单独生成一个类。 直接来代码: 1 package com.b510; 2 3 /** 4 * 内部类之间的调用 5 * 6 * @author Hongten 7 * 8 * @time 2012-3-19 2012 9 */ 10 public class InnerClassTest { 11 12 public static void main(String[] args) { 13 // 这是InnerClassTest的一个实例 14 InnerClassTest innerClassTest = new InnerClassTest(); 15 innerClassTest.sayHelloworld(); 16 17 // 这是类A的一个实例 18 InnerClassTest.A ia = innerClassTest.new A(); 19 ia.aSayHello(); 20 21 // 这是InnerClassB的一个实例 22 InnerClassTest.A.InnerClassB iab = ia.new InnerClassB(); 23 iab.bSayHello(); 24 25 // 这是InnerClassC的一个实例 26 InnerClassTest.A.InnerClassB.InnerClassC iabc = iab.new InnerClassC(); 27 iabc.cSayHello(); 28 29 // 这是InnerClassD的一个实例 30 InnerClassTest.A.InnerClassD iad = ia.new InnerClassD(); 31 iad.dSayHello(); 32 33 // 这是InnerClassE的一个实例 34 InnerClassTest.A.InnerClassB.InnerClassC.InnerClassE iabce = iabc.new InnerClassE(); 35 iabce.eSayHello(); 36 37 // 当然在我们调用InnerClassE的时候,还可以写成这样 38 InnerClassTest.A.InnerClassB.InnerClassC.InnerClassE e = new InnerClassTest().new A().new InnerClassB().new InnerClassC().new InnerClassE(); 39 System.out.println("======================分隔符===="); 40 e.eSayHello(); 41 } 42 43 // 类InnerClassTest中的方法 44 public void sayHelloworld() { 45 System.out.println("i am Test,HelloWorld!"); 46 } 47 48 /** 49 * 定义A类,他是InnerClassTest类的内部类 50 */ 51 class A { 52 // 类A中的方法 53 public void aSayHello() { 54 System.out.println("i am A,helloworld!"); 55 } 56 57 /** 58 * 定义InnerClassB类,他继承类A 59 */ 60 class InnerClassB extends A { 61 // 类InnerClassB中的方法www.atcpu.com 62 public void bSayHello() { 63 System.out.println("i am B,helloworld"); 64 } 65 66 /** 67 * 定义InnerClassC类,他是InnerClassB的内部类 68 */ 69 class InnerClassC { 70 // 类InnerClassC中的方法 71 public void cSayHello() { 72 System.out.println("i am C,helloworld!"); 73 } 74 75 /** 76 * 定义InnerClassE类,他是InnerClassC的内部类 77 */ 78 class InnerClassE { 79 // 类InnerClassE中的方法 80 public void eSayHello() { 81 System.out.println("i am E,Helloworld!"); 82 } 83 } 84 } 85 } 86 87 /** 88 * 定义InnerClassD类,他是A的内部类 89 */ 90 class InnerClassD { 91 // 类InnerClassD中的方法 92 public void dSayHello() { 93 System.out.println("i am D,Helloworld!"); 94 } 95 } 96 } 97 } 运行效果: 1 i am Test,HelloWorld! 2 i am A,helloworld! 3 i am B,helloworld 4 i am C,helloworld! 5 i am D,Helloworld! 6 i am E,Helloworld! 7 ======================分隔符==== 8 i am E,Helloworld! | |
![]() | ![]() |