标签: setter

为什么要使用getter和setter/accessors?

使用getter和setter的优点是什么 - 只能获取和设置 - 而不是简单地使用公共字段来存储这些变量?

如果getter和setter做的不仅仅是简单的get/set,我可以非常快地解决这个问题,但我并不是100%清楚如何:

public String foo;
Run Code Online (Sandbox Code Playgroud)

更糟糕的是:

private String foo;
public void setFoo(String foo) { this.foo = foo; }
public String getFoo() { return foo; }
Run Code Online (Sandbox Code Playgroud)

而前者需要很少的样板代码.

java oop getter setter abstraction

1472
推荐指数
26
解决办法
37万
查看次数

吸气剂和二传手设计不佳吗?看到矛盾的建议

我目前正在开发一个简单的Java游戏,有几种不同的模式.我扩展了一个主要的Game类,将主要逻辑放在其他类中.尽管如此,主要的游戏类仍然非常沉重.

在快速浏览一下我的代码后,其中大部分是Getters and Setters(60%),而其余部分则是游戏逻辑真正需要的.

一些谷歌搜索声称Getters和Setters是邪恶的,而其他人声称他们是良好的OO练习和伟大的程序所必需的.

所以我该怎么做?应该是哪个?我应该为我的私人变量更改我的Getters和Setter,还是应该坚持使用它们?

java oop getter setter accessor

224
推荐指数
10
解决办法
7万
查看次数

如何在Visual Studio中生成getter和setter?

通过"生成",我的意思是自动生成特定选择的(一组)变量所需的代码.

但欢迎任何更明确的解释或对良好做法的评论.

c# getter setter visual-studio

216
推荐指数
7
解决办法
40万
查看次数

在Ruby on Rails中覆盖setter方法的正确方法是什么?

我正在使用Ruby on Rails 3.2.2,我想知道以下是否是一个"正确"/"正确"/"确定"的方式来覆盖我的类属性的setter方法.

attr_accessible :attribute_name

def attribute_name=(value)
  ... # Some custom operation.

  self[:attribute_name] = value
end
Run Code Online (Sandbox Code Playgroud)

上面的代码似乎按预期工作.但是,我想知道,通过使用上面的代码,将来我会遇到问题,或者至少,我应该在Ruby on Rails上遇到"我应该期待"/"可能发生"的问题.如果这不是覆盖setter方法的正确方法,那么正确的方法是什么?


注意:如果我使用代码

attr_accessible :attribute_name

def attribute_name=(value)
  ... # Some custom operation.

  self.attribute_name = value
end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

SystemStackError (stack level too deep):
  actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:70
Run Code Online (Sandbox Code Playgroud)

ruby setter overriding ruby-on-rails ruby-on-rails-3

172
推荐指数
3
解决办法
8万
查看次数

Javascript getters和setters for dummies?

我一直在努力让自己的头脑能够吸引人并且不会陷入其中.我已经阅读过JavaScript Getters and SettersDefining Getters and Setters而且还没有得到它.

有人可以明确说明:

  1. 什么是吸气剂和制定者的意图,以及
  2. 举几个非常简单的例子?

javascript getter setter

128
推荐指数
7
解决办法
12万
查看次数

简单的Getter/Setter评论

您使用什么约定来评论getter和setter?这是我一直想知道的事情,例如:

/**
 * (1a) what do you put here?
 * @param salary (1b) what do you put here?
 */
public void setSalary(float salary);

/*
 * (2a) what do you put here?
 * @return (2b)
 */
public float getSalary();
Run Code Online (Sandbox Code Playgroud)

我总是发现我为1a/b和2a/b编写完全相同的东西,例如1a)设置雇员的工资,1b)雇员的工资.这似乎是多余的.现在我可以看到更复杂的东西,你可以在(a)部分写更多内容,给出上下文,但对于大多数的getter/setter,那里的措辞几乎完全相同.

我只是好奇,如果对于简单的getter/setter,只需填写(a)部分或(b)部分即可.

你怎么看?

java getter setter comments javadoc

119
推荐指数
8
解决办法
6万
查看次数

getter和setter如何工作?

我来自php世界.你能解释一下getter和setter是什么,可以给你一些例子吗?

java getter setter

106
推荐指数
4
解决办法
51万
查看次数

ECMAScript 6课程中的getter和setter是什么?

我对ECMAScript 6类中getter和setter的重点感到困惑.什么目的?以下是我所指的一个例子:

class Employee {

    constructor(name) {
        this._name = name;
    }

    doWork() {
        return `${this._name} is working`;
    }

    get name() {
        return this._name.toUpperCase();
    }

    set name(newName){
        if(newName){ 
            this._name = newName;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

getter setter class ecmascript-6

98
推荐指数
3
解决办法
7万
查看次数

.h和.m文件中的@interface定义之间的区别

通常我们使用

@interface interface_name : parent_class <delegates>
{
......
}
@end 
Run Code Online (Sandbox Code Playgroud)

在.h文件和.m文件中的方法中,我们合成了在.h文件中声明的变量的属性.

但是在某些代码中,这个@interface ..... @ end方法也保存在.m文件中.这是什么意思?他们之间有什么区别?

还要提供一些关于.m文件中定义的接口文件的getter和setter的话.

提前致谢

getter setter interface objective-c header-files

80
推荐指数
2
解决办法
3万
查看次数

吸气剂和制定者有什么意义?

可能重复:
为什么要使用getter和setter?

我已阅读的书Java,说这是好事,创建getter和setter方法的变量,如xy.例如:

public int getX(){
    return x;
}

public void setX(int x){
    this.x = x;
}
Run Code Online (Sandbox Code Playgroud)

但与此有什么不同

...(shape.x)...   // basically getX()
Run Code Online (Sandbox Code Playgroud)

shape.x = 90;    // basically setX()
Run Code Online (Sandbox Code Playgroud)

如果选手和吸气器更好,你能解释一下会出现什么样的实际问题吗?

java getter setter

74
推荐指数
4
解决办法
9万
查看次数