分享內部類的整理和測試代碼

發表于:2008-07-21來源:作者:點擊數: 標簽:代碼部類分享
Java code package test.jdk; /** * 內部類的收集與整理 * * @author 趙學慶 www. java 2000.net */ public class InnerTest { private String instAtt = "實例變量"; private static String staticAtt = "靜態變量"; public void test() { int methodAtt =
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.aclearcase/" target="_blank" >ccess();
/*
* 建立非靜態內部類(non-static Inner Class)的對象. <br>注意這種建立對象的格式 首先創建外部類的對象 然后使用對象.new 來創建。
*/
ImOutClass outC = new ImOutClass();
ImOutClass.InstInnerClass inC = outC.new InstInnerClass();
inC.access();
}
}

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97