在 Java 中初始化多個變數
Rupam Yadav
2023年1月30日
2020年12月19日
在本文中,我們將介紹在 Java 中,當我們想要初始化多個具有相同值的變數時需要遵循的步驟。我們將討論為什麼我們不能在宣告時初始化所有具有相同值的變數。
在 Java 中初始化多個具有相同值的字串變數
在下面的例子 1 中,我們宣告瞭 String
型別的變數 one
、two
和 three
,然後我們用相同的值初始化這三個變數。我們是通過鏈式賦值來完成的,這意味著我們將最左邊的變數的值賦給賦值操作符右邊的所有變數。
- 例子 1
package com.company;
public class Main {
public static void main(String[] args) {
String one, two, three;
one = two = three = "All three variables will be initialized with this string";
System.out.println(one);
System.out.println(two);
System.out.println(three);
}
}
輸出:
All three variables will be initialized with this string
All three variables will be initialized with this string
All three variables will be initialized with this string
如果我們的要求是在宣告過程中初始化變數,那麼我們可以像下面那樣使用鏈式賦值。但是它降低了程式的可讀性,因為可能有多個開發人員在同一個專案中工作。
- 例子 2
package com.company;
public class Main {
public static void main(String[] args) {
String one, two, three = two = one = "All three variables will be initialized with this string";
System.out.println(one);
System.out.println(two);
System.out.println(three);
}
}
輸出:
All three variables will be initialized with this string
All three variables will be initialized with this string
All three variables will be initialized with this string
在 Java 中用同一個類初始化多個物件
我們看到,我們可以使用鏈式賦值技術在所有三個 String
變數中儲存相同的值。但是,當我們想把同一個類物件的引用儲存在多個變數中時,我們是否也可以這樣做呢?讓我們來看看。
當我們使用 new
關鍵字用類建構函式初始化一個變數時,這個變數被稱為 object
,它指向類。我們可以使用鏈式賦值來建立同一個類的多個物件,但它將指向同一個引用,這意味著如果我們改變了 firstObj
的值,secondObj
也會反映出同樣的變化。
我們可以參考下面的例子,在這個例子中,三個物件-firstObj
、secondObj
和 thirdObj
被分配在一起,但 fourthObj
被分開分配。輸出顯示了其中的差異。
package com.company;
public class Main {
public static void main(String[] args) {
SecondClass firstObj, secondObj, thirdObj;
firstObj = secondObj = thirdObj = new SecondClass();
firstObj.aVar = "First Object";
secondObj.aVar = "Second Object";
SecondClass fourthObj = new SecondClass();
fourthObj.aVar = "Fourth Object";
System.out.println(firstObj.aVar);
System.out.println(secondObj.aVar);
System.out.println(thirdObj.aVar);
System.out.println(fourthObj.aVar);
}
}
class SecondClass{
String aVar;
}
輸出:
Second Object
Second Object
Second Object
Fourth Object
Author: Rupam Yadav
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn