作者FreedomMax (FreedomKnight)
看板java
標題[問題] 關於String這個Class
時間Sun May 1 15:25:48 2011
不好意思唷
我有個疑問,很多人都說
宣告 String str = new String("hello");
這樣的話str是一個Class
可是呀
為什麼可以把類別直接print出來
不是至少應該要印出str.xxx變數之類的嗎?
不好意思 我正在學class這段
有這個疑問
希望有人能幫我解答一下
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.0.214.190
1F:→ TonyQ:所有的類別你都可以直接print出來啊,他會call toString() 05/01 15:29
2F:→ FreedomMax:那假如說裡面有很多變數 他是每個變數都會印出來嗎 05/01 16:50
3F:→ FreedomMax:我剛剛試著println一個class 可是顯示的是XXX@152b6611 05/01 17:16
4F:→ FreedomMax:這應該是印出Class的位置吧 05/01 17:19
5F:→ kaomark:每個class都會從java.lang.Object 繼承到toString() 05/01 17:37
6F:→ kaomark:那個toString()會生出可以代表這個object的String 05/01 17:38
7F:→ kaomark:如果你要它print 能直接印出物件內容之類的String() 05/01 17:42
8F:→ kaomark:就幫它override一個toString()吧 05/01 17:44
9F:→ kaomark: 多打了括號▔ 05/01 17:48
10F:→ FreedomMax:所以String 是在裡面toString 裡面的某個字元陣列嗎 05/01 18:33
11F:→ kaomark:我好像弄錯你想問什麼了 @@ 05/01 19:15
12F:→ kaomark:"為何print()知道String要怎麼印出來" 是這樣嗎? 05/01 19:18
13F:→ FreedomMax:沒錯 大概就是照樣 05/01 19:56
14F:→ FreedomMax:還有就是他把我存的字串放到哪裡了 查過API 05/01 19:58
15F:推 tomap41017:str是一個class String的variable才對吧~@@ 05/01 21:19
16F:→ tomap41017:至於字串存哪是String這個class該煩惱的,不是使用者 05/01 21:20
17F:→ FreedomMax:String str這不是宣告str為String這種類別的意思嗎 05/01 22:22
18F:→ FreedomMax:所以是說str是String裡的東西嗎 05/01 22:24
19F:→ james732:str是一個String類別的物件 05/01 22:27
20F:→ FreedomMax:那println怎麼能印出一個類別呢? 05/01 23:35
21F:→ FreedomMax:我指的是印出像helloWorld這種 05/01 23:36
22F:→ FreedomMax:str 這個class是怎麼跟我傳入的hello連上關係的 05/01 23:38
23F:→ james732:println(XXX); 當XXX是一個物件,就會呼叫XXX.toString() 05/01 23:38
24F:→ james732:我想問:你知道什麼是constructor嗎? 05/02 00:06
25F:→ FreedomMax:是建構的那個嗎 05/02 00:22
26F:推 awashharp:String類別是使用char[]這個陣列去存資料的(參考原始碼) 05/02 00:45
27F:→ FreedomMax:你是怎麼參考原始碼的呀 我下載 都不知道要開哪個目錄 05/02 15:42
28F:推 awashharp:在j2se/src/share/classes/java/lang/String.java這裡 05/02 16:13
29F:→ FreedomMax:感謝你 05/03 00:23