面向?qū)ο?/h1>
  • 面向?qū)ο笏枷?/h2>
    • 面向?qū)ο蠡靖攀?br> 面向?qū)ο笫腔诿嫦蜻^(guò)程的編程思想。
    • 面向?qū)ο螅簭?qiáng)調(diào)的是每一個(gè)功能的步驟
    • 面向?qū)ο螅簭?qiáng)調(diào)的是對(duì)象,然后由對(duì)象去調(diào)用功能。

  • 面向?qū)ο蟮乃枷胩攸c(diǎn)

    • 是一種更符合我們思想習(xí)慣的思想侍筛。
    • 可以將復(fù)雜的事情簡(jiǎn)單化
    • 將我們從執(zhí)行者變成了指揮者
  • 面向?qū)ο箝_(kāi)發(fā)

    • 就是不斷的創(chuàng)建對(duì)象髓绽,使用對(duì)象锅锨,指揮對(duì)象做事叽赊。
  • 面向?qū)ο笤O(shè)計(jì)

    • 其實(shí)就是在管理和維護(hù)對(duì)象之間的關(guān)系。
  • 面向?qū)ο筇卣?/h2>
    • 封裝
    • 繼承
    • 多態(tài)

  • 類(lèi)

是一組相關(guān)的屬性和行為的集合必搞,是一個(gè)抽象的概念

  • 對(duì)象

是該類(lèi)事物的具體體現(xiàn)必指。

  • 如何使用

