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

» JWorld@TW » Java 新手區 » Object/物件導向  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
作者 其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~
timestone





發文: 23
積分: 0
於 2011-10-15 10:55 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
各位好,小弟初學java,現在正在努力體會面向對象編程的精神。但是在參照別人的程序后,自己寫一些當做練習的程序的時候,發現把一個類封裝的很好看起來是很沒有必要的。可能是我還不理解封裝特性的好處,請各位指教。

比如一件簡單的類:
1
2
3
4
5
class A
{
     int number;
     String name;
}


如果安裝封裝的要求,就要限制訪問權限,寫上setter和getter方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class A
{
     private int number;
     private String name;
 
     public void setNumber(int number)
     {
          this.number=number;
     }
     public void setName(String name)
     {
          this.name=name;
     }
 
     public int getNumber()
     {
          return number;
     }
     public String getName()
     {
          return name;
     }
}

這樣用private把屬性封裝起來,最後還是要用public的方法把他們間接暴露出來用,不是很麻煩嗎?再說了,這是基本屬性,最簡單的使用,如果類的屬性里包含一些複雜的,自定義的類型,情況就更是一團糟了。所以我覺得寫setter和getter是一件費力不討好的事。

與其這樣,還不如直接把屬性暴露出來用:
1
2
3
4
5
class A
{
     public int number;
     public String name;
}

可能是水平有限,我實在是看不出他們在應用中的不同,但是在參考別人的程序時,甚至是java的api文檔時,發現大家的java程序都是這麼寫的。。。所以有此一問,請各位不吝賜教~


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
4018 其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~ timestone 963 2011-10-15 10:55
3961 Re:其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~ qwsopp 93 2011-10-15 16:56
3829 Re:其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~ Duncan 1760 2011-10-16 02:12
3764 Re:其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~ Ponylin 1402 2011-10-16 09:18
3930 Re:其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~ timestone 246 2011-10-16 10:01
3756 Re:其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~ ddtet 582 2011-10-17 09:24
3851 Re:其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~ jimwayne 369 2011-10-17 11:45
3710 Re:其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~ caterpillar 368 2011-10-17 11:50
3798 Re:其實“封裝”特性到底有什麽好處?對比“private+setter+getter”和“public+直接使用”兩種方法~ timestone 229 2011-10-17 21:30
» JWorld@TW »  Java 新手區 » Object/物件導向

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