作者tkcn (小安)
看板java
標題Re: [問題] static class 的相關概念
時間Sun Mar 13 00:18:56 2011
※ 引述《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
推 chchwy:推這篇 原問把一堆觀念攪在一起了 03/13 00:28
推 asilzheng:第4個有點怪 final class可以建物件吧(String) 03/13 00:43
感謝指正 :p
※ 編輯: tkcn 來自: 140.114.78.231 (03/13 00:48)
推 asilzheng:第1個我有點好奇 class有static這個修飾詞嗎?? 03/13 00:55
有的,但必須是 inner class,一般就叫作 static inner class。
但也有些書認為,那並不是真的 inner class,只是多一層 scope 而已。
可參考:
#1DFPK50o
※ 編輯: tkcn 來自: 140.114.78.231 (03/13 01:01)
→ asilzheng:哦 他是inner class 03/13 00:56