[問題] 封裝Getter/Setter

看板java作者 (mingtsay〃小喵)時間12年前 (2013/07/15 17:27), 編輯推噓0(006)
留言6則, 5人參與, 最新討論串1/2 (看更多)
各位大大好, 就我所知VB6和JavaScript裡面都有Getter/Setter的概念, VB6是物件的屬性有Get和Set的方法, JavaScript則是物件用以下方式宣告: var obj = { _foo, get foo() { return this._foo; }, set foo(value) { this._foo = value; } }; 然後就可以這樣如下使用: obj.foo = "bar"; window.alert(obj.foo); 請問Java有沒有辦法做到類似這種可以直接用 = 這個運算元 來達成實際是執行Getter/Setter函數的方法? 謝謝。 -- 〞` ◥◣◢◣◢◣ ◢▏。 ○ ο ° ██◤ █◤◥◤█ o ° ◤ ◥ █ █ ╱﹋ ˍ ◤◤ ◢◤ ◢◤██◣ ◢ ◢◤ ◤ingsay ◢███ ζ ) ) mt.rmstudio.tw mt@moztw.org ◤◤ wnqui -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.67.27

07/15 17:54, , 1F
JSTL + EL 我想到的就是這個搭配了
07/15 17:54, 1F

07/16 09:04, , 2F
亂入~寫了個tagforspringbean的tag超好用!
07/16 09:04, 2F

07/16 12:43, , 3F
沒有。
07/16 12:43, 3F

07/16 12:44, , 4F
我比較想知道... 為什麼要有......
07/16 12:44, 4F

07/16 19:49, , 5F
...public ? 看不懂原po在問啥~看來我程度太差了
07/16 19:49, 5F
我看很多 Java 程式碼都是寫成: public class Foo { private int _bar; public int getBar() { return _bar; } public void setBar(int bar) { if (bar >= 0) _bar = bar; } public Foo(int bar) { _bar = bar; } public Foo() { this(0); } } 所以使用起來會是像這樣的用法: Foo foo = new Foo(); foo.setBar(3); System.out.println(foo.getBar()); // 3 foo.setBar(-8); // invalid bar System.out.println(foo.getBar()); // 3 我只是期待可以這樣做同時達成Getter/Setter概念: foo.bar = 3; // _bar = 3 foo.bar = -8; // _bar won't change 不過看起來只有VB, JS, PHP才有這種特殊用法, 至於C/C++, Java我還是乖乖開getFoo/setFoo的function好了… ※ 編輯: a60301 來自: 114.42.70.180 (07/18 04:36)

07/18 13:55, , 6F
那不是把bar宣告成public 就好不是嗎...
07/18 13:55, 6F
文章代碼(AID): #1Huy2T4m (java)
文章代碼(AID): #1Huy2T4m (java)