JAVA面向對象

1、this 用于區別成員變量與局部變量重名

????在成員變量前面添加 this.

2、構造方法

A 構造方法概述:??

? ? 作用:為了給對象的屬性初始化

? ? 特點:方法名與類名相同,沒有返回值,不需要void

? ? 注意:構造方法不能用對象調用,在創建對象的時候構造方法與已經執行。

B 構造方法重載:

????方法名相同,與返回值類型無關(構造方法沒有返回值),只看參數列表

????注意:如果不寫構造方法,系統會自動給出空參構造。如果要給出有參構造的時候,必須要先給出空參構造。

3、static 關鍵字

*A:static關鍵字的特點

??? * a:隨著類的加載而加? * b:優先于對象存在? ?* c:被類的所有對象共享? ?* d:可以通過類名調用

? ? ?如果一個成員變量被所有對象共享,那么就可以把成員變量設置為靜態static

*B 靜態的注意事項

????*a 靜態方法中沒有this關鍵字。

?????????????靜態是隨著類的加載而加載,this是隨著對象的創建而存在。靜態比對象先存在。

? ? *b? 靜態方法只能訪問靜態的成員變量和靜態的成員方法

*C?靜態變量和成員變量的區別

?????靜態變量也叫類變量? 成員變量也叫對象變量

? ??*A:所屬不同

??????? *靜態變量屬于類,所以也稱為為類變量

??????? *成員變量屬于對象,所以也稱為實例變量(對象變量)

????*B:內存中位置不同

??? ????*靜態變量存儲于方法區的靜態區

??? ????*成員變量存儲于堆內存

????*C:內存出現時間不同

??? ????*靜態變量隨著類的加載而加載,隨著類的消失而消失

??? ????*成員變量隨著對象的創建而存在,隨著對象的消失而消失

????*D:調用不同

??? ????*靜態變量可以通過類名調用,也可以通過對象調用

??? ????*成員變量只能通過對象名調用

5、代碼塊

????A? 代碼塊分類:

????根據其位置和聲明的不同,可以分為局部代碼塊,構造代碼塊,靜態代碼塊,同步代碼塊(多線程講解)

????B:常見代碼塊的應用

??????? * a:局部代碼塊:? ?在方法中出現;限定變量生命周期,及早釋放,提高內存利用率

??????? * b:構造代碼塊 (初始化塊): 在類中方法外出現;多個構造方法中相同的代碼存放到一起,每次調用構造都執行,并且在構造方法前執行

??????? * c:靜態代碼塊: 在類中方法外出現,并加上static修飾;用于給類進行初始化,隨著類的加載而加載,在加載的時候就執行(優先于主方法執行),且只執行一次。? ? *一般用于加載驅動

6、繼承

?????A?:繼承的好處:* a:提高了代碼的復用性? * b:提高了代碼的維護性? ?* c:讓類與類之間產生了關系,是多態的前提

????B? :繼承的弊端:* 類的耦合性增強了。*開發的原則:高內聚,低耦合。*耦合:類與類的關系? *內聚:就是自己完成某件事情的能力

????C :繼承的特點: JAVA中只支持單繼承(只有一個爹),支持多層繼承(有祖宗)。

????D:? 繼承的注意事項: *a:子類只能繼承父類所有非私有的成員(成員方法和成員變量)? ?* b:子類不能繼承父類的構造方法,但是可以通過super關鍵字去訪問父類構造方法。? * c:不要為了部分功能而去繼承

????E:? 繼承中成員變量之間的關系: * 同名變量:就近原則

????F: 繼承中構造方法的關系:

????????* 子類中所有的構造方法默認都會訪問父類中空參數的構造方法。* 因為子類會繼承父類中的數據,可能還會使用父類的數據。所以,子類初始化之前,一定要先完成父類數據的初始化。

?????????每一個構造方法的第一條語句默認都是:super() ,即使不寫,系統會默認加上,用來訪問父類中的空參構造。

? ????? 如果父類中沒有給出無參構造,同時又寫了有參構造,則會出現問題

????G: 繼承中成員方法之間的關系:

????????* 重寫: 子父類出現了一模一樣的方法? ? ?* 當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法。這樣,即沿襲了父類的功能,又定義了子類特有的內容。

????????*方法重寫注意事項:

? ????? ? ? ?a:父類中私有方法不能被重寫 :因為父類私有方法子類根本就無法繼承

? ????? ? ? ?b:子類重寫父類方法時,訪問權限不能更低,最好就一致

? ? ???? ? ?c:父類靜態方法,子類也必須通過靜態方法進行重寫。 其實這個算不上方法重寫,靜態只能覆蓋靜態

????? ? ? ? ?子類重寫父類方法的時候,最好聲明一模一樣。

???? ?H :Override(重寫)和Overload(重載)的區別?

? ??????????? ?overload可以改變返回值類型,只看參數列表

????? ? ? ? ? ?方法重寫:子類中出現了和父類中方法聲明一模一樣的方法。與返回值類型有關,返回值是一致(或者是子父類)的

????? ? ? ? ? ?方法重載:本類中出現的方法名一樣,參數列表不同的方法。與返回值類型無關。

? ? ? ? ? ? ? *子類對象調用方法的時候,先找子類本身,再找父類。

