更詳細(xì)Java面試請(qǐng)點(diǎn)擊這里
Java 面向?qū)ο蟊貢?huì)知識(shí)點(diǎn)
Java 的核心是面向?qū)ο缶幊蹋械?Java 程序都是面向?qū)ο蟮?。需要看?Java 的本質(zhì),從復(fù)雜的表象中尋找普遍的規(guī)律,并深刻理解 Java 的核心思想
面向?qū)ο蟮奶攸c(diǎn)總結(jié) 具體細(xì)節(jié)狂戳這里
面向?qū)€程序設(shè)計(jì)方法的優(yōu)點(diǎn)是:可重用性,可擴(kuò)展性,可管理性
- 封裝:隱藏在對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié)僅對(duì)面提供公共的訪問方式。
- 繼承:在一個(gè)類的基礎(chǔ)上定義一個(gè)新類,原有的類叫父類,新生成的類叫子類。
- 多態(tài):事物存在多種體現(xiàn)的形態(tài),就是指一個(gè)引用(類型)在不同情況下的多種狀態(tài)。
類與對(duì)象特性總結(jié)
- 類與對(duì)象的概念:
- 類是具體事物的抽象
- 對(duì)象是該類實(shí)時(shí)存在的個(gè)體
- 類方法的特點(diǎn)
- 匿名對(duì)象:
- 當(dāng)對(duì)象的方法只需使用一次時(shí),這樣寫代碼比較簡(jiǎn)單
- 再則是將匿名對(duì)象作為參數(shù)傳遞
- 構(gòu)造函數(shù)與構(gòu)造代碼塊:
- 構(gòu)造代碼塊是給所有對(duì)象統(tǒng)一初始化的,而構(gòu)造函數(shù)是給對(duì)象初始化的
- 構(gòu)造代碼塊中定義的是共性的初始化內(nèi)容
- 接口
- Object 類
變量的特點(diǎn)總結(jié)
- 成員變量與局部變量:
- 成員變量定義在類中,隨著對(duì)象的建立而建立,存在于對(duì)象的堆內(nèi)存中,都有默認(rèn)的初始化值
- 局部變量只能定義在局部范圍內(nèi),比如函數(shù)內(nèi)、語(yǔ)句內(nèi)
- 實(shí)例變量與類變量:
- 實(shí)例變量隨著實(shí)例的建立而建立且存在于堆內(nèi)存中
- 類變量隨著類的加載而存在于方法區(qū)中
- 靜態(tài)變量:
- static 關(guān)鍵字修飾具體請(qǐng)狂戳
- 變量的生命周期:
- 類變量的時(shí)間最長(zhǎng),隨著類的消失而消失
- 實(shí)例變量隨著對(duì)象的消失而消失
Java 面向?qū)ο笾R(shí)點(diǎn)精華
Java 面向?qū)ο?0個(gè)精華知識(shí)點(diǎn)
- 抽象、封裝、繼承、多態(tài)是面向?qū)ο蟪绦蛟O(shè)計(jì)中的四個(gè)特點(diǎn)
- 面向?qū)ο蟮密浖_發(fā)大體分為:面向?qū)ο蟮姆治觯嫦驅(qū)ο蟮脑O(shè)計(jì),面向?qū)ο蟮膶?shí)現(xiàn)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)方法的優(yōu)點(diǎn)是:可重用性、可擴(kuò)展性、可管理性
- 類的定義:class 前的修飾符分為訪問控制符和非訪問控制符兩大類。訪問控制符包括 public 和 private。非訪問控制符包括 abstract(抽象)和 final(最終)
- final 類是最終類,是不能有子類的類。abstract 和 final 不能同時(shí)修飾一個(gè)類。因?yàn)槌橄箢惐旧頉]有具體對(duì)象,只能派生出子類后創(chuàng)建子類的對(duì)象;而最終類不可能有子類
- 創(chuàng)建對(duì)象的格式:類名 對(duì)象名 = new 構(gòu)造方法(參數(shù)),注意前面是類名后面是構(gòu)造方法;構(gòu)造方法主要是用于類對(duì)象的初始化工作,必須使用 new 運(yùn)算符調(diào)用
- 如果 class 前面由 public 修飾,則默認(rèn)的構(gòu)造方法前面也有 public 修飾
- 類中有 static 修飾符的域或者方法,可用類名或?qū)ο笤L問
- 修飾符的訪問控制符可以有:public 、protected 、private、private protected;非訪問控制符可以是:static、final、volatile(易失域)
- 類變量的最本質(zhì)特點(diǎn)是:他們是類的域,不屬于類的任何一個(gè)類的具體對(duì)象實(shí)例,共同享用
- 局部變量是在方法體類聲明的,只有當(dāng)方法被調(diào)用時(shí)他們才存在,因而只能在本方法內(nèi)使用,不存在訪問控制符,也不能聲明為靜態(tài)變量(static),但可以聲明為 final 變量。局部變量必須初始化,因?yàn)榫植孔兞柯暶髦?,虛擬機(jī)就不會(huì)自動(dòng)給它初始化為默認(rèn)值,局部變量在參與運(yùn)算前必須進(jìn)行賦值
- 修飾方法的訪問控制符可以是:public 、protected 、private、private protected;修飾方法的非訪問控制符可以是:static、final、abstract、native(本地方法)、synchronize(同步方法)
- 用 static 修飾的變量或者方法都為類成員,類成員可以用類名或?qū)嵗{(diào)用,實(shí)例成員只能用實(shí)例名調(diào)用
- 若一個(gè)類中含有抽象方法,則為抽象;如果抽象類的子類不為抽象類,則子類必須實(shí)現(xiàn)父類的抽象方法;抽象方法只有函數(shù)頭的聲明,用分號(hào)老代替方法體,即沒有大括號(hào)
- this 變量用在一個(gè)方法的內(nèi)部,指向當(dāng)前的對(duì)象,當(dāng)前對(duì)象指的是調(diào)用當(dāng)前正在執(zhí)行的方法的那個(gè)對(duì)象;super 變量是直接指向父類的構(gòu)造方法,用來(lái)引用父類中的變量和方法
- 如果要引用一個(gè)包的多個(gè)類,可以用 ※號(hào)代替;使用 ※只能表示本層次的所有類,而不包括子層次下的類。經(jīng)常需要兩條語(yǔ)句來(lái)導(dǎo)入兩個(gè)層次的類:
import java.awt.※
import java.awt.event.※ - 關(guān)于訪問修飾符
- 類中限定為 public 的成員可以被所有的類訪問
- 類中限定為 protected 的成員可以被本身、子類、以及用一個(gè)包下的其他類訪問
- 類中限定為 private protected 修飾的成員可以被這類的本身,也可以被這個(gè)類的子類訪問
- 默認(rèn)的訪問控制符規(guī)定只能被同一個(gè)包中的類訪問引用,不能被其他包的類訪問
- 類中限定為 private 的成員只能被這個(gè)類本身訪問
- 重載方法的參數(shù)必須不同,或者是參數(shù)個(gè)數(shù)不同,或者是參數(shù)類型不同。重載多個(gè)方法必須返回相同的數(shù)據(jù)類型,且在一個(gè)類中。
- 在 Java 中,一個(gè)獲取某一接口定義的功能并不是直接繼承這個(gè)接口的屬性和方法來(lái)實(shí)現(xiàn)的。因?yàn)榻涌谥械膶傩远际浅A?,接口的方法都是沒有方法體的抽象方法,沒有具體定義操作
- 注意之處
- abstract 和 private、static、final、native 不能并列修飾同一個(gè)方法
- abstract 類中不能有 private 修飾的域和方法
- static 方法不能處理非 static 的域