Re: About Array

看板java作者時間20年前 (2004/07/12 05:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《bubur.bbs@wretch.twbbs.org (狐狸)》之銘言: > 以下這行程式碼 > Object[] obj=new Object[]{ new int[]{1,2,3}, "GoGo"}; > 輸出後 > Object[0] = [I@XXXXXX > 原始程式碼該如何解釋呢? > 為何輸出後會是維度,資料型態跟位址 > thanks 首先, 我猜想你所謂輸出是 System.out.println("Object[0] = " + obj[0]); 你先得了解你的程式是幹啥的. obj 是一個 Object 的 array. 你的 initializer 使 obj 有兩個 element, 第一個是一個 reference to array, 第二個是 reference to String (記著, Java 裡面的變數 除了 primitive type 外都是 *reference*) 當你作上面我說的輸出的時候, obj[0] 所指著的 object 的 toString() 將會被 invoke. 而該 object 將是一個 int array. toString() 沒有特別 override 的話, 沒記錯的話是輸出 其 hashcode 的 (請參考 API), 而 Object 的 hashcode() 沒有特別 override 的話則一般來說會輸出其底層位置 (並非必然, 視乎 implementation). Alien -- ┌─────程式設計樂園─────┐  ̄ ▌ ̄ ╲╱ BBS 城邦 CSZone.kkcity.com.tw ╴ ▌ ▌ ▏ KK免費撥接 └──From:218.103.237.168 ──┘ 電話:449-1999 帳號:kkcity 密碼:kkcity
文章代碼(AID): #10yR7L00 (java)
文章代碼(AID): #10yR7L00 (java)