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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

内部类(innerclasses)

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

一般情況下,我們把類定義成獨立的單元。有些情況下,我們把一個類放在另一個類的內部定義為內部類。

內部類的作用:

1.內部類提供了更好的封裝。只能讓外部類直接訪問,不允許同一個包中的其他類直接訪問。

2.內部類可以直接訪問外部類的私有屬性,內部類被當成其外部類的成員。但外部類不能訪問內部類的內部屬性

內部類的適用場合:

由于內部類提供了更好的封裝特性,并且可以很方便的訪問外部類的屬性。所以,通常內部類在只為所在外部類提供服務的情況下優先使用。

?

內部類的分類:

1.成員內部類(可以使用private,proteted,public任意進行修飾。類文件:)

a)非靜態內部類(外部類里使用非靜態內部類和平時使用其他類沒什么不同)

  i.非靜態內部類必須寄存在一個外部類對象里。因此,如果一個非靜態內部類對象那么一定存在對應外部類對象。非靜態內部類對象單獨屬于外部類的某個對象。

  ii.非靜態內部類可以使用外部類的成員,但是外部類不能直接訪問非靜態內部類成員。

  iii.非靜態內部類不能有靜態方法,靜態屬性,和靜態初始化塊。

  iv.靜態成員不能訪問非靜態成員:外部類的靜態方法,靜態代碼塊不能訪問非靜態內部類,包括不能使用非靜態內部類定義變量,創建實例。

  v.成員變量的訪問要點:

  1.內部類里方法的局部變量:方法名

  2.內部類屬性:this.變量名

  3.外部類屬性:外部類名.this.變量名

  vi.內部類的訪問:

  1.外部類中定義內部類:new innerClass();

  2.外部類以外的地方使用非靜態內部類:

     Outer.inner varname=OuterObject.new Inner()

     Face.Nose nose=new Face().new Nose();

     Face f2=new Face();

     Face.Nose nose2=f2.new Nose();

  b)靜態內部類:

  i.定義方式:

  static class ClassName{

  //類體

  }

  ii.使用要點:

  1.當一個靜態內部類對象存在,并不一定存在對應的外部類對象。因此靜態內部類的實例方法不能直接訪問外部類的實例方法。

  2.靜態內部類看作外部類的一個靜態成員。因此,外部類的方法中可以通過:靜態內部類.名字 訪問靜態內部類的靜態成員。通過new靜態內部類()訪問靜態內部類的實例。

2.匿名內部類

  適合哪種只需要使用一次的類。 

  new 父類構造器(實參類表) 實現接口(){

  //匿名內部類類體

}

 局部內部類

  定義在方法內部。作用域只限于本方法。

?

轉載于:https://www.cnblogs.com/javatask/p/6789948.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

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

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