基本概念
java類中的成員(變量和方法)分為兩類:
- 實(shí)例成員振定,必須通過(guò)對(duì)象實(shí)例去訪問(wèn)必怜,對(duì)于實(shí)例變量,每個(gè)對(duì)象都有獨(dú)立的一份后频,擁有不同的值梳庆。
- 靜態(tài)成員,歸屬類的卑惜,所有的對(duì)象共享一份膏执。不需要通過(guò)對(duì)象實(shí)例去訪問(wèn),直接通過(guò)類名去訪問(wèn)露久。
靜態(tài)成員
通過(guò)static修飾符更米,來(lái)定義靜態(tài)成員。
- 靜態(tài)變量:
static 關(guān)鍵字用來(lái)聲明獨(dú)立于對(duì)象的靜態(tài)變量毫痕,無(wú)論一個(gè)類實(shí)例化多少對(duì)象征峦,它的靜態(tài)變量只有一份拷貝。 靜態(tài)變量也被稱為類變量消请。局部變量不能被聲明為 static 變量栏笆。 - 靜態(tài)方法:
static 關(guān)鍵字用來(lái)聲明獨(dú)立于對(duì)象的靜態(tài)方法。靜態(tài)方法不能使用類的非靜態(tài)變量臊泰。靜態(tài)方法從參數(shù)列表得到數(shù)據(jù)蛉加,然后計(jì)算這些數(shù)據(jù)。
對(duì)類變量和方法的訪問(wèn)可以直接使用 classname.variablename 和 classname.methodname 的方式訪問(wèn)。
如下例所示针饥,static修飾符用來(lái)創(chuàng)建類方法和類變量厂抽。
public class InstanceCounter {
private static int numInstances = 0;
protected static int getCount() {
return numInstances;
}
private static void addInstance() {
numInstances++;
}
InstanceCounter() {
InstanceCounter.addInstance();
}
public static void main(String[] arguments) {
System.out.println("Starting with " +
InstanceCounter.getCount() + " instances");
for (int i = 0; i < 500; ++i){
new InstanceCounter();
}
System.out.println("Created " +
InstanceCounter.getCount() + " instances");
}
}
以上實(shí)例運(yùn)行編輯結(jié)果如下:
Started with 0 instances
Created 500 instances