作者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