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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

第三次学JAVA再学不好就吃翔(part42)--内部类概述

發布時間:2023/12/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三次学JAVA再学不好就吃翔(part42)--内部类概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記,僅供參考


文章目錄

    • 面向對象
      • 內部類
        • 內部類概述和訪問特點
        • 成員內部類私有使用
        • 靜態成員內部內


面向對象


內部類


內部類概述和訪問特點


  • 內部類概述
    • 在類中定義類,就叫做內部類
  • 內部類訪問特點
    • 內部類可以直接訪問外部類的成員,包括私有成員。
    • 外部類要訪問內部類的成員,必須創建對象。
    • 創建內部類對象的格式:外部類名.內部類名 對象名 = 外部類對象.內部類對象;

  • 舉個例子
class InnerTest1 {public static void main(String[] args) {Outer.Inner oi = new Outer().new Inner();//創建內部類對象oi.print();} }class Outer {private int num = 10;class Inner {public void print() {System.out.println("Inner print");System.out.println(num);}} }

輸出:

Inner print 10

成員內部類私有使用


當我們把內部類私有后,我們就不可以通過上面的方式去創建內部類的對象了:

class InnerTest1 {public static void main(String[] args) {Outer.Inner oi = new Outer().new Inner();//創建內部類對象oi.print();} }class Outer {private int num = 10;private class Inner {public void print() {System.out.println("Inner print");System.out.println(num);}} }

報錯:

---------- javac ---------- InnerTest1.java:3: 錯誤: Outer.Inner可以在Outer中訪問privateOuter.Inner oi = new Outer().new Inner();^ InnerTest1.java:3: 錯誤: Outer.Inner可以在Outer中訪問privateOuter.Inner oi = new Outer().new Inner();^ 2 個錯誤Output completed (2 sec consumed) - Normal Termination

這時,為了訪問Inner內部類的成員,我們可以通過在Outer類中創建方法來實現:

class InnerTest1 {public static void main(String[] args) {Outer o = new Outer();//創建內部類對象o.method();} }class Outer {private int num = 10;private class Inner {public void print() {System.out.println("Inner print");System.out.println(num);}}public void method() {Inner i = new Inner();i.print();} }

輸出:

Inner print 10

靜態成員內部內


為了訪問Outer類中的靜態內部類Inner,我們可以寫如下代碼:

class InnerTest1 {public static void main(String[] args) {Outer.Inner oi = new Outer.Inner();oi.print();} }class Outer {static class Inner {public void print() {System.out.println("Inner print");}} }

輸出:

Inner print

可以看到,我們在創建內部類Inner對象的時候寫的是new Outer.Inner(),這樣寫可能不太好理解,如果我們這樣寫Outer.new Inner(),是不是能夠更好的理解呢?

因為Inner是靜態的,所以我們可以用Outer直接調用(Outer.),又因為Inner有非靜態的方法(print()),我們需要通過Inner的對象才能調用該方法,所以我們需要創建其對象(new Inner())。

雖然這樣的寫法比較好理解,但是JAVA不允許我們這樣書寫,如果這樣寫了,編譯時就會報錯!

總結

以上是生活随笔為你收集整理的第三次学JAVA再学不好就吃翔(part42)--内部类概述的全部內容,希望文章能夠幫你解決所遇到的問題。

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