static
具體對象的屬性,稱之為對象屬性,成員屬性,實(shí)例屬性。
具體對象的方法,稱之為對象方法,成員方法,實(shí)例方法。
靜態(tài):static
- 和具體對象無關(guān),只和類相關(guān)的屬性,稱之為靜態(tài)屬性。
- 和具體對象無關(guān),只和類相關(guān)的方法,稱之為靜態(tài)方法。
靜態(tài)屬性和靜態(tài)方法,不用實(shí)例化對象,可直接通過類來使用。
先有類,再有對象。對象也可直接訪問類的靜態(tài)屬性和靜態(tài)方法。文章來源:http://www.zghlxwxcb.cn/news/detail-430376.html
- 成員方法可訪問類的靜態(tài)屬性和靜態(tài)方法,也可訪問成員屬性和其他的成員方法。
- 靜態(tài)方法只能訪問類的靜態(tài)屬性和其他靜態(tài)方法,不能訪問成員屬性和成員方法。
構(gòu)造方法
- 構(gòu)造方法沒有 void 關(guān)鍵字
- 構(gòu)造方法的名稱和類名完全相同。
- 如果類中沒有顯式定義構(gòu)造方法,JVM 會(huì)隱式創(chuàng)建一個(gè)無參的構(gòu)造方法。
執(zhí)行順序: 靜態(tài)代碼塊 -> 成員代碼塊 -> 構(gòu)造方法文章來源地址http://www.zghlxwxcb.cn/news/detail-430376.html
內(nèi)存中數(shù)據(jù)的存儲(chǔ)方式
- 元空間:存儲(chǔ)的是類的結(jié)構(gòu)信息、靜態(tài)屬性、靜態(tài)方法、靜態(tài)代碼塊。
- ??臻g:存儲(chǔ)的是變量。
- 堆空間:存儲(chǔ)的是具體對象的信息。
示例
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)類的信息加載完成時(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)建對象(實(shí)例化類)時(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");
到了這里,關(guān)于static 和構(gòu)造方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!