網(wǎng)站制作網(wǎng)站建設(shè)需要多少錢(qián)網(wǎng)站銷(xiāo)售怎么推廣
文章目錄
- static
- 構(gòu)造方法
- 內(nèi)存中數(shù)據(jù)的存儲(chǔ)方式
- 示例
static
具體對(duì)象的屬性,稱(chēng)之為對(duì)象屬性,成員屬性,實(shí)例屬性。
具體對(duì)象的方法,稱(chēng)之為對(duì)象方法,成員方法,實(shí)例方法。
靜態(tài):static
- 和具體對(duì)象無(wú)關(guān),只和類(lèi)相關(guān)的屬性,稱(chēng)之為靜態(tài)屬性。
- 和具體對(duì)象無(wú)關(guān),只和類(lèi)相關(guān)的方法,稱(chēng)之為靜態(tài)方法。
靜態(tài)屬性和靜態(tài)方法,不用實(shí)例化對(duì)象,可直接通過(guò)類(lèi)來(lái)使用。
先有類(lèi),再有對(duì)象。對(duì)象也可直接訪(fǎng)問(wèn)類(lèi)的靜態(tài)屬性和靜態(tài)方法。
- 成員方法可訪(fǎng)問(wèn)類(lèi)的靜態(tài)屬性和靜態(tài)方法,也可訪(fǎng)問(wèn)成員屬性和其他的成員方法。
- 靜態(tài)方法只能訪(fǎng)問(wèn)類(lèi)的靜態(tài)屬性和其他靜態(tài)方法,不能訪(fǎng)問(wèn)成員屬性和成員方法。
構(gòu)造方法
- 構(gòu)造方法沒(méi)有 void 關(guān)鍵字
- 構(gòu)造方法的名稱(chēng)和類(lèi)名完全相同。
- 如果類(lèi)中沒(méi)有顯式定義構(gòu)造方法,JVM 會(huì)隱式創(chuàng)建一個(gè)無(wú)參的構(gòu)造方法。
執(zhí)行順序: 靜態(tài)代碼塊 -> 成員代碼塊 -> 構(gòu)造方法
內(nèi)存中數(shù)據(jù)的存儲(chǔ)方式
- 元空間:存儲(chǔ)的是類(lèi)的結(jié)構(gòu)信息、靜態(tài)屬性、靜態(tài)方法、靜態(tài)代碼塊。
- 棧空間:存儲(chǔ)的是變量。
- 堆空間:存儲(chǔ)的是具體對(duì)象的信息。
示例
class People {String name;String nationality = "china";
}class Bird {// 成員屬性String name;// 構(gòu)造方法// 常用于成員屬性的初始化操作Bird(String a) {name = a;System.out.println("構(gòu)造方法 " + name);}// 成員方法void test() {System.out.println("成員方法 " + name);}// 靜態(tài)屬性static String type = "bird";// 靜態(tài)方法static void fly() {System.out.println("bird can fly");}// 靜態(tài)代碼塊:當(dāng)類(lèi)的信息加載完成時(shí),會(huì)自動(dòng)優(yōu)先調(diào)用靜態(tài)代碼塊。// 靜態(tài)代碼塊可有多個(gè),依次按順序執(zhí)行// 靜態(tài)代碼塊常用于靜態(tài)屬性的初始化操作static {System.out.println("靜態(tài)代碼塊");}// 成員代碼塊:當(dāng)創(chuàng)建對(duì)象(實(shí)例化類(lèi))時(shí),成員代碼塊會(huì)自動(dòng)執(zhí)行。// 成員代碼塊在靜態(tài)代碼塊之后,構(gòu)造方法之前執(zhí)行。{System.out.println("成員代碼塊");}
}
People a = new People();
a.name = "jack";
System.out.println("name:" + a.name + " nationality:" + a.nationality);// System.out.println(Bird.type);
// Bird.fly();
Bird b = new Bird("b1");