Re: [問題] static class 的相關概念
※ 引述《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
03/13 00:43, 2F
感謝指正 :p
※ 編輯: tkcn 來自: 140.114.78.231 (03/13 00:48)
推
03/13 00:55, , 3F
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
03/13 00:56, 4F
討論串 (同標題文章)