Re: [問題] 對java的一些疑問...

看板java作者 (^^)時間16年前 (2010/02/28 23:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/12 (看更多)
※ 引述《WPC001 (突然覺得自己是孤獨的...)》之銘言: : 最近因為要接手弄一些java的東西, 所以開始看了java語言的前幾章 : 1. Java所有內建的型別都是物件? : (包含int / double / string / array 以及自訂的class產生的物件) : --> a. 如果不是, 那每個內建型別卻可以用Object類別表示, 十分不合理 : 而且也都固定支援ToString或是一些"方法", 這是物件才有的行為 : 所以個人認為 : b. 如果是, 那繼續看問題2 其實講「內建型別」太籠統了, 基本資料型態只有包括 int/long/short/byte/double/float/boolean/char 等。 String/Array/自訂類別已經不算是基本資料型態了。 除基本資料型態以外的資料都是以物件形式構成。 而每一個基本資料型態有一個對應的包裝物件(Wrapper)。 但是基本資料型態並不是物件,他也不支援任何方法。(operator不算) int k=10; k是一個基本資料型態。 Integer k=Integer.valueOf(10); k是一個代表10的Integer物件。 兩個意思不太一樣。 : 2. java是call by value, 但書上說, 針對類別產生的物件, 是call by address : 這讓我覺得這個語言缺乏一致性... : 針對內建的型別(類別), 是call by value (copy), 而自訂的類別是call by address : 當然這可以是"特例", 但就覺得缺乏美感... XD 唔?我是覺得講美感這回事是蠻奢侈的一件事。XD 至少我是不覺得在這點上有什麼特別的影響啦。 就是個 feature , 沒有任何反應. : 3. java不支援operator overloading, 但string的"+", 卻又很特殊... : (相比C++, 其實我覺得有些不自然... XD) 同上 XD : 4. java是否支援implicit casting? 為何System.out.println(3.0 - str1 + 3 + "5") : 總是能優先轉成String? 唔,我能想得到的只有兩個例子。 一個是其中有一方是字串的加法會導致雙方都變成字串, (另一方會調用toString() 另一個就是不同型態的數值加法,會以最大的那個型態來作為加總的結果。 如byte+int , 最後的型態會是int. 又long+int 最後的型態是long 諸如此類. -- What do you want to have ? / What do you have? 從書本中,你可以發現我的各種興趣。 從CD中,你可以瞭解我所喜歡的偶像明星。 或許從文字你很難以瞭解一個人,但從物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.218.161
文章代碼(AID): #1BYesalm (java)
討論串 (同標題文章)
文章代碼(AID): #1BYesalm (java)