Java 語言可以分成兩種資料型態,
1, 基本資料型態 primitive data type
2, 參考資料型態 reference data type
基本資料型態的話,是
boolean、char、byte、short、int、long、float、double
這 8 種。
而參考資料型態,是『除了那 8 種以外的所有資料型態』,像是:
1, 各式類別(class),含自定義、官方類別、第三方開發者類別等。
2, 陣列 (Array)
3, 介面 (interface)
4, 列舉 (enum)
參考資料型別的實例化方式如下
類別/介面名稱 自定義變數名稱 = new 類別名稱();
```java
public class ExampleVariable5 {
public static void main(String[] args) {
//類別/介面名稱 自定義變數名稱 = new 類別名稱();
StringBuilder sbr = new StringBuilder();
/*
* 陣列的實例化有兩種方式,各會有一些不同,
* 第一種方式必須先宣告位置大小,接著把值寫入
* 第二種則是一開始就把所有需要的值都寫入,宣告完畢也等於位置大小就固定了
*
* 宣告方式一,宣告有十個空間可以放置
* 然後指定索引值位置放入值,未被置入值的位置會是 null
*/
String[] array = new String[10];
array[0] = "abc";
array[1] = "cde";
array[2] = "efg";
/*
* 宣告方式二,一開始就把所有需要的值都寫入,
* 但可用空間就固定是三個了。
*/
String[] arr2 = new String[] { "abc", "cde", "efg" };
System.out.println(arr2[0]); //印出 abc
System.out.println(arr2[1]); //印出 cde
System.out.println(arr2[2]); //印出 efg
/*
* 在實例化 List 或者 Map 時可以發現有角括號的存在,
* 似乎跟我們上面舉的例子不太一樣。
* 但實際上是一樣的寫法。
*/
List<String> list = new ArrayList<String>();
Map<String, String> map = new HashMap<String, String>();
/*
* 像下方範例這樣,若不宣告其內部承載的物件形態,
* 這樣的實例化宣告仍然是可以成立的。
*
* 也因為沒有宣告承載的物件形態,所以變成什麼東西都可以塞進去,
* 但也因為什麼都能放,導致內部物件各種形態混亂,
* 真的要使用這些資料時,也不好確定拿出來的會是什麼樣的物件形態了。
*
* 所以為了方便管理,才會讓物件實例化時就順便宣告承載的類別。
*/
List list2 = new ArrayList();
list2.add("");
list2.add(1);
Map map2 = new HashMap();
map2.put("1", 1);
map2.put(2, "2");
/*
* 最下方有自己定義一個類別 MyTestClass
* 當要實例化這個類別時,也跟上面所敘述的寫法一樣
*
* 類別/介面名稱 自定義變數名稱 = new 類別名稱();
*/
MyTestClass myTest = new MyTestClass();
/*
* 但若這個類別有設定帶參數的建構子,
* 那麼也可以使用建構子傳入參數的方式來完整實例化這個物件。
*/
MyTestClass myTest = new MyTestClass("abc", 123);
}
}
//自定義的類別
class MyTestClass {
private String str;
private int intval;
//無參數建構子
public MyTestClass() {}
//有參數建構子
public MyTestClass(String str, String intval) {
this.str = str;
this.intval = intval;
}
}
```