創(chuàng)建對(duì)象使用
如何創(chuàng)建對(duì)象呢?
類(lèi)名 對(duì)象名 = new 類(lèi)名()恕洲;

  • 成員變量和局部變量的區(qū)別

    • 成員變量在類(lèi)中方法外塔橡。
    • 局部變量在方法定義中或者方法聲明上。
    • 成員變量在堆內(nèi)存
    • 局部變量在棧內(nèi)存
    • 成員變量隨著對(duì)象的創(chuàng)建而存在霜第,隨著對(duì)象的消失而消失
    • 局部變量隨著方法的調(diào)用而存在葛家,隨著方法的調(diào)用完畢而消失。
    • 成員變量:有默認(rèn)初始化值
    • 局部變量:沒(méi)有默認(rèn)初始化值泌类,必須定義癞谒,賦值,然后才能使用刃榨。
    • 局部變量名稱(chēng)可以和成員變量一樣弹砚,在方法中使用的時(shí)候,采用的是就近原則枢希。
  • 匿名對(duì)象

    • 就是沒(méi)有名字的對(duì)象桌吃。
      new Student().show();
    • 匿名對(duì)象作為實(shí)際對(duì)象參數(shù)傳遞。
  • 私有變量

    • private:私有的苞轿,可以修飾成員變量和成員方法茅诱。
    • 被private修飾的成員只能在本類(lèi)中訪(fǎng)問(wèn)。
    • 這就是封裝
  • 封裝

    • 隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié)搬卒,僅對(duì)外提供公共訪(fǎng)問(wèn)方式让簿。
    • 隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪(fǎng)問(wèn)方式
    • 提高代碼的復(fù)用性
    • 提高安全性
    • 原則
      將不需要對(duì)外提供的內(nèi)容隱藏起來(lái)秀睛。
      把屬性隱藏,提供公共方法對(duì)其訪(fǎng)問(wèn)莲祸。
  • static(可以修飾成員變量蹂安,還可以修飾成員方法)

    • static的特點(diǎn)
      隨著類(lèi)的加載而加載
      優(yōu)先于對(duì)象而存在
      被類(lèi)的所有對(duì)象共享 列如:班級(jí)學(xué)生共用一個(gè)班級(jí)編號(hào)。
    • 可以通過(guò)類(lèi)名調(diào)用锐帜,也可以用對(duì)象名調(diào)用田盈。
    • 靜態(tài)方法只能訪(fǎng)問(wèn)靜態(tài)的成員變量和靜態(tài)的成員方法。
  • 代碼塊

    • 局部代碼塊
      局部位置缴阎,用于限定變量的生命周期允瞧。
    • 構(gòu)造代碼塊
      在類(lèi)中的成員位置,用{}括起來(lái)的代碼,每次調(diào)用構(gòu)造方法執(zhí)行前述暂,都會(huì)先執(zhí)行構(gòu)造代碼塊
    • 靜態(tài)代碼塊
      在類(lèi)中的成員位置痹升,用{}括起來(lái)的代碼,只不過(guò)它用static修飾了畦韭。
      只會(huì)隨著類(lèi)加載一次疼蛾,重復(fù)加載不會(huì)出現(xiàn)。
      執(zhí)行順序
      靜態(tài)代碼塊>構(gòu)造代碼塊>構(gòu)造方法
  • 繼承的概述

    • 多個(gè)類(lèi)中存在相同屬性的行為時(shí)艺配,將這些內(nèi)容抽取到單獨(dú)一個(gè)類(lèi)中察郁,那么多個(gè)類(lèi)無(wú)需再定義這些屬性和行為,只要繼承那個(gè)類(lèi)即可转唉。
    • 通過(guò)extend關(guān)鍵字可以實(shí)現(xiàn)類(lèi)與類(lèi)的繼承
      class 子類(lèi)名 extends 父類(lèi)名{}
    • 單獨(dú)的這個(gè)類(lèi)稱(chēng)為父類(lèi)皮钠,基類(lèi)或超類(lèi),這多個(gè)類(lèi)可以稱(chēng)為子類(lèi)或者派生類(lèi)
    • 有了繼承以后赠法,我們定義一個(gè)的時(shí)候麦轰,可以在一個(gè)已經(jīng)存在的類(lèi)的基礎(chǔ)上,還可以定義自己的新成員期虾。
    • 好處
      提高了代碼的復(fù)用性
      提高了代碼的維護(hù)性
      類(lèi)與類(lèi)之間產(chǎn)生了關(guān)系原朝。
  • java中繼承的特點(diǎn):

    • Java中支持單繼承,不支持多繼承
      列如class Son extends Father,Mother是錯(cuò)誤的镶苞。
    • java支持多層繼承(繼承體系)
  • 繼承的注意事項(xiàng)

    • 子類(lèi)只能繼承父類(lèi)所有非私有的成員
    • 子類(lèi)不能繼承父類(lèi)的構(gòu)造方法喳坠,但是可以通過(guò)super關(guān)鍵字去訪(fǎng)問(wèn)父類(lèi)構(gòu)造方法
    • 不要為了部分功能而去繼承
  • 繼承和構(gòu)造方法的關(guān)系

    • 子類(lèi)中所有構(gòu)造方法默認(rèn)都會(huì)訪(fǎng)問(wèn)父類(lèi)中空參數(shù)的構(gòu)造方法。
    • 子類(lèi)中每個(gè)構(gòu)造方法默認(rèn)都是super()茂蚓;開(kāi)頭的
  • 繼承中的super和this

    • 子類(lèi)可以通過(guò)super去顯示調(diào)用父類(lèi)其他的帶參的構(gòu)造方法
    • 子類(lèi)通過(guò)this調(diào)用本類(lèi)的其他構(gòu)造方法
    • 注意:super和this必須出現(xiàn)在方法的第一條語(yǔ)句壕鹉。
  • 方法重寫(xiě)

    • 子類(lèi)中出現(xiàn)了和父類(lèi)一摸一樣的方法聲明,也被稱(chēng)為方法覆蓋聋涨,方法重寫(xiě)
    • 使用特點(diǎn):
      如果方法名不同晾浴, 有就調(diào)用對(duì)應(yīng)的方法,如果方法名相同牍白,最終使用的是子類(lèi)自己的脊凰。
    • 注意事項(xiàng)
      父類(lèi)中私有方法不能被重寫(xiě),因?yàn)樽宇?lèi)無(wú)法繼承父類(lèi)的私有方法茂腥。
    • 子類(lèi)重寫(xiě)父類(lèi)方法時(shí)狸涌,訪(fǎng)問(wèn)權(quán)限不能比父類(lèi)更低。
    • 父類(lèi)靜態(tài)方法最岗,子類(lèi)也必須通過(guò)靜態(tài)方法進(jìn)行重寫(xiě)
  • final

    • 最終的意思帕胆,用處是不讓子類(lèi)的方法重載覆蓋掉父類(lèi)的功能,只能讓他使用般渡。
    • final可以修飾類(lèi)懒豹,方法和變量
    • final修飾類(lèi)的特點(diǎn)
      這是最終類(lèi)芙盘,被final修飾了之后,無(wú)法稱(chēng)為父類(lèi)了脸秽。
    • final修飾方法的特點(diǎn)
      被final修飾的方法儒老,無(wú)法被重寫(xiě)
    • final修飾變量的特點(diǎn)。
      變量就變成了常量豹储,只能被賦值一次贷盲。
  • 多態(tài)概述

    • 某一個(gè)事物,在不同時(shí)刻表現(xiàn)出來(lái)的不同狀態(tài)剥扣。
      父類(lèi) 名稱(chēng) = new 子類(lèi)()巩剖;
      -##多態(tài)的前提
    • 要有繼承關(guān)系
    • 要有方法重寫(xiě)
    • 要有父類(lèi)引用指向子類(lèi)對(duì)象。
  • 多態(tài)中的成員訪(fǎng)問(wèn)特點(diǎn)

    • 成員變量
      編譯看左邊钠怯,運(yùn)行就是父類(lèi)的值佳魔。
    • 構(gòu)造方法
      創(chuàng)建子類(lèi)對(duì)象的時(shí)候,訪(fǎng)問(wèn)父類(lèi)的構(gòu)造方法晦炊,對(duì)父類(lèi)的數(shù)據(jù)進(jìn)行初始化鞠鲜。
    • 成員方法
      編譯看左邊,如果子類(lèi)有多出的方法就報(bào)錯(cuò)(這也是多態(tài)的弊端)断国,運(yùn)行結(jié)果看子類(lèi)的贤姆。
    • 靜態(tài)方法
      編譯看左邊,運(yùn)行也是父類(lèi)
  • 多態(tài)的優(yōu)點(diǎn)

    • 提高了代碼的維護(hù)性(繼承保證)
    • 提高了代碼的擴(kuò)展行()
  • 對(duì)象間的轉(zhuǎn)型問(wèn)題

    • 向上轉(zhuǎn)型:
      Fu f = new Zi();
    • 向下轉(zhuǎn)型
      Zi() z = (Zi)f;
  • 抽象類(lèi)的概述

    • 一個(gè)沒(méi)有方法體的方法應(yīng)該定義為抽象方法稳衬,而類(lèi)中如果有抽象方法霞捡,該類(lèi)必須定義為抽象類(lèi)。
    • 抽象類(lèi)和抽象方法必須用abstract關(guān)鍵字修飾
      abstract class 類(lèi)名{}
      public abstract void eat()薄疚;
  • 抽象類(lèi)的特點(diǎn)

    • 抽象類(lèi)和抽象方法必須用abstract關(guān)鍵字修飾
    • 抽象類(lèi)中不一定有抽象方法碧信,但是有抽象方法的類(lèi)必須定義為抽象類(lèi)。
    • 抽象不能實(shí)例化
      • 因?yàn)樗皇蔷唧w的街夭。
      • 抽象類(lèi)有構(gòu)造方法砰碴,但是不能實(shí)例化。構(gòu)造方法的作用是什么呢板丽?
      • 用于子類(lèi)訪(fǎng)問(wèn)父類(lèi)數(shù)據(jù)的初始化
    • 抽象的子類(lèi)
      • 如果不想重寫(xiě)抽象方法呈枉,該子類(lèi)是一個(gè)抽象類(lèi)。
      • 重寫(xiě)所有的抽象方法埃碱,這個(gè)時(shí)候子類(lèi)是一個(gè)具體的類(lèi)
    • 抽象類(lèi)的實(shí)例化其實(shí)是靠具體的子類(lèi)實(shí)現(xiàn)的碴卧,是多態(tài)的方式。
    • 抽象類(lèi)中的抽象方法就是強(qiáng)制要求子類(lèi)必須重寫(xiě)乃正,也就是強(qiáng)制子類(lèi)做的事情。
  • 抽象類(lèi)中的小問(wèn)題

    • 一個(gè)類(lèi)如果沒(méi)有抽象方法婶博,可不可以定義為抽象類(lèi)瓮具?如果可以,有什么意義。
      • 可以
      • 意義是不讓創(chuàng)建對(duì)象名党,只能通過(guò)子類(lèi)訪(fǎng)問(wèn)
    • abstract不能和哪些修飾方法時(shí)的關(guān)鍵字共存
      • private 沖突
      • final 沖突
      • static 無(wú)意義
  • 接口概述

