[問題] 關於String這個Class

看板java作者 (FreedomKnight)時間14年前 (2011/05/01 15:25), 編輯推噓3(3026)
留言29則, 6人參與, 最新討論串1/1
不好意思唷 我有個疑問,很多人都說 宣告 String str = new String("hello"); 這樣的話str是一個Class 可是呀 為什麼可以把類別直接print出來 不是至少應該要印出str.xxx變數之類的嗎? 不好意思 我正在學class這段 有這個疑問 希望有人能幫我解答一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.0.214.190

05/01 15:29, , 1F
所有的類別你都可以直接print出來啊,他會call toString()
05/01 15:29, 1F

05/01 16:50, , 2F
那假如說裡面有很多變數 他是每個變數都會印出來嗎
05/01 16:50, 2F

05/01 17:16, , 3F
我剛剛試著println一個class 可是顯示的是XXX@152b6611
05/01 17:16, 3F

05/01 17:19, , 4F
這應該是印出Class的位置吧
05/01 17:19, 4F

05/01 17:37, , 5F
每個class都會從java.lang.Object 繼承到toString()
05/01 17:37, 5F

05/01 17:38, , 6F
那個toString()會生出可以代表這個object的String
05/01 17:38, 6F

05/01 17:42, , 7F
如果你要它print 能直接印出物件內容之類的String()
05/01 17:42, 7F

05/01 17:44, , 8F
就幫它override一個toString()吧
05/01 17:44, 8F

05/01 17:48, , 9F
多打了括號▔
05/01 17:48, 9F

05/01 18:33, , 10F
所以String 是在裡面toString 裡面的某個字元陣列嗎
05/01 18:33, 10F

05/01 19:15, , 11F
我好像弄錯你想問什麼了 @@
05/01 19:15, 11F

05/01 19:18, , 12F
"為何print()知道String要怎麼印出來" 是這樣嗎?
05/01 19:18, 12F

05/01 19:56, , 13F
沒錯 大概就是照樣
05/01 19:56, 13F

05/01 19:58, , 14F
還有就是他把我存的字串放到哪裡了 查過API
05/01 19:58, 14F

05/01 21:19, , 15F
str是一個class String的variable才對吧~@@
05/01 21:19, 15F

05/01 21:20, , 16F
至於字串存哪是String這個class該煩惱的,不是使用者
05/01 21:20, 16F

05/01 22:22, , 17F
String str這不是宣告str為String這種類別的意思嗎
05/01 22:22, 17F

05/01 22:24, , 18F
所以是說str是String裡的東西嗎
05/01 22:24, 18F

05/01 22:27, , 19F
str是一個String類別的物件
05/01 22:27, 19F

05/01 23:35, , 20F
那println怎麼能印出一個類別呢?
05/01 23:35, 20F

05/01 23:36, , 21F
我指的是印出像helloWorld這種
05/01 23:36, 21F

05/01 23:38, , 22F
str 這個class是怎麼跟我傳入的hello連上關係的
05/01 23:38, 22F

05/01 23:38, , 23F
println(XXX); 當XXX是一個物件,就會呼叫XXX.toString()
05/01 23:38, 23F

05/02 00:06, , 24F
我想問:你知道什麼是constructor嗎?
05/02 00:06, 24F

05/02 00:22, , 25F
是建構的那個嗎
05/02 00:22, 25F

05/02 00:45, , 26F
String類別是使用char[]這個陣列去存資料的(參考原始碼)
05/02 00:45, 26F

05/02 15:42, , 27F
你是怎麼參考原始碼的呀 我下載 都不知道要開哪個目錄
05/02 15:42, 27F

05/02 16:13, , 28F
在j2se/src/share/classes/java/lang/String.java這裡
05/02 16:13, 28F

05/03 00:23, , 29F
感謝你
05/03 00:23, 29F
文章代碼(AID): #1DlGh-Mg (java)