Re: [問題] 初學者的問題
※ 引述《baelrog (魔)》之銘言:
: ※ 引述《gauyew ([瑤]拚了~)》之銘言:
: : ^^^^^^^^^^^^^^^^^^^^^
: : 陣列宣告只是分配指標罷了,並未實體化,
: : 所以,在陣列宣告後,要用建構元產生實體
: : 有沒有 new 拉? ....
: 和int test = new int;
: 這兩種宣告法一個有new一個沒有new
: 但是差別到底在哪裡
: 而且就實際使用上來看
: 兩種得到的結果好像差不多
: 因為在我原本的小畫家裡沒有用new的int參數一樣可以用
: 陣列宣告後不會產生實體
: 那int宣告之後就會@@?
: 整體的結構不是很清楚
int 是 primitive variable,不用去 new 他
int[] 是陣列,陣列是物件的一種,而物件的產生要用 new,屬於 reference variable
int a = 5; // a就是5
java裡面小寫的都是 primitive variable,變數直接代表 值
其他都是 reference variable,變數代表物件的參考(就像遙控器),你可以透過
參考(遙控器)去控制物件,但遙控器並不是物件本身。
而 int a = new int[3] ;
// a 是一個陣列,所以要用 new 產生一個 reference。(陳列是物件)
// 而陣列中的元素裝的是 int (primitive variable)
a[0]=1; //a陣列的第0個元素是primitive var,所以不用 new
......
特例:
String str = "abc" ;
他也不用 new 就可以用,但 String 卻是個物件,why ?
因為設計java的人讓我們偷懶可以少打點字,所以那一行在 compile 的時候會被自動
轉換成
String str = new String("abc");
有錯請指正^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.148.68
討論串 (同標題文章)