成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

面向?qū)ο缶幊讨衧tatic和final關(guān)鍵字的應(yīng)用

static修飾成員變量在面向?qū)ο蟮木幊讨?,static關(guān)鍵字被廣泛應(yīng)用于成員變量。首先,static修飾的成員變量不屬于對(duì)象的數(shù)據(jù)結(jié)構(gòu),而是屬于類(lèi)的范疇。這意味著我們可以直接使用類(lèi)名來(lái)引用這個(gè)變量

static修飾成員變量

在面向?qū)ο蟮木幊讨校瑂tatic關(guān)鍵字被廣泛應(yīng)用于成員變量。首先,static修飾的成員變量不屬于對(duì)象的數(shù)據(jù)結(jié)構(gòu),而是屬于類(lèi)的范疇。這意味著我們可以直接使用類(lèi)名來(lái)引用這個(gè)變量,而無(wú)需創(chuàng)建類(lèi)的實(shí)例。無(wú)論該類(lèi)被實(shí)例化多少次,static修飾的成員變量都只有一份內(nèi)存空間。舉例來(lái)說(shuō),對(duì)于以下代碼片段中的Person類(lèi):

```java

public class Person {

private static int count;

public Person() {

(count);

}

public static void main(String args[]) {

Person person1 new Person();

Person person2 new Person();

}

}

```

運(yùn)行結(jié)果會(huì)輸出 `0 1`。這是因?yàn)镴VM在方法區(qū)創(chuàng)建了一個(gè)count對(duì)象和類(lèi)的信息,而這些信息只有一份,每次執(zhí)行`new Person()`時(shí),count都會(huì)自增。

static修飾方法

除了成員變量,static關(guān)鍵字也可以用于方法。當(dāng)方法被調(diào)用時(shí),它會(huì)隱式地傳遞對(duì)象的引用,即`this`。舉例來(lái)說(shuō),當(dāng)調(diào)用`getName()`方法時(shí),實(shí)際上也隱含地傳遞了`person`作為參數(shù),即`this`代表著`person`。另外,static修飾的方法不需要針對(duì)特定對(duì)象操作,其運(yùn)行結(jié)果僅與輸入的參數(shù)相關(guān),因此可以通過(guò)類(lèi)名直接調(diào)用。然而,在static方法中無(wú)法訪問(wèn)非static方法,通常用于提供一些“工具方法”和“工廠方法”,比如`()`、`Math.sqrt()`、`()`等。

static語(yǔ)句塊的應(yīng)用

static語(yǔ)句塊是類(lèi)的代碼塊,在類(lèi)加載時(shí)執(zhí)行且僅執(zhí)行一次,常用于加載靜態(tài)資源??紤]以下Person類(lèi)代碼片段:

```java

public class Person {

static {

("加載靜態(tài)資源");

}

public Person() {

("person構(gòu)造器");

}

public static void main(String args[]) {

Person person new Person();

}

}

```

在運(yùn)行該程序時(shí),先輸出"加載靜態(tài)資源",然后再輸出"person構(gòu)造器"。這是因?yàn)樵诩虞dPerson類(lèi)時(shí),會(huì)先執(zhí)行static語(yǔ)句塊,隨后才創(chuàng)建類(lèi)的實(shí)例。

綜上所述,static和final關(guān)鍵字在面向?qū)ο缶幊讨衅鸬街陵P(guān)重要的作用,能夠簡(jiǎn)化代碼結(jié)構(gòu)、提高代碼的可讀性和性能。熟練掌握它們的用法將有助于開(kāi)發(fā)出更加高效和健壯的Java程序。

標(biāo)簽: