1. 程式人生 > >陣列的建立和初始化

陣列的建立和初始化

1、為什麼在面向物件中介紹陣列呢?因為陣列也是一個物件


2、宣告陣列的時候
(1)推薦使用 char []a

陣列元素型別  []  陣列變數名;

(2)在java中,生成陣列的時候,是動態分配記憶體的,宣告的時候不能指定陣列大小。

在這裡插入圖片描述


3、陣列的建立和初始化
如果已經new之後,沒有賦初值的話,整形陣列自動賦初值為0

在這裡插入圖片描述


4、例項1:
第一句話執行完之後,棧中的s指向堆中的一個物件,這個物件有兩個元素,每一個元素都是Student型別的引用,而不是Student型別的物件,這個引用當前沒有賦初值,所以預設初始化為null ,如果是類型別的陣列的話,動態初始化的時候,在陣列每一個位置上生成的是一個該類型別引用


第二句話是,在堆中生成一個新的學生物件出來,賦值給s[0],這個時候s[0]就有值了,指的是這個物件的邏輯地址。

在這裡插入圖片描述


5、陣列初始化

初始化的時候有兩種方式,分別為動態初始化和靜態初始化

在這裡插入圖片描述

在這裡插入圖片描述


6、為賦初值的時候,如果未賦初值的話,會對引用進行預設初始化,如果為賦初值就呼叫length方法的話,會報錯,因為空引用沒有指向的物件,自然就沒有改方法,所以,就會報錯。

(1)使用length的時候,如果沒有括號的話,也就是str.length;這個是一個屬性,是陣列的屬性。如果有括號的話,也就是str.length();是字串的方法。

在這裡插入圖片描述


7、陣列的說明

在這裡插入圖片描述


8、

在這裡插入圖片描述

本來是應該什麼也不輸出的,但是,如果在命令列中輸入 java 類名 字串 這樣的話

args[0]=I args[1]=am args[2]=a args[3]=Chinese

在這裡插入圖片描述


9、陣列大小

在這裡插入圖片描述


10、與c++中陣列的區別

在這裡插入圖片描述