作者sayaku0210 (阿邪)
看板Flash
標題[問題] 某書上getter與setter範例的問題
時間Fri Nov 26 03:07:03 2010
某書上getter與setter範例
類別A:
package
{
public class A
{
private var MyString:String="test";
public function get hello():String{
return MyString;
}
public function set hello(S:String):void{
MyString=S;
}
}
}
類別B:
package
{
import flash.display.Sprite;
public class B extends Sprite
{
public function B(){
var foo:A=new A();
trace(foo.hello);
}
}
}
我的問題在於類別B裡的var foo:A=new A();
他這邊的new A()我有點不懂的是類別A裡面沒有建構函式,new A()是哪來的??
而類別A沒有寫建構函式就直接get跟set,這邊觀念有點模糊= =
請各位高手指導解說!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.125.152.249
1F:推 wind50321:沒寫跟有寫沒塞東西一樣 A是instance instance是class來 11/26 03:31
2F:→ wind50321:通常建構函式是用來寫初始設定 而它只是需要一個A物件來 11/26 03:33
3F:→ wind50321:使用其他function的功能 11/26 03:33
4F:→ sayaku0210:原來如此!感謝您的解惑 11/26 03:37
5F:→ aquarianboy:我其實看不太懂w版友的推文...s版友能幫忙解釋一下嗎? 11/26 05:16
6F:→ aquarianboy:A明明是一個class,怎麼會變instance呢? 11/26 05:17
7F:→ aquarianboy:在OOP的架構下,子類別沒寫的功能不代表就不能用,也 11/26 05:18
8F:→ aquarianboy:許它的爸媽有遺傳給他,那他就可以直接用 11/26 05:19
9F:→ aquarianboy:另外,有沒有建構函式跟getter/setter是兩件事 :) 11/26 05:20
10F:推 etrexetrex:A是class foo是instance 11/26 08:07
11F:→ wind50321:嗯 我寫錯了 我是要說A()是instance 11/26 10:20
12F:→ wind50321:還有我沒考慮到遺傳的問題 我是認為它只是一個例子 11/26 10:24
13F:→ wind50321:不過遺傳應該跟建構函式沒寫沒關係 通常是用外面的功能? 11/26 10:28
14F:→ wind50321:而且A沒有extend任何class 11/26 10:29
15F:→ aquarianboy:A即使沒有繼承自任何class,在編譯的時候還是偷偷塞一 11/26 11:44
16F:→ aquarianboy:個類別給它繼承 11/26 11:45
17F:→ wind50321:像是Object之類的嗎? 11/26 13:33
18F:→ aquarianboy:抱歉正在上班中,晚上回家再來回一篇完整一點的 :) 11/26 15:17
19F:→ sayaku0210:我這篇是拿getter跟setter範例當例子!所以不是要討論 11/26 16:28
20F:→ sayaku0210:getter與setter! 11/26 16:29
21F:→ sayaku0210:我的問題其實就是W板友說的寫不寫建構函式的問題!就是 11/26 16:31
22F:→ sayaku0210:沒寫建構函式等於有寫建構函式但沒塞東西! 11/26 16:32
23F:→ sayaku0210:我記得class預設都是繼承Object 11/26 16:34
24F:→ sayaku0210:感謝W板友與A板友熱心的回答!!這方面概念還是沒有很熟! 11/26 16:38
25F:→ sayaku0210:忘了還有E板友熱心的回答!感謝:) 11/26 16:39