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
- 變數的分類(臨時(本地)變數、環境變數、全域性變數和系統變數)變數
- Variables in Java 變數Java變數
- java 變數(轉)Java變數
- 淺談Java類中的變數初始化順序Java變數
- java環境變數配置好了,就是無法載入主類Java變數
- 深入理解java:執行緒本地變數 java.lang.ThreadLocal類Java執行緒變數thread
- 成員變數、全域性變數、例項變數、類變數、靜態變數和區域性變數的區別變數
- 探討Java類中成員變數的初始化方式Java變數
- JAVA類中透過Servlet操作JSP中Session變數方法JavaServletJSSession變數
- Python中類變數、成員變數、區域性變數的區別Python變數
- java變數及常量Java變數
- Java 變數型別Java變數型別
- Java 環境變數Java變數
- java常量和變數Java變數
- 【Java】可變引數Java
- Java可變引數Java
- Java環境變數Java變數
- Java 可變引數Java
- Java中建立不可變的類Java
- Java區域性變數與全域性變數Java變數
- java 全域性變數和區域性變數Java變數
- Java 反射修改類的常量值、靜態變數值、屬性值Java反射變數
- Java一行程式碼可宣告多個同類變數Java行程變數
- Java多執行緒(二)之Atomic:原子變數與原子類Java執行緒變數
- 子父類中成員變數變數
- 機器學習--分類變數編碼方法機器學習變數
- CoffeeScript攻略2.4:建立類變數變數
- 筆試題 類中static變數筆試變數
- 類,物件,成員變數和區域性變數,匿名物件物件變數
- [java基礎]之變數Java變數