Re: [問題] static class 的相關概念

看板java作者 (小安)時間15年前 (2011/03/13 00:18), 編輯推噓3(301)
留言4則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《k43582 (crab)》之銘言: : 大家好 : static概念不太清楚 想問問大家 : 程式碼&問題=>http://nopaste.csie.org/3927d : 希望好心人 幫我一下 : 謝謝你!! 你缺少的觀念有點多,我沒辦法全部在這裡說明, 所以先指出你程式註解有錯的部份。 1. static class Virus { //static inner class 因為test要標為static 這個也要 否則不過 Virus 加不加 static 跟裡頭的 method 是不是 static 完全無關, compile 有錯誤是其他原因造成的,去查查有關 inner class 的資料吧。 2. Virus why = new Virus(); //為何這樣也可以? static "class"竟然可以建立物件???? static class 本來就可以建立物件。 3. why.test(); //目的要使用static的test 問題:與下面兩行的Math哪裡不同?? Math.abs(3.4); //直接用class名稱用 不准建立物件 而Virus可建立 矛盾?? static method 允許你用類別或物件去呼叫 (雖然我不覺得透過物件呼叫有任何好處) 4. Math a = new Math(); //出錯 我要呼叫static的abs() 這邊不能建立物件 不懂??? 錯誤訊息應該會告訴你原因: Math 只有 private Constructor。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.231

03/13 00:28, , 1F
推這篇 原問把一堆觀念攪在一起了
03/13 00:28, 1F

03/13 00:43, , 2F
第4個有點怪 final class可以建物件吧(String)
03/13 00:43, 2F
感謝指正 :p ※ 編輯: tkcn 來自: 140.114.78.231 (03/13 00:48)

03/13 00:55, , 3F
第1個我有點好奇 class有static這個修飾詞嗎??
03/13 00:55, 3F
有的,但必須是 inner class,一般就叫作 static inner class。 但也有些書認為,那並不是真的 inner class,只是多一層 scope 而已。 可參考: #1DFPK50o ※ 編輯: tkcn 來自: 140.114.78.231 (03/13 01:01)

03/13 00:56, , 4F
哦 他是inner class
03/13 00:56, 4F
文章代碼(AID): #1DUvppsG (java)
文章代碼(AID): #1DUvppsG (java)