日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java内部类的定义_java定义内部类

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java内部类的定义_java定义内部类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

package test.jdk;

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)的對象.
注意這種建立對象的格式 首先創建外部類的對象 然后使用對象.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);

}

}

}

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的java内部类的定义_java定义内部类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。