Java ——變量類型
阿新 • • 發佈:2019-05-12
cin pac pub 訪問類 system 相同 () 全局變量 var
變量聲明
int a, b, c; // 聲明三個int型整數:a、 b、c int d = 3, e = 4, f = 5; // 聲明三個整數並賦予初值 byte z = 22; // 聲明並初始化 z String s = "runoob"; // 聲明並初始化字符串 s double pi = 3.14159; // 聲明了雙精度浮點型變量 pi char x = ‘x‘; // 聲明變量 x 的值是字符 ‘x‘。
Java語言支持的變量類型有:
- 類變量:獨立於方法之外的變量,用 static 修飾。
- 實例變量:獨立於方法之外的變量,不過沒有 static 修飾。
- 局部變量:類的方法中的變量。
public class Variable{ static int allClicks=0; // 類變量 String str="hello world"; // 實例變量 public void method(){ int i =0; // 局部變量 } }
舉例:
package hello; //首先要知道變量應該是賦值以後才能使用的,但是有些不必人為賦值就有默認初始值,但是有些要人為定義初始值//所以有些直接使用的並不是沒有賦值,而是系統自定義了初始值,所以不會報錯 public class Variable { public String instance = "實例變量"; public static String variable = "靜態變量"; //靜態變量的定義方式 public static String CONST = "靜態常量"; //靜態常量的定義方式 public static void main(String[] args) { String local = "局部變量"; //類似這個就是局部變量,不可用訪問修飾符修飾,沒有默認初始值System.out.println(local); //局部變量就是在方法或語句塊中的變量 Global global = new Global(); //類似這個就是實例變量,也稱全局變量 System.out.println(global.instance); //實例變量就必須先把類new一個出來才能使用,因為他是在類中,方法外的 System.out.println(variable); //來瞅瞅靜態變量,也叫類變量,靜態變量的訪問方式1(在自己類的時候) System.out.println(Global.variable); //靜態變量的訪問方法2(不在自己類的時候) } } class Global{ public String instance = "實例變量"; //實例變量在一個類的裏面,語句塊的外面 public static String variable = "靜態變量"; Global(){ //在類的內部使用自己的實例變量:要麽老老實實new一個出來,就像上面那個 //第二種方法就是在函數裏面使用實例變量,註意,如果方法是靜態方法參照方法1 System.out.println(instance); System.out.println(variable); } public void Instance() { System.out.println(instance); //靜態變量訪問方法1(在自己類的時候),靜態常量和靜態變量訪問相同 System.out.println(Variable.CONST); } }
類的靜態數據成員值被所有對象共享,任何對象都可以訪問類的靜態數據成員。但是他們使用的是同一個數據,操作的是同一塊內存,無論哪個對象修改了它,對其他對象來說,他已經變了
類變量可在類中直接使用,實例變量需實例化後才能使用。
public class StaticTest { private static int staticInt = 2; private int random = 2; public static void main(String[] args) { System.out.println(staticInt); StaticTest test = new StaticTest(); System.out.println(test.random); } }
public class StaticTest { private static int staticInt = 2; private int random = 2; public StaticTest() { staticInt++; random++; System.out.println("staticInt = "+staticInt+" random = "+random); } public static void main(String[] args) { StaticTest test = new StaticTest(); StaticTest test2 = new StaticTest(); } }
結果:
staticInt = 3 random = 3
staticInt = 4 random = 3
public class StaticTest { private static int staticInt = 2; private int random = 2; public StaticTest() { staticInt++; random++; } public static void main(String[] args) { System.out.println("類變量與對象變量的值變化"); StaticTest test = new StaticTest(); System.out.println(" 實例1:staticInt:" + test.staticInt + "----random:" + test.random); StaticTest test2 = new StaticTest(); System.out.println(" 實例2:staticInt:" + test.staticInt + "----random:" + test.random); System.out.println("靜態變量賦值"); System.out.println(" 靜態語句塊起作用:" + A.staticA); A a = new A(); System.out.println(" 構造器起作用:" + a.staticA); a.toChange(); System.out.println(" 靜態方法1起作用:" + A.staticA); a.toChange2(); System.out.println(" 靜態方法2起作用:" + A.staticA); System.out.println("常量賦值"); System.out.println(" 靜態語句賦值:" + B.staticB); } } class A { public static String staticA ="A" ; //靜態語句塊修改值 static{ staticA ="A1"; } //構造器修改值 public A (){ staticA ="A2"; } //靜態方法起作用 public static void toChange(){ staticA ="A3"; } public static void toChange2(){ staticA ="A4"; } } class B { public static final String staticB ; // 聲明與賦值分離 static{ staticB ="B"; } }
Java ——變量類型