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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java内部类小结

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

【README】

1,本文總結了java4種內部類,包括

  • 成員內部類:在外部類內部定義的非靜態類;成員內部類不能獨立存在,如 UML中類間的組合關聯關系
  • 靜態內部類:在外部類內部定義的靜態類;靜態類與外部類關系密切,但可以獨立存在,如UML中類間的聚合關聯關系
  • 局部內部類:在方法內部定義的內部類;其作用域在方法內部;
  • 匿名內部類:顧名思義,沒有名字的內部類,通常用于實現接口,沒有自定義構造器;;

2,本文給出了 相關的測試用例;

3,內部類的作用

  • 1,內部類有自己的實現,有助于外部類實現多繼承;1個外部類里面定義多個內部類,每個內部類繼承一個父類,就變相實現了多繼承;
  • 2,提高代碼內聚程度;

【1】內部類介紹

【1.1】成員內部類

1)成員內部類:在外部類內部定義的非靜態類;成員內部類不能獨立存在;

2)代碼結構

/*** @Description 成員內部類* @author xiao tang* @version 1.0.0* @createTime 2021年11月21日*/ public class Topic78 {private String name;public Topic78(String name) {this.name = name;}// 成員內部類public class MemberInnerClass {private int age;public MemberInnerClass(int age) {this.age = age;}// 在外部類定義內部,使用外部類.this指針 指向對外部類對象的引用public String hello() {return "hello " + Topic78.this.name;}} }

3)測試用例

public class MemberInnerClassTest {public static void main(String[] args) {Topic78 topic78 = new Topic78("lisi");// 創建成員內部類// 在外部類定義外部,使用外部類對象.new指針 指向對外部類對象的引用Topic78.MemberInnerClass memberInnerClass = topic78.new MemberInnerClass(18);System.out.println(memberInnerClass.hello()); // hello lisi} }

注意: 成員內部類使用到了 外部類對象.new 和 外部類.this 兩個指針

  • 外部類對象.new 指針:指向對外部類對象的引用; (創建內部類對象時使用)
  • 外部類.this 指針:指向對外部類對象的引用;(在內部類使用外部類對象的屬性時使用)

  • 【1.2】靜態內部類

    1)定義:靜態內部類,在外部類內部定義的靜態類;靜態類與外部類關系密切,但可以獨立存在,如UML中的聚合;

    2)代碼結構

    /*** @Description 靜態內部類* @author xiao tang* @version 1.0.0* @createTime 2021年11月21日*/ public class Topic77 {/*** @description 靜態內部類* @author xiao tang* @date 2021/11/21*/public static class StaticInnerClass {String name;public StaticInnerClass(String name) {this.name = name;}public void sayHello() {System.out.println("hello " + name);}} }

    3)測試用例:;

    /*** @Description TODO* @author xiao tang* @version 1.0.0* @createTime 2021年11月21日*/ public class StaticInnerClassTest {public static void main(String[] args) {Topic77.StaticInnerClass staticInnerClass = new Topic77.StaticInnerClass("zhangsan");staticInnerClass.sayHello(); // hello zhangsan} }

    【1.3】局部內部類

    1)定義:局部內部類, 在方法內部定義的內部類

    • 其作用域:是當前方法塊,以及訪問外部類的所有成員;但無法在當前方法之外定義和使用它;

    2)代碼結構

    /*** @Description 局部內部類* @author xiao tang* @version 1.0.0* @createTime 2021年11月21日*/ public class LocalInnerClassTest {private String name;public LocalInnerClassTest(String name) {this.name = name;}public void sayHello() {// 在方法內部定義局部內部類// 其作用域:是當前方法塊,以及訪問外部類的所有成員;(無法在當前方法之外定義和使用它)class LocalInnerClass {public String hello() {return "hello " + name;}public String nice2MeetYou() {return "nice to meet you";}}LocalInnerClass localInnerClass = new LocalInnerClass();System.out.println(localInnerClass.hello());System.out.println(localInnerClass.nice2MeetYou());}public static void main(String[] args) {new LocalInnerClassTest("lisi").sayHello();} }

    3)測試用例:

    同上;

    hello lisi
    nice to meet you


    【1.4】 匿名內部類

    1)定義:匿名內部類,顧名思義,沒有名字的內部類,通常用于實現接口,沒有自定義構造器;

    2)代碼結構: 并發編程實現Runnable接口

    /*** @Description 匿名內部類* @author xiao tang* @version 1.0.0* @createTime 2021年11月21日*/ public class AnonymousInnerClassTest {public static void main(String[] args) {// 通過匿名內部類實現 Runnable接口,簡化代碼Runnable runnable = new Runnable() {@Overridepublic void run() {System.out.println("hello world");}};runnable.run();} }

    總結

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

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