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

歡迎訪問 生活随笔!

生活随笔

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

java

Java中的封装

發布時間:2023/12/31 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的封装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、封裝的概念:
將類的某些信息隱藏在類的內部,不允許外部程序直接訪問,而是通過該類提供的方法來對隱藏的信息進行操作和訪問。
2、好處:
(1)只能通過規定的方法訪問數據
(2)隱藏類的實例細節,方便修改和實現。
3、封裝的實現步驟
(1)修改屬性的可見性設為(private)
(2)創建getter/setter方法(用于屬性的讀寫)(通過這兩種方法對數據進行獲取和設定,對象通過調用這兩種發方法實現對數據的讀寫)
(3)在getter/setter方法中加入屬性控制語句(對屬性值的合法性進行判斷)
4、Java中的包
(1)作用:管理java文件,解決同名文件的沖突
(2)定義包:package 包名
必須放在java源程序的第一行,包名間可以使用“.”號隔開例如:com.imooc.Myclass
5、包的使用。
(1)可以通過import關鍵字,在某個文件中使用其他文件中的類。
import.com.imooc.music.MyClass
(2)java中,包的名字規范是全小寫的字母拼寫
(3)使用時,不僅可以加載某個包下的所有文件 比如:com.imooc.*
也可以加載某個具體子包下的所有文件 比如:com.imooc.music.*
6、java中的訪問修飾符
private:只能在本類中使用(正因為private中的元素不能在外面直接訪問,所以才利用調用getter/setter方法訪問)
默認:本來和同包中使用
protected:本類,同包,子類中使用
public:本類,同包,子類,其他中都可以使用
7、java中的this關鍵字
this關鍵字代表當前對象
this.屬性:操作當前對象的屬性
this.方法:調用當前對象的方法
封裝對象的屬性的時候,經常會使用this關鍵字
例如:

private float screen; public void setScreen(float screen){this.screen=screen; //因為參數和屬性值一樣了,所以用this.scree分清參數和屬性 }

8、內部類
(1)定義:內部類( Inner Class )就是定義在另外一個類里面的類。與之對應,包含內部類的類被稱為外部類。
(2)作用:內部類提供了更好的封裝,可以把內部類隱藏在外部類之內,不允許同一個包中的其他類訪問該類
內部類的方法可以直接訪問外部類的所有數據,包括私有的數據
內部類所實現的功能使用外部類同樣可以實現,只是有時使用內部類更方便
(3)分類:
成員內部類
靜態內部類
方法內部類
匿名內部類
實例:

public class HelloWorld {// 內部類Inner,類Inner在類HelloWorld的內部public class Inner ()// 內部類的方法public void show() {System.out.println("welcome to imooc!");}}public static void main(String[] args) {// 創建外部類對象HelloWorld hello = new HelloWorld();// 創建內部類對象Inner i = hello.new Inner();// 調用內部類對象的方法i.show();} }

注意內部類對象的創建。
9、內部類之成員內部類
定義:定義在一個類中的類似于這個類的一個成員變量的內部類成為***成員內部類***
成員內部類的使用方法:例如:

(1) Inner 類定義在 Outer 類的內部,相當于 Outer 類的一個成員變量的位置,Inner 類可以使用任意訪問控制符,如 public 、 protected 、 private 等
(2) Inner 類中定義的 test() 方法可以直接訪問 Outer 類中的數據,而不受訪問控制符的影響,如直接訪問 Outer 類中的私有屬性a
(3) 定義了成員內部類后,必須使用外部類對象來創建內部類對象,而不能直接去 new 一個內部類對象,即:內部類 對象名 = 外部類對象.new 內部類( );
(4) 編譯上面的程序后,會發現產生了兩個 .class 文件

其中,第二個是外部類的 .class 文件,第一個是內部類的 .class 文件,即成員內部類的 .class 文件總是這樣:外部類名$內部類名.class
(5)外部類是不能直接調用內部類的變量和方法的,可先創建內部類的對象,然后通過內部類的對象來訪問其成員變量和方法。
(6)如果外部類和內部類具有相同的成員變量或方法,內部類默認訪問自己的成員變量或方法,如果要訪問外部類的成員變量,可以使用 this 關鍵字。如:

10、靜態內部類
定義:被static修飾的內部類成為靜態內部類
使用方法:
(1)靜態內部類不能直接訪問外部類的非靜態成員,但可以通過 new 外部類().成員 的方式訪問
(2)如果外部類的靜態成員與內部類的成員名稱相同,可通過***“類名.靜態成員”訪問外部類的靜態成員***(這里和成員內部類是不同的,成員內部類是通過類名.this.變量名來調用的);如果外部類的靜態成員與內部類的成員名稱不相同,則可通過“成員名”直接調用外部類的靜態成員
(3) 創建靜態內部類的對象時,不需要外部類的對象,可以直接創建 內部類 對象名= new 內部類();
11、方法內部類:
定義:方法內部類就是內部類定義在外部類的方法中,方法內部類只在該方法的內部可見,即只在該方法內可以使用。例如:

注意:(1)因為是方法內部類不能被除了方法之外所使用,所以不能直接mo.print().應該是mo.show().因為這個內部類是定義在show這個方法中的。
(2)由于方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。
12、總結:(1)只有是成員內部類創建內部類對象時候才需要通過外部類對象來創建。其他都是可以直接創建的。
(2)當外部類和內部類變量重名的話,想要調用外部變量。成員內部類需要(類名.this.變量名)。靜態內部類需要是(類名.變量名)

總結

以上是生活随笔為你收集整理的Java中的封装的全部內容,希望文章能夠幫你解決所遇到的問題。

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