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
話題樹型展開
人氣 標題 作者 字數 發文時間
28539 [精華] 請問修飾子protected 和 (default) item1394 87 2003-10-07 21:50
27351 Re:請問修飾子proteceted 和 (default) Kent_tseng 1149 2003-10-08 17:52
15323 Re:請問修飾子proteceted 和 (default) rivalhw 1245 2006-02-17 09:02
26785 Re:請問修飾子proteceted 和 (default) mojo 63 2004-02-16 17:33
24257 Re:請問修飾子protected 和 (default) kpeter6 24 2004-09-19 19:05
21488 Re:請問修飾子protected 和 (default) mover 133 2004-11-26 20:32
21479 Re:請問修飾子protected 和 (default) ajyi 1287 2004-12-02 16:43
21302 Re:請問修飾子protected 和 (default) ajyi 793 2004-12-02 17:03
21586 Re:請問修飾子protected 和 (default) ajyi 2956 2004-12-03 15:49
27089 Re:請問修飾子proteceted 和 (default) item1394 26 2003-10-11 17:53
26874 Re:請問修飾子proteceted 和 (default) magicfish 65 2003-10-11 23:04
26427 Re:請問修飾子proteceted 和 (default) mojo 453 2004-02-16 17:10
26357 Re:請問修飾子proteceted 和 (default) yengceng 488 2004-05-21 20:05
26251 Re:請問修飾子proteceted 和 (default) yingssu 183 2004-05-21 21:16
24912 Re:請問修飾子proteceted 和 (default) tree671025 949 2004-09-03 15:41
24382 Re:請問修飾子proteceted 和 (default) Yoshi 158 2004-09-04 08:16
24684 Re:請問修飾子proteceted 和 (default) tree671025 179 2004-09-04 10:54
26948 Re:請問修飾子proteceted 和 (default) frank 1083 2003-10-12 00:35
26808 Re:請問修飾子proteceted 和 (default) anthonychen 123 2003-10-12 00:45
27024 Re:請問修飾子proteceted 和 (default) Duncan 285 2003-12-08 23:47
26639 Re:請問修飾子proteceted 和 (default) item1394 264 2003-12-08 23:52
26619 Re:請問修飾子proteceted 和 (default) Duncan 745 2003-12-09 00:33
26592 Re:請問修飾子proteceted 和 (default) item1394 363 2003-12-09 01:06
26384 Re:請問修飾子proteceted 和 (default) tomato 734 2004-02-15 19:45
27008 Re:請問修飾子proteceted 和 (default) metavige 182 2003-12-09 09:22
26766 Re:請問修飾子proteceted 和 (default) item1394 1039 2003-12-05 01:35
26670 Re:請問修飾子proteceted 和 (default) Duncan 258 2003-12-06 02:04
26651 Re:請問修飾子proteceted 和 (default) item1394 273 2003-12-06 10:15
27267 Re:請問修飾子proteceted 和 (default) Duncan 954 2003-12-06 17:15
26792 Re:請問修飾子proteceted 和 (default) qop 1274 2003-12-05 12:39
26711 Re:請問修飾子proteceted 和 (default) item1394 240 2003-12-05 23:15
26681 Re:請問修飾子proteceted 和 (default) qop 334 2003-12-05 23:49
26653 Re:請問修飾子proteceted 和 (default) item1394 140 2003-12-06 00:22
26693 Re:請問修飾子proteceted 和 (default) qop 324 2003-12-06 01:18
26687 Re:請問修飾子proteceted 和 (default) item1394 771 2003-12-06 09:54
26645 Re:請問修飾子proteceted 和 (default) qop 622 2003-12-06 11:33
26647 Re:請問修飾子proteceted 和 (default) item1394 472 2003-12-06 12:36
26662 Re:請問修飾子proteceted 和 (default) qop 447 2003-12-06 18:19
26591 Re:請問修飾子proteceted 和 (default) item1394 595 2003-12-08 22:49
26565 Re:請問修飾子proteceted 和 (default) Yoshi 314 2003-12-09 01:16
26965 Re:請問修飾子proteceted 和 (default) Duncan 333 2003-12-09 10:22
26594 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