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; } } ```