[問題] 為何static method不用物件化便能直接使?

看板java作者 (tnsshnews)時間13年前 (2012/10/25 15:46), 編輯推噓6(604)
留言10則, 6人參與, 最新討論串1/2 (看更多)
Dear all, public class demo{ public static String test1; public static String getString(){ return test1; } } static放在變數或是方法之前代表是class level的變數, 但為什麼要使用getString方法時, 只要直接用demo.getString就好呢? 雖然是class等級, 但這個class在之前如果都沒有被使用過, 這邊直接呼叫, 記憶體空間怎麼會已經配置好空間存放呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.166.9.112

10/25 15:50, , 1F
囧... 只能說,請參閱 Java Spec 有明確定義
10/25 15:50, 1F

10/25 16:34, , 2F
你應該問.... 為什麼非static澳宣告才能使用才對......
10/25 16:34, 2F

10/25 16:39, , 3F
10/25 16:39, 3F

10/25 16:53, , 4F
嗯? 我到覺得這兩個問題沒啥交集耶 XD
10/25 16:53, 4F

10/25 17:03, , 5F
Class object 是由 JVM 負責建立的
10/25 17:03, 5F

10/25 22:12, , 6F
你怎麼知道他沒有物件化?
10/25 22:12, 6F

10/26 09:47, , 7F
話說Class 名稱還是大寫開頭看起來比較順。
10/26 09:47, 7F

10/26 09:54, , 8F
小寫的話,會跟packet的名稱衝到..... 在用反射之類的東西
10/26 09:54, 8F

10/26 09:58, , 9F
可能會出問題。之前在板上看過有人po出這種狀況
10/26 09:58, 9F

10/26 18:01, , 10F
其實像Scala把static直接拆到object新手比較容易理解
10/26 18:01, 10F
文章代碼(AID): #1GYEvlTw (java)
文章代碼(AID): #1GYEvlTw (java)