Geo*_*nza 22 java getter setter accessor actionscript-3
我是Java新手,但对ActionScript 3有一些OOP经验,所以我试图依靠我所知道的东西进行迁移.
在ActionScript 3中,您可以使用get和set关键字创建getter和setter,这意味着您在类中创建方法并通过该类的实例的属性访问数据.我可能听起来很复杂,但事实并非如此.这是一个例子:
class Dummy{
private var _name:String;
public function Dummy(name:String=null){
this._name = name;
}
//getter
public function get name():String{
return _name;
}
//setter
public function set name(value:String):void{
//do some validation if necessary
_name = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我会name在一个对象中访问:
var dummy:Dummy = new Dummy("fred");
trace(dummy.name);//prints: fred
dummy.name = "lolo";//setter
trace(dummy.name);//getter
Run Code Online (Sandbox Code Playgroud)
我怎么用Java做到这一点?
只是拥有一些公共领域是不可能的.我注意到有一种在方法前面使用get和set的约定,我很好.
例如,
class Dummy{
String _name;
public void Dummy(){}
public void Dummy(String name){
_name = name;
}
public String getName(){
return _name;
}
public void setName(String name){
_name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
在Java中是否有等效的ActionScript 3 getter/setter,如从类的实例访问私有字段作为字段,但是有一个在类内部实现它的方法?
zen*_*azn 20
不.AS3 getter和setter是ECMAScript的东西.在Java中,你坚持使用getVal()和setVal()样式函数 - 没有任何语法糖可以让你轻松.
我认为Eclipse可以帮助自动生成这些类型的东西,但...
Ste*_*202 10
你的Java代码很好,除了你想要_name 私有.
Java 中没有get和set关键字,如AS3示例中所示.对不起,它没有比你已经做的更好.
更正代码:
class Dummy {
private String _name;
public void Dummy() {}
public void Dummy(String name) {
setName(name);
}
public String getName() {
return _name;
}
public void setName(String value) {
_name = value;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44321 次 |
| 最近记录: |