作者a60301 (mingtsay〃小喵)
看板java
標題[問題] 封裝Getter/Setter
時間Mon Jul 15 17:27:54 2013
各位大大好,
就我所知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 ° ∥★
★∥ 。 ● ● ◤ ◥ █ █ ∥ ◢╱﹋◣ 。 ∣★
★∣ ◥ˍ ◤◤ ◢◤ ◢◢◤██◤ ◣ ◢╱ ● ︶ ( ∥★
★∥ ( ◢◤ ◤ing ∥say ◢███ ╰ ◤ ζ ) ∣★
★│ ) mt.rmstudio.tw ︾ [email protected] ◤ ◥◢ ◤◤ wnqui ∥★
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.67.27
1F:→ abola921:JSTL + EL 我想到的就是這個搭配了 07/15 17:54
2F:→ swpoker:亂入~寫了個tagforspringbean的tag超好用! 07/16 09:04
3F:→ adrianshum:沒有。 07/16 12:43
4F:→ PsMonkey:我比較想知道... 為什麼要有...... 07/16 12:44
5F:→ cuteclare:...public ? 看不懂原po在問啥~看來我程度太差了 07/16 19:49
我看很多 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)
6F:→ abola921:那不是把bar宣告成public 就好不是嗎... 07/18 13:55