內(nèi)部類

<small>
1赊窥、多態(tài)
1)、兩種表現(xiàn)形式:
a狸页、一個(gè)對(duì)象锨能,多種形態(tài)。
同一個(gè)對(duì)象芍耘,在不同場(chǎng)合下址遇,
表現(xiàn)出不同的形態(tài),能完成不同的功能斋竞。

    在java中倔约,往往使用implements關(guān)鍵字,實(shí)現(xiàn)多個(gè)接口坝初。

    //同一個(gè)人
    CC peo = new CC();
    
    //同一個(gè)人浸剩,在不同的場(chǎng)合钾军,表現(xiàn)出不同的形態(tài)
    //不同角色,表現(xiàn)的行為也不一樣绢要。
    Teacher teacher = peo;
    teacher.teach();//老師可以講課
    
    Father father = peo;
    father.talkToSon();//父親教育孩子
    
    Husband husband = peo;
    husband.giveMySalary();//丈夫上交工資

b吏恭、多個(gè)對(duì)象,同一形態(tài)重罪。
    不同對(duì)象樱哼,向上造型成同一種類型。
    實(shí)現(xiàn)相同的功能蛆封。
    
    在java中唇礁,往往使用extends關(guān)鍵字,繼承同一個(gè)父類惨篱。

    Tiger tiger = new Tiger();
    tiger.name = "小王";
    
    Snake snake = new Snake();
    snake.name = "莽山烙鐵頭";
    
    Lion lion = new Lion();
    lion.name = "東北獅王";
    
    //不同對(duì)象盏筐,表現(xiàn)出同一種形態(tài)。
    Animal animal1 = tiger;
    Animal animal2 = snake;
    Animal animal3 = lion;

2砸讳、引用類型強(qiáng)制類型轉(zhuǎn)換
回顧:基本類型強(qiáng)制類型轉(zhuǎn)換
long l = 1000;
int i = (int)l;
byte b = (byte)i;//溢出

Animal animal = new Tiger();
animal.name = "小王";
    
//引用類型強(qiáng)制類型轉(zhuǎn)換
Lion lion = (Lion)animal;//錯(cuò)誤琢融,會(huì)導(dǎo)致類型轉(zhuǎn)換異常ClassCastException

instanceof關(guān)鍵字:
可用于在引用類型轉(zhuǎn)換之前,實(shí)現(xiàn)類型判斷簿寂。
符合轉(zhuǎn)換匹配的類型漾抬,方能實(shí)現(xiàn)強(qiáng)制類型轉(zhuǎn)換。

有效的避免了引用類型轉(zhuǎn)換異常的發(fā)生常遂。

語(yǔ)法:
大類型 大類型引用 = new 小類型();

if(大類型引用 instanceof 小類型){//類型判斷
    //類型匹配
    小類型 小類型引用 = (小類型)大類型引用;
}
    
//引用類型強(qiáng)制類型轉(zhuǎn)換
Lion lion = (Lion)animal;//錯(cuò)誤
改造成
if(animal instanceof Lion){
    //只有匹配才能進(jìn)來(lái)
    Lion lion = (Lion)animal;
}

3纳令、方法重寫要求:
a、發(fā)生在子父類之間
b克胳、方法名相同平绩、參數(shù)列表相同
c、訪問權(quán)限不能變小
d漠另、拋出異常不能變大
e捏雌、返回值類型可以是本類或其子類

********************** pm ************************
1、內(nèi)部類
class:類
class:實(shí)體類
abstract class:抽象類

1)笆搓、內(nèi)部類
定義在類內(nèi)部的類性湿,稱為內(nèi)部類。
類內(nèi)部:
類體满败、方法體肤频。

2)、內(nèi)部類定義
外部類:定義了內(nèi)部類的類算墨。
內(nèi)部類:定義在外部類中的類宵荒。

class Outer{//外部類
    class Inner{//內(nèi)部類

    }
}
只要是類,類中可定義:成員變量、方法骇扇、靜態(tài)塊。

3)面粮、內(nèi)部類的使用
a:創(chuàng)建內(nèi)部類對(duì)象
step1:先創(chuàng)建外部類對(duì)象。
step2:再通過(guò)外部類創(chuàng)建內(nèi)部類對(duì)象。