為了體現(xiàn)事物功能的擴(kuò)展性叹阔,java中就提供了接口來(lái)定義這些額外功能,并不給出具體實(shí)現(xiàn)传睹。

  • 接口的特點(diǎn)

    • 接口用interface表示
    • 類(lèi)實(shí)現(xiàn)接口用implements表示
    • 接口不能實(shí)例化
      • 按照多態(tài)的方式來(lái)實(shí)例化
    • 接口多態(tài)是多態(tài)中最常用的耳幢。
  • 接口成員的特點(diǎn)

    • 成員變量:只能是常量,并且是靜態(tài)的欧啤。
      默認(rèn)修飾符public睛藻、static、final
      建議是自己動(dòng)手給出變量的值邢隧。
    • 構(gòu)造方法
      接口沒(méi)有構(gòu)造方法店印。
    • 成員方法
      只能是抽象方法。
      默認(rèn)修飾符:public abstract
      建議自己手動(dòng)給出倒慧。
  • 抽象類(lèi)和接口的區(qū)別

    • 成員區(qū)別
      • 抽象類(lèi)
        成員變量可以變量按摘,也可以常量。
        構(gòu)造方法有
        成員方法可以抽象纫谅,也可以非抽象
      • 接口
        成員變量只可以常量
        成員方法只可以抽象
    • 關(guān)系區(qū)別
      • 類(lèi)與類(lèi)
        繼承關(guān)系炫贤,能單繼承,也可以多層繼承付秕。
      • 類(lèi)與接口
        實(shí)現(xiàn)關(guān)系兰珍,可以單實(shí)現(xiàn),也可以多實(shí)現(xiàn)盹牧。
      • 接口與接口
        繼承關(guān)系俩垃,可以單繼承,也可以多繼承
    • 設(shè)計(jì)理念區(qū)別
      抽象類(lèi)被繼承體現(xiàn)的是is a的關(guān)系汰寓,抽象類(lèi)中定義的是該繼承體系的共性功能口柳。
      接口被實(shí)現(xiàn)體現(xiàn)的是like a 的關(guān)系,接口中定義的是該繼承體系的擴(kuò)展功能有滑。
  • 權(quán)限修飾符

