java類變數
java類變數
在java中建立一個類,類中總會有一個main函式
public static void main(String[] args)
它跟類中其他成員函式不一樣的地方是多了static,那
static是什麼呢?
看下面一段程式碼
public class Main {
private static int dir=1;
public static void main(String[] args) {
Main m1=new Main();
Main m2=new Main();
System.out.println(m1.dir);
System.out.println(m2.dir);
}
}
在類中定義了一個用static修飾的屬性變數,在主函式中建立兩個物件,分別輸出dir的值
輸出:
1
1
看起來好像m1和m2中分別存在獨立的成員變數dir,那讓我們修改m1.dir的值再次輸出。
public class Main {
private static int dir=1;
public static void main(String[] args) {
Main m1=new Main();
Main m2=new Main();
System.out.println(m1.dir);
System.out.println(m2.dir);
m1.dir=2;
System.out.println(m1.dir);
System.out.println(m2.dir);
}
}
輸出:
1
1
2
2
可以看到明明只是修改了m1.dir的值,但是m2.dir的值也隨之變化,就好像是通過一個物件修改了static修飾的變數那其他的物件也隨之改變。其實這個dir並不屬於任何物件,它屬於這個類,可以說是類自帶的一個變數,只有一個,可以通過物件名.變數名訪問,也可以通過類名.變數名訪問,無論訪問的方式是什麼,所訪問的變數都是那一個,這種被static所修飾的變數就叫類變數,被static所修飾的函式叫類函式。
System.out.println(Main.dir); //通過類名訪問
類變數和類函式不屬於任何物件,它就相當於這個類自帶的,需要注意的是若類函式只能呼叫類函式和訪問類變數,若想訪問非類函式(不是static修飾的函式)和非類變數只能用物件的方式取訪問。
相關文章
- Java 變數種類Java變數
- Java - 24 類變數和類方法Java變數
- Java訪問類變數Java變數
- Java中變數之區域性變數、本類成員變數、父類成員變數的訪問方法Java變數
- Java 的可變引數與 Collections 類Java
- Java中的類(好似結構體) 物件(好似指標變數)變數 方法Java結構體物件指標變數
- java變數Java變數
- 十四、類變數和實列變數(python)變數Python
- 深入理解java:執行緒本地變數 java.lang.ThreadLocal類Java執行緒變數thread
- java環境變數配置好了,就是無法載入主類Java變數
- 淺談Java類中的變數初始化順序Java變數
- 變數的分類(臨時(本地)變數、環境變數、全域性變數和系統變數)變數
- 成員變數、全域性變數、例項變數、類變數、靜態變數和區域性變數的區別變數
- Python中類變數、成員變數、區域性變數的區別Python變數
- Java 變數型別Java變數型別
- Java 環境變數Java變數
- 【Java】可變引數Java
- java常量和變數Java變數
- java變數及常量Java變數
- Java區域性變數與全域性變數Java變數
- java 全域性變數和區域性變數Java變數
- Java 反射修改類的常量值、靜態變數值、屬性值Java反射變數
- Java環境變數新增Java變數
- [java基礎]之變數Java變數
- 四:java常量和變數Java變數
- 子父類中成員變數變數
- 類,物件,成員變數和區域性變數,匿名物件物件變數
- Python - 物件導向程式設計 - 類變數、例項變數/類屬性、例項屬性Python物件程式設計變數
- 【Java貓說】例項變數與區域性變數Java變數
- java語言邏輯類、引數類和字元類Java字元
- java 環境變數的配置Java變數
- linux java環境變數配置LinuxJava變數
- java中變數的作用域Java變數
- application.properties配置變數 javaAPP變數Java
- Java方法05:可變引數Java
- Java - 可變引數的使用Java
- java如何操作成員變數?Java變數
- 【重學Java】可變引數Java