JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:請問修飾子proteceted 和 (default) [Re:item1394]
frank



版主

發文: 498
積分: 13
於 2003-10-12 00:35 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
有把 modifier 又稱為 access specifier(存取修飾子)

Each access specifier controls the access for only that particular definition.(TIJ2 ch5.Java access specifiers)
就是說在 modifier 控制他所定義的那一部份的存取權限

又分為 public, protected, private 和預設的 modifier(即上文說的 friendly),其中差別一般 java 入門書籍都會提到,在此不再贅述。
但對一般新手而言,不容易理解其差別,
每次公司新人對這部分有疑義時,都用下面的譬喻告訴他們,雖不是很恰當,但好像還滿容易瞭解的,也希望對大家有幫助,

我們以大宅院裡頭的一個戶長(以下簡稱老子)表示一個class 為例:

private:俗語說:『各玩各的鳥』, 有些東西是不能跟任何人分享的,只有保留下來自己用,因此將這類東西(field or method) 設為 private,限制別人的存取

public:管你是漳州還是泉州,芋仔還是蕃薯,只要你能從地圖上找到這個宅院的位址(import 了這個 package),只要設為 public 的東西,就允許別人來玩弄,像是老子開了個館子,只要有錢子,誰都能來玩

最容易搞混的就是下面兩個了,其實兩者的差異在院子(package)裡或院子外

friendly:老子開館子賺了些錢,想回饋鄰里,因此,提供了一些東西給街坊鄰居一起玩,這些東西所有權還是屬於這個老子,但是同意這個院子裡的其他人來存取,因此同一 package 下的其他 class 都可以來存取這一類的 field or method

protected:有些東西不想給外面其他人來使用(不設 public),但都給鄰居給玩了,老子覺得出門在外(不在同一 package)的兒子想要使用應該也可以使用,所以就設個 protected 門檻,
也就是說,
1.當class 不在同一 package 下時,只能存取存取對象的 public member,
2.但當存取者為被存取者的子類別時,即可使用(存取)被存取對象的 protected member,
3.一個class/object 的 friendly member 只限同一 package 內存取

要將限制級的譬喻,改成輔導級的的確有點困難
希望別反而搞亂大家的認知


frank edited on 2003-10-12 01:22
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
28610 [精華] 請問修飾子protected 和 (default) item1394 87 2003-10-07 21:50
27413 Re:請問修飾子proteceted 和 (default) Kent_tseng 1149 2003-10-08 17:52
15388 Re:請問修飾子proteceted 和 (default) rivalhw 1245 2006-02-17 09:02
26848 Re:請問修飾子proteceted 和 (default) mojo 63 2004-02-16 17:33
24320 Re:請問修飾子protected 和 (default) kpeter6 24 2004-09-19 19:05
21550 Re:請問修飾子protected 和 (default) mover 133 2004-11-26 20:32
21543 Re:請問修飾子protected 和 (default) ajyi 1287 2004-12-02 16:43
21364 Re:請問修飾子protected 和 (default) ajyi 793 2004-12-02 17:03
21653 Re:請問修飾子protected 和 (default) ajyi 2956 2004-12-03 15:49
27152 Re:請問修飾子proteceted 和 (default) item1394 26 2003-10-11 17:53
26935 Re:請問修飾子proteceted 和 (default) magicfish 65 2003-10-11 23:04
26490 Re:請問修飾子proteceted 和 (default) mojo 453 2004-02-16 17:10
26421 Re:請問修飾子proteceted 和 (default) yengceng 488 2004-05-21 20:05
26313 Re:請問修飾子proteceted 和 (default) yingssu 183 2004-05-21 21:16
24976 Re:請問修飾子proteceted 和 (default) tree671025 949 2004-09-03 15:41
24443 Re:請問修飾子proteceted 和 (default) Yoshi 158 2004-09-04 08:16
24747 Re:請問修飾子proteceted 和 (default) tree671025 179 2004-09-04 10:54
27010 Re:請問修飾子proteceted 和 (default) frank 1083 2003-10-12 00:35
26870 Re:請問修飾子proteceted 和 (default) anthonychen 123 2003-10-12 00:45
27086 Re:請問修飾子proteceted 和 (default) Duncan 285 2003-12-08 23:47
26704 Re:請問修飾子proteceted 和 (default) item1394 264 2003-12-08 23:52
26681 Re:請問修飾子proteceted 和 (default) Duncan 745 2003-12-09 00:33
26654 Re:請問修飾子proteceted 和 (default) item1394 363 2003-12-09 01:06
26445 Re:請問修飾子proteceted 和 (default) tomato 734 2004-02-15 19:45
27070 Re:請問修飾子proteceted 和 (default) metavige 182 2003-12-09 09:22
26828 Re:請問修飾子proteceted 和 (default) item1394 1039 2003-12-05 01:35
26732 Re:請問修飾子proteceted 和 (default) Duncan 258 2003-12-06 02:04
26713 Re:請問修飾子proteceted 和 (default) item1394 273 2003-12-06 10:15
27331 Re:請問修飾子proteceted 和 (default) Duncan 954 2003-12-06 17:15
26855 Re:請問修飾子proteceted 和 (default) qop 1274 2003-12-05 12:39
26773 Re:請問修飾子proteceted 和 (default) item1394 240 2003-12-05 23:15
26743 Re:請問修飾子proteceted 和 (default) qop 334 2003-12-05 23:49
26714 Re:請問修飾子proteceted 和 (default) item1394 140 2003-12-06 00:22
26755 Re:請問修飾子proteceted 和 (default) qop 324 2003-12-06 01:18
26749 Re:請問修飾子proteceted 和 (default) item1394 771 2003-12-06 09:54
26707 Re:請問修飾子proteceted 和 (default) qop 622 2003-12-06 11:33
26712 Re:請問修飾子proteceted 和 (default) item1394 472 2003-12-06 12:36
26723 Re:請問修飾子proteceted 和 (default) qop 447 2003-12-06 18:19
26654 Re:請問修飾子proteceted 和 (default) item1394 595 2003-12-08 22:49
26628 Re:請問修飾子proteceted 和 (default) Yoshi 314 2003-12-09 01:16
27029 Re:請問修飾子proteceted 和 (default) Duncan 333 2003-12-09 10:22
26656 Re:請問修飾子proteceted 和 (default) UndeadJ 361 2003-12-09 18:01
» JWorld@TW »  Java 新手區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8