柚子快報(bào)激活碼778899分享:Java-內(nèi)部類
柚子快報(bào)激活碼778899分享:Java-內(nèi)部類
個(gè)人主頁 學(xué)習(xí)內(nèi)部類(Inner Class)是Java編程中一項(xiàng)重要且強(qiáng)大的特性,它允許你在一個(gè)類的內(nèi)部定義另一個(gè)類。內(nèi)部類提供了一種將邏輯上相關(guān)的類組織在一起的方式,增加了代碼的封裝性和可讀性。接下來帶領(lǐng)大家進(jìn)入內(nèi)部類的學(xué)習(xí)。
1靜態(tài)內(nèi)部類
2實(shí)例內(nèi)部類
3匿名內(nèi)部類
一:靜態(tài)內(nèi)部類的使用例子:
class OuterClass{
public int date1=1;
private int date2=2;
public static int date3=3;
static class InnerClass{
public int date4=4;
private int date5=5;
public static int date6=6;
public void test(){
OuterClass outerclass=new OuterClass();
System.out.println(outerclass.date1);
System.out.println(outerclass.date2);
System.out.println(date3);
System.out.println(date4);
System.out.println(date5);
System.out.println(date6);
System.out.println("InnerClass:::test()");
}
}
}
public class Test {
public static void main(String[] args) {
OuterClass.InnerClass innerClass=new OuterClass.InnerClass();
innerClass.test();
}
}
在靜態(tài)內(nèi)部類當(dāng)中去訪問外部類非靜態(tài)成員,必須通過外部內(nèi)對象引用來訪問。如圖所示:
二:實(shí)例內(nèi)部類例子:
class OuterClass{
public int date1=1;
private int date2=2;
public static int date3=3;
class InnerClass{
public int date4=4;
private int date5=5;
public static int date6=6;
public void test(){
OuterClass outerclass=new OuterClass();
System.out.println(date1);
System.out.println(date2);
System.out.println(date3);
System.out.println(date4);
System.out.println(date5);
System.out.println(date6);
System.out.println("InnerClass:::test()");
}
}
}
public class Test {
public static void main(String[] args) {
// OuterClass.InnerClass innerClass=new OuterClass.InnerClass();
OuterClass outerClass=new OuterClass();
OuterClass.InnerClass innerClass=outerClass.new InnerClass();
//OuterClass.InnerClass innerClass=new OuterClass().new InnerClass();
innerClass.test();
}
}
當(dāng)有與外部相同的成員變量時(shí),則訪問的是實(shí)例內(nèi)部類的成員變量。如圖;得到的是date1=99. 那么要訪問外部類的date1可以通過外部內(nèi)類名(OuterClass.this.date1)就可以。
三:匿名內(nèi)部類的例子: 匿名內(nèi)部類(Anonymous Inner Class)是Java中一種沒有名字的內(nèi)部類,通常用于簡化代碼或?qū)崿F(xiàn)一次性的、簡單的類定義。
class 0uterClass {
public void test(){
System.out.println("OuterClass:::test()");
}
}
public class Test{
public static void main(String[] args) {
new 0uterClass(){
@Override
public void test(){
System.out.println("重寫了test()方法:::");
}
}.test();
}
}
柚子快報(bào)激活碼778899分享:Java-內(nèi)部類
文章鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。