1.對象:在一個確定問題領域的抽象
屬性:隱藏,封裝,繼承,多態
封裝:指的是將對象的狀態信息(屬性)和行為(方法)捆綁為一個邏輯單元的機制。
隱藏:對對象的方法和屬性進行一個保護,外部程序不能直接訪問。
繼承:不能對父類的私有屬性和方法進行繼承,而且只支持單繼承,但是可以多實現
2.抽象類不能創建對象
3.子類在創建對象時,會調用父類的構造方法(子類的構造方法裡,通過父類去查看構造方法是怎樣定義的),但是不會創建父類對象。
4.構造方法(編譯器會決定調用哪個構造方法):構造方法最好顯式的寫上,便於程序維護。
(1)語法:
①名字需要和類名一樣
②構造方法不能有返回值的概念
(2)作用:
給堆內存中所指定對象的屬性進行初始化
(3)個數:
至少一個
編譯器決定調用哪個構造方法,並根據參數列表來決定使用哪個構造方法
(4)如果在類中沒有自定義構造方法,則會使用一個默認的構造方法,
但是如果只要定義了一個構造方法,則沒有了默認的構造方法。
(5). 構造方法的權限可以私有化
(6) 構造方法是由虛擬機調用
5.實體類一般是沒有main方法的,測試類中一般放主方法。
在測試類中,在測試類中訪問實體類中屬性方法,要看實體類的屬性,方法權限。
6.包的聲明:將類的字節碼放在包對應的目錄結構中。
打包編譯:javac -d . name.java
包導入:找到類
7.引用類型的在堆中默認是開辟4個字節空間,默認初始化是null
8.當創建一個對象時,會在堆內存空間中開辟屬性空間,方法空間,引用類型的空間內存大小都是4個字節,而其他基本類型的內存依據數據類型來劃分空間大小。
9.內存圖分析: