Java 是完全面相對象的語言,這樣的好處就是能把現實世界中的事物都抽象成對象.這也符合人類的思維習慣.有利於對複雜程式的編寫.同時也說明Java中的任何成員都不能離開對象單獨存在.
物件導向的核心機制就是封裝,繼承,多態.
一:類與對象
類是描述一個事物的抽象概念,它描述了事物的靜態和動態屬性.
對象就是類的一個具體執行個體.
二:類的五種關係
關聯,(has a) 繼承(is a) 彙總(is one of) 組合(is a part of) 依賴(use a )
三:類的記憶體分析
Java中除了基礎資料型別 (Elementary Data Type)以外,都是參考型別,其中對象就是通過引用對其操作的.
類是靜態概念,對象是通過new出來的,位於堆(heap)中.類的每個成員變數再不同的對象中有不同的值(靜態除外).方法只有一份,執行時才佔用記憶體.
四:建構函式
使用new+建構函式建立對象.無建構函式的預設為:類名(){}
子類必須重寫父類的建構函式.子類繼承父類後預設繼承父類的建構函式,即:子類存在隱含方法:super(),如果子類重寫建構函式則子類也隱含調用super()。
子類可以在自己的構造方法中使用super(參數列表),調用基類的構造方法
使用this(參數列表)調用本類以外的構造方法,如果調用super,必須在構造方法的第一行寫
無顯式聲明的,預設調用基類無參數構造方法.
五:方法重載
類中可以定義方法名稱相同,參數個數不同,或者參數類型不同的方法.(注意傳回值不同不可以)
六:static靜態成員
static成員在第一次使用時初始化,對於該類的對象來說只存在一份.且存在在記憶體的data segment中
七:包(package)
解決了多項目中類名衝突問題
聲明包: 源檔案第一句中:package pk1.pk2.pk3… 其中.代表檔案目錄
使用包:importpk1.pk2.pk3…
注意class檔案的最上層檔案位於環境變數的:classpath下
JDK提供了大量的包