7、this 與super

????*A:this和super都代表什么

??? ????* this:代表當前對象的引用,誰來調用我,我就代表誰

??? ????* super:代表當前對象父類的引用

????*B:this和super的使用區別

??? ????* a:調用成員變量

??????? ????* this.成員變量 調用本類的成員變量,也可以調用父類的成員變量(繼承)

??????? ????* super.成員變量 調用父類的成員變量

??? ????* b:調用構造方法

??????????? * this(...) 調用本類的構造方法

??????????? * super(...)??? 調用父類的構造方法

??????? * c:調用成員方法

??????????? * this.成員方法 調用本類的成員方法,也可以調用父類的方法(繼承)

??????? ????* super.成員方法 調用父類的成員方法????

????注意:在一個構造方法中不能同時寫this(...)?和super(...)?。? this(...) 和super(...) 必須卸載第一條語句。

8、final

????A:概述:

????B:final修飾特點

??? ????*修飾類,類不能被繼承

??? ????*修飾變量,變量就變成了常量,只能被賦值一次

??? ????*修飾方法,方法不能被重寫

? ? ????*修飾引用數據類型:不能改變其地址值,但是可以改變其屬性值

? ? ????*修飾基本類型變量:不能改變其值。

9、多態(polymorphic)

????A:概述:事物存在多種形態

? ? B:多態前提:? 要有繼承、方法重寫、父類引用指向子類對象

????C:成員變量:編譯看左邊(父類),運行看左邊(父類)

? ? ? ? ? ?成員方法:編譯看左邊(父類),運行看右邊(子類)? ?動態綁定。

? ? ? ? 靜態成員方法:編譯看左邊(父類),運行看左邊(父類) 靜態和類相關,不算重寫,看左邊

????D:多態的好處:提高了代碼的維護性,提高了代碼的擴展性。? 把類當做參數的時候多態非常好,擴展性強。

10、抽象 abstract

? ? 抽象類特點:

? ? ? ? 抽象類和抽象方法必須用abstract修飾。?

????????抽象類不一定有抽象方法,有抽象方法的類一定是抽象類或者是接口。

?????????抽象類不能實例化,按照多態有子類實例化。

????????抽象類的子類要么是抽象類,要么重寫抽象類中的所有抽象方法。

????????抽象類中成員變量可以是常量也可以是變量。

? ? ? ? 抽象abstract 不能和static 、private、final共存(作用矛盾)

11、接口

接口特點:

? ? ? ? 用關鍵字interface表示: interface 接口名{}

? ? ? ? 類實現接口 :class 類名 implements 接口名{}

? ? ? ? 接口不能實例化,只能用多態的方式實例化

? ? ? ? 接口的子類可以是具體類,要重寫接口中的所有抽象方法。? ?可以是抽象類,但意義不大。

????成員特點:

? ? ? ? 成員變量只能是常量,并且是靜態的公共的。 public static final

? ? ? ? 接口沒有構造方法。 成員方法只能是抽象方法。 public abstract

12、類與類,類與接口,接口與接口

? ? 類與類:繼承關系,只能是單繼承關系,可以多層繼承

? ? 類與接口:實現關系,可以是單實現,可以是多實現,并且可以繼承一個類的同時實現多個接口

? ? 接口與接口:繼承關系,可以單繼承可以多繼承

13、權限修飾符

? ? ? ? ? ? ? ? ? ? ? 本類??? 同一個包下(子類和無關類)?? 不同包下(子類)? 不同包下(無關類)

??????? private? ? ?Y??????

??????? 默認? ? ? ? ?Y? ? ? ? ? ? ? ? ? ? ? ?Y

??????? protected Y? ? ? ? ? ? ? ? ? ? ? ? Y? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Y

??????? public? ? ? ?Y? ? ? ? ? ? ? ? ? ? ? ? ?Y? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Y? ? ? ? ? ? ? ? ? ? ?Y

14、內部類私有

????A:內部類訪問特點

??????? * a:內部類可以直接訪問外部類的成員,包括私有。

??????? * b:外部類要訪問內部類的成員,必須創建對象。

??????? *外部類名.內部類名 對象名 = 外部類對象.內部類對象;

? ? B:成員內部類私有使用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,185評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,656評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,647評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,446評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,951評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,189評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,718評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,800評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,419評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,420評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,755評論 2 371

推薦閱讀更多精彩內容

  • 面向對象三大基本特性是:封裝,繼承,多態 封裝 1.概念:把類的屬性進行封裝,可以隱藏方法的內部實現,僅僅提供調用...
    姜水偉杰閱讀 284評論 1 0
  • Java OOP 什么是面向對象思想? 把一組數據和處理他們的方法組成對象(object),把相同行為的對象歸納為...
    chonglingliu閱讀 790評論 0 1
  • 這幾天事情真的很多,好像有些浮躁,原因是再次進入幣圈,面對不斷漲跌的市場,很不淡定。有些頭暈經醫生測量是低血壓,正...
    城西居士閱讀 195評論 0 0
  • 這篇文章中講述了父親對家庭所擔當起的責任,其實在整個家庭中父母對孩子的愛是無私默默的奉獻的。 共舉了三個例...
    晨楓70閱讀 302評論 1 5