分享内部类的整理和测试代码解决方法

分享内部类的整理和测试代码Java codepackage test.jdk/** * 内部类的收集与整理 ** @author 赵学庆 www.

分享内部类的整理和测试代码

Java code
package test.jdk;/** * 内部类的收集与整理 *  * @author 赵学庆 www.java2000.net */public class InnerTest {  private String instAtt = "实例变量";  private static String staticAtt = "静态变量";  public void test() {    int methodAtt = 1;    final int methodFinalAtt = 2;    // 非静态方法里的内部类    class staticMethodInnerClass {      @Override      public String toString() {        // 非静态方法里无法访问实例的外部变量        System.out.println("非静态方法的内部类可以访问外部类的实例变量:" + instAtt);        System.out.println("非静态方法的内部类可以访问外部类的静态变量:" + staticAtt);        // 非静态方法里无法访问方法的非final的变量        // System.out.println(methodAtt);        System.out.println("非静态方法的内部类可以访问方法的final变量:" + methodFinalAtt);        return "my nickname is white";      }    }    new staticMethodInnerClass().toString();    new Object() {      @Override      public String toString() {        System.out.println("非静态方法的匿名内部类可以访问外部类的实例变量:" + instAtt);        System.out.println("非静态方法的匿名内部类可以访问外部类的静态变量:" + staticAtt);        // 静态方法里匿名内部类无法访问方法的非final的变量        // System.out.println(methodAtt);        System.out.println("非静态方法的匿名内部类可以访问方法的final变量:" + methodFinalAtt);        return "我是匿名内部类";      }    }.toString();  }  public static void main(String blackbat[]) {    int methodAtt = 1;    final int methodFinalAtt = 2;    // 静态方法里的内部类    class staticMethodInnerClass {      @Override      public String toString() {        // 静态方法里无法访问实例的外部变量        // System.out.println(instAtt);        System.out.println("静态方法的内部类可以访问外部类的静态变量:" + staticAtt);        // 静态方法里无法访问方法的非final的变量        // System.out.println(methodAtt);        System.out.println("静态方法的内部类可以访问方法的final变量:" + methodFinalAtt);        return "my nickname is white";      }    }    new staticMethodInnerClass().toString();    new Object() {      @Override      public String toString() {        // 静态方法的匿名内部类不能访问外部类的非静态变量        // System.out.println("非静态方法的匿名内部类可以访问外部类的非静态变量:" + instAtt);        System.out.println("非静态方法的匿名内部类可以访问外部类的静态变量:" + staticAtt);        // 静态方法里匿名内部类无法访问方法的非final的变量        // System.out.println(methodAtt);        System.out.println("非静态方法的匿名内部类可以访问方法的final变量:" + methodFinalAtt);        return "我是匿名内部类";      }    }.toString();    new InnerTest().test();    // 建立静态内部类(static Inner Class)的对象    ImOutClass.StaticInnerClass staticIC = new ImOutClass.StaticInnerClass();    staticIC.access();    /*     * 建立非静态内部类(non-static Inner Class)的对象. <br>注意这种建立对象的格式 首先创建外部类的对象 然后使用对象.new 来创建。     */    ImOutClass outC = new ImOutClass();    ImOutClass.InstInnerClass inC = outC.new InstInnerClass();    inC.access();  }}class ImOutClass {  private static String staticAtt = " 外部类的类变量 ";  private String instAtt = " 外部类的实例变量 ";  private static String xx = "外部静态变量";  // private String xx = "外部类的实例变量";  // 外部类的非静态方法  public void instanMethod() {    System.out.println(" 和外部类实例方法 ");  }  // 外部类的静态方法  public static void staticMethod() {    System.out.println(" 和外部类静态方法 ");  }  // 静态内部类(static Inner Class)  public static class StaticInnerClass {    public StaticInnerClass() {      System.out.println(" 我是静态内部类 ");    }    public void access() {      System.out.println(" 我可以访问 " + staticAtt);      staticMethod();      System.out.println(" 我可以访问外部的静态变量 " + xx);      // 非静态的方法 instanMethod() 无法从静态的地方使用      // instanMethod();    }  }  // 非静态内部类(non-static Inner Class)  public class InstInnerClass {    public InstInnerClass() {      System.out.println(" 我是成员级内部类,非静态内部类 ");    }    public void access() {      System.out.println(" 我可以访问 " + instAtt);      instanMethod();      staticMethod();      System.out.println(" 我可以访问外部的静态变量 " + xx);    }  }} 



运行结果
静态方法的内部类可以访问外部类的静态变量:静态变量
静态方法的内部类可以访问方法的final变量:2
非静态方法的匿名内部类可以访问外部类的静态变量:静态变量
非静态方法的匿名内部类可以访问方法的final变量:2
非静态方法的内部类可以访问外部类的实例变量:实例变量
非静态方法的内部类可以访问外部类的静态变量:静态变量
非静态方法的内部类可以访问方法的final变量:2
非静态方法的匿名内部类可以访问外部类的实例变量:实例变量
非静态方法的匿名内部类可以访问外部类的静态变量:静态变量
非静态方法的匿名内部类可以访问方法的final变量:2
 我是静态内部类 
 我可以访问 外部类的类变量 
 和外部类静态方法 
 我可以访问外部的静态变量 外部静态变量
 我是成员级内部类,非静态内部类 
 我可以访问 外部类的实例变量 
 和外部类实例方法 
 和外部类静态方法 
 我可以访问外部的静态变量 外部静态变量


[解决办法]

[解决办法]
学习收藏了
[解决办法]
good ,3Q,,,,support louzhu..
[解决办法]

[解决办法]
收藏了
[解决办法]
Java code
3Q
[解决办法]
收了
[解决办法]
up
[解决办法]
收藏了
[解决办法]
探讨
学习收藏了

[解决办法]
探讨
引用:
学习收藏了

[解决办法]
学习收藏

[解决办法]
探讨
学习收藏


[解决办法]
收藏了
[解决办法]
收藏
[解决办法]
紫竹老哥,顶你,收藏了[color=#FF0000][/color]
[解决办法]

以前学过Java 现在才觉得Java好重要
[解决办法]
学习收藏了
[解决办法]
活到老学到老!
[解决办法]
强烈收藏之!!!
[解决办法]


留个记号,收藏!
[解决办法]
厉害啊,算是见识了
[解决办法]
总结很全面。
[解决办法]
看睡着了…………
[解决办法]
谢谢了
解释的很清楚.
[解决办法]
记下来 慢慢看
[解决办法]
定了
------解决方案--------------------


值得收藏
[解决办法]
真厉害啊,向你学习
[解决办法]
谢谢.
[解决办法]
谢谢啦!先收藏了慢慢研究
[解决办法]
好复杂~~~~~~
[解决办法]
想问下内部类的主要作用?什么时候能用到内部类?
[解决办法]
内部类,一般用得较少吧?
[解决办法]
佩服楼主的砖研精神

[解决办法]
主人要求是不是太高了
我怎么想做软件 结果做成了ibm售后 我对软件有一定的爱好
[解决办法]
努力学习
谢谢分享
[解决办法]
努力学习阿
[解决办法]
mark
[解决办法]
拿下。。
[解决办法]
谢谢

[解决办法]
收到,谢谢!
[解决办法]
ありがとう
[解决办法]
拿走了;谢谢了……
[解决办法]
mark
学习一下
[解决办法]
很好,谢谢了!
[解决办法]

探讨
ありがとう

[解决办法]
记号,学习。
[解决办法]
学习并接分。。。
[解决办法]
study
[解决办法]
System.out.println("Thank you!");
[解决办法]
谢谢分享
[解决办法]
顶了
[解决办法]
探讨
学习收藏

[解决办法]
mark
[解决办法]
谢谢~我需要点时间学习这个~~
[解决办法]
dingding