Java面向對象學習筆記(一)

1、 類、對象、方法和變量
  1. 類是一批對象的抽象,對象是具體存在的實體。能夠把類當作一種抽象的數據類型,使用類來定義的變量成爲引用型變量。
  2. 類中包含的三種成員:構造器,屬性和方法;各成員之間的定義順序沒有任何影響,各成員之間能夠相互調用;構造器是一個類建立對象的根本途徑,若是在Java中一個類沒有定義,則系統會提供一個默認的無參數的構造器。
  3. 使用new關鍵字調用類的構造器能夠建立該類的對象。類裏定義的方法和屬性均可以經過類或者對象來調用。
  4. 引用型變量裏存放的僅僅是一個引用,它指向實際的對象。引用變量存放在棧中,真正的對象則存放在堆中。Java中的引用至關於C語言中的指針。
  5. this關鍵字是一個對象的默認引用,它老是指向調用該方法的對象。出如今構造器中,引用該構造器執行初始化的對象;出如今普通方法中,指向調用該方法的對象。
  this能夠表明任何對象,且具備不肯定性,但它的類型是肯定的,它所表明的對象只能是當前類,只有當this所出現的方法被調用時,它所表明的對象纔會被肯定下來:誰在調用這個方法,this就表明誰。
  靜態方法中不能使用this關鍵字。
  6. 方法不能獨立存在,全部的方法都必須在類中定義。使用static聲明的方法屬於類,不然屬於對象。執行方法必須使用類或者對象進行調用。
  7. 方法的參數傳遞方式只有值傳遞一種,就是講實際參數值的副本傳入方法內,而參數自己不會受到影響。對於引用類型參數一樣採用的值傳遞。
  8. 同一個類中包含了多個方法名相同但形參列表不一樣的方法稱爲方法重載。
  9. 構造器是用於建立類對象並進行初始化的特殊方法,能夠在其中進行顯式初始化(系統會默認初始化)。 可是對象並不是徹底由構造器負責建立,當系統開始執行構造器以前,系統已經建立了一個對象,當構造器的執行體執行結束以後,這個對象會做爲構造器的返回值被返回並賦給引用類型的變量。
  10. 構造器和普通方法同樣能夠重載。當一個構造器須要包含另外一個構造器時,可使用this([形參列表])來調用另外一個重載構造器。
  11. Java中變量分爲成員變量和局部變量。成員變量又分爲類變量和實例變量,分別屬於類和對象,與其生命週期相同。局部變量分爲形參,方法局部變量和代碼塊局部變量。局部變量除了形參外,其餘都須要顯式初始化。另外,同名的局部變量會覆蓋成員變量,可使用this關鍵字避免衝突。ide

2、 封裝
  1. 封裝是將對象的狀態隱藏在對象內部,不容許外部程序直接訪問對象內部信息,而是經過該類所提供的方法來實現對內部信息的操做和訪問。須要考慮到:一是將對象的屬性和實現細節隱藏起來,不容許外部直接訪問;二是把方法暴露出來,讓方法來操做或訪問這些屬性。即遵循:把該隱藏的隱藏起來,把該暴露的暴露出來。
  2. 封裝須要經過訪問控制符來實現。this

3、 繼承
  1. 繼承是一種通常和特殊的關係。子類經過繼承,能夠得到父類的所有屬性和方法。但須要注意的是子類不能得到父類的構造器。
  2. 大部分時候,子類老是以父類爲基礎,額外增長新的屬性和方法。同時,也能夠重寫(覆蓋)父類方法。方法的重寫須要方法名,形參列表相同,子類方法的返回值和拋出的已成類型須要小或等於父類方法,子類方法的訪問權限須要大於父類方法。另外,覆蓋與被覆蓋的兩個方法類型(類方法仍是實例方法)須一致。被覆蓋的父類方法能夠在子類中經過super(實例方法)或類型(類方法)來調用。
  3. Java程序建立某個類的對象時,系統會隱式建立該類父類的對象。Super指向父類對象。另外,因爲子類不會得到父類的構造器,使用super([形參列表])來調用父類的構造器。spa

4、 多態
  1. 引用變量的編譯類型和執行類型不一致的狀況下,執行該引用類型的方法其實是執行在子類中被覆蓋的方法。而對於屬性則沒有這種性質。
  2. Java容許把一個子類對象賦給賦給一個父類引用變量和無須進行任何類型轉換。
  3. 使用instanceof運算符用於判斷是否能夠進行向上轉型。
 指針

相關文章
相關標籤/搜索