欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java靜態(tài)和非靜態(tài)變量

Java中,變量分為靜態(tài)變量和非靜態(tài)變量。它們不僅聲明方式不同,而且在使用上也有一些差別。

首先讓我們來(lái)看看靜態(tài)變量,也叫做類變量。靜態(tài)變量定義在類中,但不在方法中,它在整個(gè)程序執(zhí)行期間只存在一份。靜態(tài)變量可以被靜態(tài)方法訪問(wèn),也可以通過(guò)類名直接訪問(wèn)。

public class StaticDemo {
static int count = 0; // 靜態(tài)變量
public StaticDemo() {
count++; // 每次創(chuàng)建對(duì)象時(shí),計(jì)數(shù)器加1
}
public static void main(String[] args) {
StaticDemo s1 = new StaticDemo();
StaticDemo s2 = new StaticDemo();
System.out.println(StaticDemo.count); // 2
System.out.println(s1.count); // 2
System.out.println(s2.count); // 2
}
}

從上面的例子可以看出,count變量是靜態(tài)變量,每次創(chuàng)建對(duì)象時(shí)都會(huì)自增1,因此最后輸出的count值為2,而s1和s2的count值也都是2。這就是靜態(tài)變量的特點(diǎn),它在整個(gè)程序執(zhí)行期間只存在一份。

下面來(lái)看一下非靜態(tài)變量,也叫做實(shí)例變量。非靜態(tài)變量是定義在類中,但在方法中和靜態(tài)變量一樣,非靜態(tài)變量可以被實(shí)例方法訪問(wèn),而且每創(chuàng)建一個(gè)對(duì)象就會(huì)有一個(gè)新的拷貝。

public class InstanceDemo {
int count = 0; // 實(shí)例變量
public InstanceDemo() {
count++; // 每次創(chuàng)建對(duì)象時(shí),計(jì)數(shù)器加1
}
public static void main(String[] args) {
InstanceDemo s1 = new InstanceDemo();
InstanceDemo s2 = new InstanceDemo();
System.out.println(s1.count); // 1
System.out.println(s2.count); // 1
}
}

從上面的例子可以看出,每次創(chuàng)建對(duì)象時(shí),實(shí)例變量的值都會(huì)自增1,而s1和s2實(shí)例變量的值是分別獨(dú)立的,所以最終輸出的值是1.

總體來(lái)說(shuō),靜態(tài)變量是與類關(guān)聯(lián)的變量,而非靜態(tài)變量是與實(shí)例關(guān)聯(lián)的變量。在使用上,靜態(tài)變量可以通過(guò)類名直接訪問(wèn),而非靜態(tài)變量必須先生成一個(gè)實(shí)例對(duì)象,才能通過(guò)實(shí)例訪問(wèn)它,這就是兩者的最大差別。