Java入門第二季第二章

面向?qū)ο笕筇匦裕?/p>

封裝,繼承,多態(tài);

封裝:

1.概念:

將類的某些信息隱藏在類的內(nèi)部,不允許外部程序直接訪問,而是通過該類提供的方法來實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問;

2.好處:

a.只能通過規(guī)定的方法訪問數(shù)據(jù)

b.隱藏類的實(shí)例細(xì)節(jié),方便修改和實(shí)現(xiàn)


封裝的實(shí)現(xiàn)步驟:

1.修改屬性的可見性,設(shè)為private

2.創(chuàng)建getter/setter方法,用于屬性的讀寫

get關(guān)鍵字加屬性名稱,set關(guān)鍵字加屬性名稱

get方法:獲取,無參有返回?; ?set方法:設(shè)置,有參無返回

3.在getter/setter方法中加入屬性控制語句,對(duì)屬性值的合法性進(jìn)行判斷;

例:

public class Test1 {

private int a; //封裝屬性

private int b;

private int c;

public Test1(int aa, int bb, int cc) {

a = aa; // 在構(gòu)造方法中賦值

b = bb;

c = cc;

}

public void show() {

System.out.println(a + "" + b + c);

}

public int getA() { //get屬性

return a;

}

public int getB() {

return b;

}

public int getC() {

return c;

}

public void setA(int aa) {//set屬性

a = aa;

}

public void setB(int bb) {

b = bb;

}

public void setC(int cc) {

c = cc;

}

public void show2() {

System.out.println("" + a + b + c);

}

}

根據(jù)以上代碼,我們能發(fā)現(xiàn)除了用set方法賦值外,還可以用構(gòu)造方法賦值;


包:

1.包的作用:

管理Java文件;

解決同名文件沖突;

2..定義包:package 包名

注:必須放在Java源程序的第一行

包名中間可以使用"."號(hào)隔開

eg:com.imooc.MyClass

3.系統(tǒng)中的包

java.(功能)..(類)

java.lang.(類) 包含java語言基礎(chǔ)的類

java.util.(類) 包含java語言中各種工具類

java.io.(類) 包含輸入。輸出相關(guān)功能的類


訪問修飾符:

可以修飾屬性和方法的訪問范圍;

private:只能在本類中被訪問;

默認(rèn):能在本類和同包中被訪問;

protected:能在本類,子類,同包中被訪問;

public:能在所有的類中被訪問;

this關(guān)鍵字:

1.this關(guān)鍵字代表當(dāng)前的對(duì)象:

this.屬性 操作當(dāng)前對(duì)象的屬性

this.方法 調(diào)用當(dāng)前對(duì)象的方法

2.封裝對(duì)象的屬性的時(shí)候,經(jīng)常會(huì)使用this關(guān)鍵字


Java中內(nèi)部類:

內(nèi)部類( Inner Class )就是定義在另外一個(gè)類里面的類。與之對(duì)應(yīng),包含內(nèi)部類的類被稱為外部類。

內(nèi)部類的主要作用如下:

1. 內(nèi)部類提供了更好的封裝,可以把內(nèi)部類隱藏在外部類之內(nèi),不允許同一個(gè)包中的其他類訪問該類

2. 內(nèi)部類的方法可以直接訪問外部類的所有數(shù)據(jù),包括私有的數(shù)據(jù)

3. 內(nèi)部類所實(shí)現(xiàn)的功能使用外部類同樣可以實(shí)現(xiàn),只是有時(shí)使用內(nèi)部類更方便

內(nèi)部類可分為以下幾種:

成員內(nèi)部類

靜態(tài)內(nèi)部類

方法內(nèi)部類

匿名內(nèi)部類

調(diào)用:

調(diào)用內(nèi)部類例:

Helloworld he=new Helloworld();

Helloworld.Inner in=he.new Inner( );

先創(chuàng)建外部類對(duì)象,

然后定義內(nèi)部類對(duì)象時(shí),先用外部類名.內(nèi)部類名,new也要用外部類對(duì)象名.new;


成員內(nèi)部類的使用方法:


1、 Inner 類定義在 Outer 類的內(nèi)部,相當(dāng)于 Outer 類的一個(gè)成員變量的位置,Inner 類可以使用任意訪問控制符,如 public 、 protected 、 private 等

2、?Inner 類中定義的 test() 方法可以直接訪問 Outer 類中的數(shù)據(jù),而不受訪問控制符的影響,如直接訪問 Outer 類中的私有屬性a

3、?定義了成員內(nèi)部類后,必須使用外部類對(duì)象來創(chuàng)建內(nèi)部類對(duì)象,而不能直接去 new 一個(gè)內(nèi)部類對(duì)象,即:內(nèi)部類 對(duì)象名 = 外部類對(duì)象.new 內(nèi)部類( );

4、?編譯上面的程序后,會(huì)發(fā)現(xiàn)產(chǎn)生了兩個(gè) .class 文件

其中,第二個(gè)是外部類的 .class 文件,第一個(gè)是內(nèi)部類的 .class 文件,即成員內(nèi)部類的 .class 文件總是這樣:外部類名$內(nèi)部類名.class


靜態(tài)內(nèi)部類:

1、 靜態(tài)內(nèi)部類不能直接訪問外部類的非靜態(tài)成員,但可以通過new 外部類().成員的方式訪問

2、?如果外部類的靜態(tài)成員與內(nèi)部類的成員名稱相同,可通過“類名.靜態(tài)成員”訪問外部類的靜態(tài)成員;如果外部類的靜態(tài)成員與內(nèi)部類的成員名稱不相同,則可通過“成員名”直接調(diào)用外部類的靜態(tài)成員

3、?創(chuàng)建靜態(tài)內(nèi)部類的對(duì)象時(shí),不需要外部類的對(duì)象,可以直接創(chuàng)建內(nèi)部類 對(duì)象名= new 內(nèi)部類();

運(yùn)行結(jié)果 :


方法內(nèi)部類:

方法內(nèi)部類就是內(nèi)部類定義在外部類的方法中,方法內(nèi)部類只在該方法的內(nèi)部可見,即只在該方法內(nèi)可以使用。

注意:

由于方法內(nèi)部類不能在外部類的方法以外的地方使用,因此方法內(nèi)部類不能使用訪問控制符和 static 修飾符。

第二章結(jié)束,努力努力努力,感謝慕課網(wǎng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,627評(píng)論 18 399
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子...
    趙宇_阿特奇閱讀 2,069評(píng)論 0 2
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,295評(píng)論 0 17
  • 你爬過了厚重的歷史 文/南岸閑坐 剛剛 你爬過了這些厚重的歷史 你輕易地邁過了這些人的頭頂 李聘、老莊、釋迦牟尼 ...
    南倚閑坐閱讀 208評(píng)論 0 0
  • 《終結(jié)這份無疾而終的愛》 我聽見回聲,來自田野與叢林, 望著這無盡的稻田與繁盛的綠叢, 讓獨(dú)守的靈魂收割這一季的稻...
    柒筱悅閱讀 322評(píng)論 2 3

友情鏈接更多精彩內(nèi)容