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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java -- 内部类(一)

發布時間:2024/4/15 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java -- 内部类(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是內部類

將一個類的定義放在另一個類的定義內部,這就是內部類。
在Java中內部類主要分為成員內部類、局部內部類、匿名內部類、靜態內部類。
舉個栗子:

public class A { public class B { } };

為什么要用內部類

在《Think in java》中有這樣一句話:使用內部類最吸引人的原因是:每個內部類都能獨立地繼承一個(接口的)實現,所以無論外圍類是否已經繼承了某個(接口的)實現,對于內部類都沒有影響。
在我們程序設計中有時候會存在一些使用接口很難解決的問題,這個時候我們可以利用內部類提供的、可以繼承多個具體的或者抽象的類的能力來解決這些程序設計問題。可以這樣說,接口只是解決了部分問題,而內部類使得多重繼承的解決方案變得更加完整。
栗子:

public interface Father {}public interface Mother {}public class Son implements Father, Mother {}public class Daughter implements Father{class Mother_ implements Mother{} }

有什么特性

  • 內部類可以用多個實例,每個實例都有自己的狀態信息,并且與其他外圍對象的信息相互獨立。
  • 在單個外圍類中,可以讓多個內部類以不同的方式實現同一個接口,或者繼承同一個類。
  • 創建內部類對象的時刻并不依賴于外圍類對象的創建。
  • 內部類并沒有令人迷惑的“is-a”關系,他就是一個獨立的實體。
  • 內部類提供了更好的封裝,除了該外圍類,其他類都不能訪問。

如何使用呢

當我們在創建一個內部類的時候,它無形中就與外圍類有了一種聯系,依賴于這種聯系,它可以無限制地訪問外圍類的元素。這是因為當我們在創建某個外圍類的內部類對象時,此時內部類對象必定會捕獲一個指向那個外圍類對象的引用,只要我們在訪問外圍類的成員時,就會用這個引用來選擇外圍類的成員.

@Getter @Setter public class OuterClass {private String name ;private int age;public class InnerClass{public InnerClass(){name = "JackPotHan";age = 23;}public void display(){System.out.println("name:" + getName() +" ;age:" +getAge());}}public static void main(String[] args) {OuterClass outerClass = new OuterClass();OuterClass.InnerClass innerClass = outerClass.new InnerClass();innerClass.display();} } -------------- Output: name:JackPotHan ;age:23

注:在使用內部類時有些新手可能會遇到下面一個錯誤--"is not an enclosing class",因為按照正邏輯,應該是A.B ab = new A.B(); 但是翻看相關java代碼,會發現正確的用法是A a = new A(); A.B ab = a.new B(); 沒有靜態(static)的類中類不能使用外部類進行.操作,必須用實例來進行實例化類中類.

同時如果我們需要生成對外部類對象的引用,可以使用OuterClassName.this,這樣就能夠產生一個正確引用外部類的引用了。當然這點是在編譯期就知曉了,沒有任何運行時的成本。

栗子:

public class OuterClass {public void display(){System.out.println("OuterClass...");}public class InnerClass{public OuterClass getOuterClass(){return OuterClass.this;}}public static void main(String[] args) {OuterClass outerClass = new OuterClass();OuterClass.InnerClass innerClass = outerClass.new InnerClass();innerClass.getOuterClass().display();} } ------------- Output: OuterClass...

到這里了我們需要明確一點,內部類是個編譯時的概念,一旦編譯成功后,它就與外圍類屬于兩個完全不同的類(當然他們之間還是有聯系的)。對于一個名為OuterClass的外圍類和一個名為InnerClass的內部類,在編譯成功后,會出現這樣兩個class文件:OuterClass.class和OuterClass$InnerClass.class。

?

轉載于:https://www.cnblogs.com/JackpotHan/p/9699270.html

總結

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

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

主站蜘蛛池模板: 天天干天天操天天玩 | 天天干天天做天天操 | 天狂传说之巴啦啦小魔仙 | 91视 | 日韩欧美一区二区三区在线 | 久久无吗视频 | 日韩一区二区免费视频 | 日韩高清成人 | 咪咪色影院 | 亚洲人视频在线观看 | 精品少妇人妻av一区二区 | 精品久久久久久亚洲 | 青青草一区二区三区 | 国产一区二区三区免费观看视频 | 国产免费小视频 | 在线观看成人动漫 | 精品人妻一区二区三区免费 | 亚洲电影在线看 | 国产精品免费一区二区三区四区 | 天天碰天天碰 | 免费午夜av | 91色九色 | 天天操天天干天天摸 | 欧美亚州 | 日本一级一片免费视频 | 午夜视频在线播放 | 亚洲狼人社区 | 国外成人免费视频 | 国产福利视频导航 | 日韩在线电影一区二区 | www.av黄色| 91桃色网站 | 91资源在线观看 | 久久这里只有精品23 | 日韩欧美亚洲国产精品字幕久久久 | 国产农村老头老太视频 | 亚洲一区精品视频 | 年下总裁被打光屁股sp | 国产中文字幕av | 91影视在线观看 | 欧美a网| 超碰在线播放97 | 就爱操av | 精品国产乱码久久久人妻 | 少妇一级淫片免费放播放 | 精品欧美一区二区三区免费观看 | 丰满的女人性猛交 | 糖心vlog精品一区二区 | 亚洲交性网 | 国产真人无遮挡作爱免费视频 | 香蕉久久国产av一区二区 | 日韩免费观看视频 | 少妇一级淫片免费放 | 杨幂毛片午夜性生毛片 | 日日干综合 | 牛牛在线免费视频 | 三女警花合力承欢猎艳都市h | 女裸全身无奶罩内裤内衣内裤 | 加勒比视频在线观看 | 国产美女www爽爽爽 www.国产毛片 | 岛国伊人| 久久人人草| 玖玖视频在线 | 天天摸天天看 | 国产成人精品视频 | 黄色777| 日韩一区二区不卡 | 欧美一卡二卡 | 亚洲欧美第一 | 久久久久久久久久久网站 | 精品人人人人 | 欧美日韩亚洲国产精品 | 狠狠躁夜夜躁人人爽天天高潮 | 狠狠干夜夜骑 | 台湾a级片| 日韩欧美aⅴ综合网站发布 国产成人一区二区三区小说 | 99r在线视频| 少妇人妻好深好紧精品无码 | 蜜桃视频在线播放 | 欧美激情在线播放 | 久久伊人99 | 97免费视频观看 | 美女隐私直播 | a视频在线看 | 成人一区二区免费视频 | 黄色国产毛片 | 国产天天操 | 日韩第一页在线观看 | 总受合集lunjian双性h | 东京热毛片| 国产一区二区三区免费视频 | 制服丝袜手机在线 | 成年人免费网站 | 性视频播放免费视频 | 欧美成人a | 久久艹综合 | 天堂在线中文8 | 韩日一区二区 | 婷婷色站|