面向對象

1、構造方法
1. 構造方法概述和做用
a. 給對象的數據(屬性)進行初始化
2. 構造方法格式特色
a. 方法名與類名相同(大小也要與類名一致)
b. 沒有返回值類型,連void都沒有
c. 沒有具體的返回值return;
3. 構造方法重載
a. 方法名相同,與返回值類型無關(構造方法沒有返回值),只看參數列表
4. 構造方法注意事項
a. 若是咱們沒有給出構造方法,系統將自動提供一個無參的構造方法。
b. 若是咱們給出了構造方法,系統將再也不提供默認的無參構造方法。
※ 注意:這個時候咱們若是還想使用無參的構造方法,就必須本身定義,建議永遠要本身給出無參的構造方法。工具

2、給成員變量賦值的兩種方式的區別
1. 兩種方式:
a. 使用有參構造方法賦值。eg:Person p1=new Person("張三",23);
b. 使用setXxx方法賦值。eg: p1.setName("張天翼");
2. 區別:
a. 構造方法:通常用來給對象中的屬性進行初始化
b. setXxx()方法:修改屬性的值。
※ 實際使用中,setXxx()的方式更靈活一點。
3、建立對象的步驟:
Student s=new Student();
a. Student.class加載進內存
b. 聲明一個Student類型引用s
c. 在堆內存建立對象
d. 給對象中屬性默認初始化值
e. 屬性進行顯示初始化
f. 構造方法進棧,對對象中的屬性賦值,構造方法彈棧
g.將對象的地址賦值給s
.this

4、static關鍵字
1. static關鍵字的特色
a. 隨着類的加載而加載
b. 優先於對象存在
c. 被類的多有對象共享
i. eg:咱們班級的學生共用一個班級號
ii. 何時使用static
1) 若是某成員變量是被全部對象共享的,那麼它就應該被定義爲靜態的。
d. 能夠經過類名調用
i. 其實它自己也能夠經過對象調用
ii. 推薦使用類名調用
iii. 靜態修飾的內容通常咱們稱其爲:與類相關的,類成員
2. static的注意事項
a. 在靜態方法中是沒有this關鍵字的
i. 如何理解:
1) 靜態是隨着類的加載而加載,this是隨着對象的建立二存在的。
2) 靜態比對象先存在。
b. 費靜態方法只能訪問靜態的成員變量和靜態的成員方法:
i. 靜態方法:
1) 成員變量:只能訪問靜態變量
2) 成員方法:只能訪問靜態成員方法
ii. 費靜態方法:
1) 成員變量:能夠是靜態的,也能夠是費靜態的。
2) 成員方法:能夠是靜態的成員方法,也能夠是費靜態的成員方法。
iii. 簡單記:
1) 靜態只能訪問靜態。對象

5、靜態變量和成員變量的區別:
1. 所屬不一樣
a. 靜態變量屬於類,因此也稱爲類變量
b. 成員變量屬於對象,因此也稱爲實例變量(對象變量)
2. 內存中位置不一樣
a. 靜態變量存儲於方法區的靜態區
b. 成員變量存儲於堆內存。
3. 內存出現的時間不一樣:
a. 靜態變量隨着類的加載而加載,隨着類的消失而消失。
b. 成員變量隨着對象的建立而存在,隨着對象的消失而消失。
4. 調用不一樣:
a. 靜態變量能夠經過類名調用,也能夠經過對象調用。
b. 成員變量只能經過對象名調用。blog

6、工具類中使用static
若是一個方法中全部方法都是靜態的,那麼就須要將該類的構造方法設置爲私有的,禁止該類建立對象。內存

相關文章
相關標籤/搜索