%%0I~(N6Z3{XWGOL1(KSOP9.png
  • 類(lèi)及其組成所使用的常見(jiàn)修飾符

    • 類(lèi)
      • 權(quán)限修飾符:默認(rèn)修飾符跃闹,public
      • 狀態(tài)修飾符:final
      • 抽象修飾符:abstract
      • 用的最多的就是:public
    • 成員變量
      • 權(quán)限修飾符:private,默認(rèn)的毛好,protected望艺,public
      • 狀態(tài)修飾符:static,final
    • 構(gòu)造方法
      • 權(quán)限修飾符:private肌访,默認(rèn)的找默,protected,public
    • 成員方法
      • 權(quán)限修飾符:private吼驶,默認(rèn)的惩激,protected店煞,public
      • 狀態(tài)修飾符:static,final
      • 抽象修飾符:abstract
    • 其他組合規(guī)則:
      • 成員變量:public static final
      • 成員方法: public static,public abstract,public final
  • 內(nèi)部類(lèi)概述和講解

就是把類(lèi)定義在類(lèi)的內(nèi)部风钻。

  • 內(nèi)部類(lèi)可以直接訪(fǎng)問(wèn)外部類(lèi)的成員顷蟀,包括私有私有
  • 外部類(lèi)要訪(fǎng)問(wèn)內(nèi)部類(lèi)的成員,必須創(chuàng)建對(duì)象骡技。
  • 內(nèi)部類(lèi)位置
    • 成員位置:在成員位置定義的類(lèi)鸣个,被稱(chēng)為成員內(nèi)部類(lèi)。
      使用 外部類(lèi)名.內(nèi)部類(lèi)名 對(duì)象名 = new 外部類(lèi)名().new 內(nèi)部類(lèi)名()
      被靜態(tài)修飾后用
      外部類(lèi)名,內(nèi)部類(lèi)名 對(duì)象名 = new 外部類(lèi)名.內(nèi)部類(lèi)名();
      外部類(lèi)名.內(nèi)部類(lèi)名.方法();
    • 局部位置:在局部位置定義的類(lèi)布朦,被稱(chēng)為局部?jī)?nèi)部類(lèi)囤萤。
      局部可以直接訪(fǎng)問(wèn)外部類(lèi)的成員
      在局部位置,可以創(chuàng)建內(nèi)部類(lèi)對(duì)象喝滞,通過(guò)對(duì)象調(diào)用內(nèi)部類(lèi)方法阁将,來(lái)使用局部?jī)?nèi)部類(lèi)功能。
      局部?jī)?nèi)部訪(fǎng)問(wèn)局部變量必須用final修飾局部變量
      因?yàn)榫植孔兞繒?huì)隨著方法的調(diào)用完畢而消失右遭,這個(gè)時(shí)候做盅,局部對(duì)象并沒(méi)用立馬從堆內(nèi)存中消失,還要使用那個(gè)變量窘哈。為了讓數(shù)據(jù)還能據(jù)繼續(xù)被使用吹榴,就用final修飾。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者

  • 序言:七十年代末滚婉,一起剝皮案震驚了整個(gè)濱河市图筹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌让腹,老刑警劉巖远剩,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異骇窍,居然都是意外死亡瓜晤,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)腹纳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)痢掠,“玉大人,你說(shuō)我怎么就攤上這事嘲恍∽慊” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵佃牛,是天一觀(guān)的道長(zhǎng)淹辞。 經(jīng)常有香客問(wèn)我,道長(zhǎng)俘侠,這世上最難降的妖魔是什么象缀? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任彬向,我火速辦了婚禮,結(jié)果婚禮上攻冷,老公的妹妹穿的比我還像新娘。我一直安慰自己遍希,他們只是感情好等曼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著凿蒜,像睡著了一般禁谦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上废封,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天州泊,我揣著相機(jī)與錄音,去河邊找鬼漂洋。 笑死遥皂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刽漂。 我是一名探鬼主播演训,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贝咙!你這毒婦竟也來(lái)了样悟?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤庭猩,失蹤者是張志新(化名)和其女友劉穎窟她,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔼水,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡震糖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了徙缴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片试伙。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖于样,靈堂內(nèi)的尸體忽然破棺而出疏叨,到底是詐尸還是另有隱情,我是刑警寧澤穿剖,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布蚤蔓,位于F島的核電站,受9級(jí)特大地震影響糊余,放射性物質(zhì)發(fā)生泄漏秀又。R本人自食惡果不足惜单寂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吐辙。 院中可真熱鬧宣决,春花似錦、人聲如沸昏苏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)贤惯。三九已至洼专,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間孵构,已是汗流浹背屁商。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颈墅,地道東北人蜡镶。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像精盅,于是被迫代替她去往敵國(guó)和親帽哑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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