b勉失、在外部類外面
對(duì)內(nèi)部類屬性使用地技、方法調(diào)用
與普通類的屬性使用、方法調(diào)用一致柴底。
通過(guò)引用.屬性婿脸,引用.方法

c、內(nèi)部類中(**注意)
調(diào)用內(nèi)部類屬性:this.屬性;
調(diào)用外部類屬性:外部類名.this.屬性;

4)柄驻、內(nèi)部類意義
封裝在內(nèi)部類的中代碼狐树,不可以直接訪問,必須先創(chuàng)建
外部類對(duì)象鸿脓,通過(guò)外部類對(duì)象創(chuàng)建內(nèi)部類對(duì)象抑钟,才能訪問。
一定程度上野哭,起到了代碼保護(hù)效果在塔。

PS:普通內(nèi)部類很少使用。

2拨黔、匿名內(nèi)部類
1)蛔溃、匿名內(nèi)部類

    class Outer{//外部類
        class {//匿名內(nèi)部類?篱蝇?贺待??态兴?狠持?
}
    }
上述定義是錯(cuò)誤的。

2)瞻润、匿名內(nèi)部類定義
某個(gè)類的匿名內(nèi)部類喘垂,并非直接在類中定義。
在外部類對(duì)象創(chuàng)建的時(shí)候定義绍撞。
step1:先創(chuàng)建外部類對(duì)象
OuterClass outer = new OuterClass();
step2:在外部類創(chuàng)建對(duì)象的()與;中間正勒,
添加一對(duì){},則{}即為匿名內(nèi)部類類體傻铣。
step3:匿名內(nèi)部類中可以定義屬性章贞、方法。

3)非洲、匿名內(nèi)部的使用鸭限。
匿名內(nèi)部類屬性蜕径,只能在匿名內(nèi)部類中使用。

匿名內(nèi)部類的方法败京,無(wú)法直接“調(diào)用”兜喻。
   只能通過(guò)匿名內(nèi)部類重寫外部類的方法,才能調(diào)用赡麦。

4)朴皆、****什么時(shí)候使用匿名內(nèi)部類?
抽象類、接口都是無(wú)法實(shí)例化的泛粹。

抽象類 引用 = new 抽象類();//不可以
接口 引用 = new 接口();//不可以

如何實(shí)現(xiàn)抽象類遂铡、接口的“實(shí)例化”?
    都是先讓實(shí)體類繼承抽象類晶姊,實(shí)現(xiàn)類實(shí)現(xiàn)接口扒接,
    然后通過(guò)向上造型方式,完成抽象類们衙、接口的“實(shí)例化”珠增。
    抽象類 引用 = new 實(shí)體類();//可以
    接口 引用 = new 實(shí)現(xiàn)類();//可以
    
如果抽象類的實(shí)體類、接口的實(shí)現(xiàn)類砍艾,極少使用蒂教,
那作為單獨(dú)一個(gè)類出現(xiàn)就沒有多大意義。

實(shí)體類脆荷、實(shí)現(xiàn)類就可以通過(guò)匿名內(nèi)部類方式來(lái)實(shí)現(xiàn)凝垛。

2、封裝
封裝不是單純的知識(shí)點(diǎn)蜓谋,而是一種思想梦皮。
方法:對(duì)特定功能代碼的封裝
類:對(duì)具有相似特征,相同行為的對(duì)象群體的封裝桃焕。
對(duì)象特征 → 類的屬性
對(duì)象行為 → 類的方法

子父類:對(duì)繼承剑肯、公有代碼的封裝。
抽象方法:對(duì)沒有具體實(shí)現(xiàn)的方法進(jìn)行封裝观堂。
抽象類:對(duì)具有抽象方法的類让网、對(duì)代碼需要保護(hù)的類的封裝。
接口:對(duì)規(guī)范师痕、標(biāo)準(zhǔn)的封裝溃睹。
內(nèi)部類:對(duì)代碼保護(hù)封裝
匿名內(nèi)部類:對(duì)抽象類的實(shí)體類、接口的實(shí)現(xiàn)類的封裝胰坟。

單獨(dú)“封裝知識(shí)點(diǎn)”:
對(duì)于私有屬性因篇、私有方法,進(jìn)行封裝。

step1:采用private訪問權(quán)限修飾竞滓。
    對(duì)屬性咐吼、方法,起到只能在本類中才能使用商佑。

step2:屬性賦值
      方式一:
    通過(guò)構(gòu)造方法汽烦,創(chuàng)建對(duì)象的同時(shí),
    給私有屬性賦值莉御。

      方式二:
    當(dāng)屬性添加private訪問權(quán)限時(shí),則需要
    對(duì)外提供統(tǒng)一的賦值俗冻、取值的方法入口礁叔。

    賦值:set方法
    取值:get方法

step3:編寫set、get方法
    a迄薄、set方法:
    private String name;

    public void setName(String name){
        this.name = name;
    }

    b琅关、get方法:
    public String getName(){
        return this.name;
    }


步驟:
1、對(duì)私有屬性進(jìn)行private私有化操作讥蔽。
2涣易、對(duì)私有屬性向外提供統(tǒng)一的入口方法:set、get方法

為什么要私有化操作:
    提高代碼的安全性冶伞。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末新症,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子响禽,更是在濱河造成了極大的恐慌徒爹,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芋类,死亡現(xiàn)場(chǎng)離奇詭異隆嗅,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)侯繁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門胖喳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人贮竟,你說(shuō)我怎么就攤上這事丽焊。” “怎么了咕别?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵粹懒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我顷级,道長(zhǎng)凫乖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮帽芽,結(jié)果婚禮上删掀,老公的妹妹穿的比我還像新娘。我一直安慰自己导街,他們只是感情好披泪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著搬瑰,像睡著了一般款票。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泽论,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天艾少,我揣著相機(jī)與錄音,去河邊找鬼翼悴。 笑死缚够,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鹦赎。 我是一名探鬼主播谍椅,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼古话!你這毒婦竟也來(lái)了雏吭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤陪踩,失蹤者是張志新(化名)和其女友劉穎思恐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膊毁,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胀莹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了婚温。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片描焰。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖栅螟,靈堂內(nèi)的尸體忽然破棺而出荆秦,到底是詐尸還是另有隱情,我是刑警寧澤力图,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布步绸,位于F島的核電站,受9級(jí)特大地震影響吃媒,放射性物質(zhì)發(fā)生泄漏瓤介。R本人自食惡果不足惜吕喘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刑桑。 院中可真熱鬧氯质,春花似錦、人聲如沸祠斧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)琢锋。三九已至辕漂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吴超,已是汗流浹背钉嘹。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烛芬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓飒责,卻偏偏與公主長(zhǎng)得像赘娄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宏蛉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • Java 內(nèi)部類 分四種:成員內(nèi)部類遣臼、局部?jī)?nèi)部類、靜態(tài)內(nèi)部類和匿名內(nèi)部類拾并。 1揍堰、成員內(nèi)部類: 即作為外部類的一個(gè)成...
    ikaroskun閱讀 1,223評(píng)論 0 13
  • 一之碗、繼承 當(dāng)兩個(gè)事物之間存在一定的所屬關(guān)系蝙眶,即就像孩子從父母那里得到遺傳基因一樣,當(dāng)然褪那,java要遺傳的更完美幽纷,這...
    玉圣閱讀 1,048評(píng)論 0 2
  • 一武学、多態(tài) 1. 概述 理解:多態(tài)可以理解為事物存在的多種體(表)現(xiàn)形態(tài)。例如:動(dòng)物中的貓和狗派诬。貓這個(gè)對(duì)象對(duì)應(yīng)的是貓...
    陳凱冰閱讀 337評(píng)論 0 1
  • We believe that writing is about content, about what you ...
    hongXkeX閱讀 267評(píng)論 0 0
  • 斜風(fēng)起劳淆,細(xì)柳柔。 日落人去欲還休默赂,眉低皺沛鸵,問君為誰(shuí)憂?喚醒許多愁缆八。 秋雨落曲掰,隨波流。 黃葉飄零華珠露奈辰,欲解憂栏妖,縱然...
    雨韓閱讀 460評(píng)論 44 24