Questions tagged «getter-setter»

面向对象编程中的公共增变方法,负责更改和返回私有类成员的值,因此符合封装原理。

13
使用@property与getter和setter
这是一个纯Python特定的设计问题: class MyClass(object): ... def get_my_attr(self): ... def set_my_attr(self, value): ... 和 class MyClass(object): ... @property def my_attr(self): ... @my_attr.setter def my_attr(self, value): ... Python让我们可以以任何一种方式来做。如果要设计Python程序,将使用哪种方法,为什么?


11
财产获取者和安置者
通过这个简单的类,我得到了编译器警告 尝试x在自己的设置器/ 获取器中修改/访问 当我这样使用它时: var p: point = Point() p.x = 12 我得到一个EXC_BAD_ACCESS。没有明确的支持,我该怎么办? class Point { var x: Int { set { x = newValue * 2 //Error } get { return x / 2 //Error } } // ... }

16
为什么不可能覆盖仅getter的属性并添加setter?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 为什么不允许以下C#代码: public abstract class BaseClass { public abstract int Bar { get;} } public class ConcreteClass : BaseClass { public override int Bar { get { return 0; } set {} } } CS0546'ConcreteClass.Bar.set':无法覆盖,因为'BaseClass.Bar'没有可覆盖的集合访问器



4
是否可以在JavaScript中实现动态获取器/设置器?
我知道如何通过执行以下操作为名称已知的属性创建吸气剂和吸气剂: // A trivial example: function MyObject(val){ this.count = 0; this.value = val; } MyObject.prototype = { get value(){ return this.count < 2 ? "Go away" : this._value; }, set value(val){ this._value = val + (++this.count); } }; var a = new MyObject('foo'); alert(a.value); // --> "Go away" a.value = …

9
C#:getter / setter
我在某处看到以下内容,并且想知道它的含义。我知道它们是getter和setter,但想知道为什么字符串Type是这样定义的。谢谢你帮我 public string Type { get; set; }
109 c#  getter-setter 


9
是否可以在Java中读取注释的值?
这是我的代码: @Column(columnName="firstname") private String firstName; @Column(columnName="lastname") private String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } 是否可以在另一个类中读取我的注释@Column(columnName =“ xyz123”)的值?

12
获取,设置和属性最佳实践。Java与C#
我现在正在上一门C#类,并且试图找出做事的最佳方法。我来自Java背景,因此只熟悉Java最佳实践。我是C#新手! 在Java中,如果我有私有财产,则可以这样做。 private String name; public void setName(String name) { this.name = name; } public String getName() { return this.name; } 在C#中,我看到有很多方法可以做到这一点。 我可以像Java那样做: private string name; public void setName(string name) { this.name = name; } public string getName() { return this.name; } 或者我可以这样: private string name; public string Name { …

6
科特林的吸气剂和二传手
例如,在Java中,我可以自己编写getter(由IDE生成),也可以在lombok中使用@Getter之类的注释-这非常简单。 但是Kotlin默认具有getter和setter方法。但是我不明白如何使用它们。 可以说,我想做到-与Java类似: private val isEmpty: String get() = this.toString() //making this thing public rises an error: Getter visibility must be the same as property visibility. 那么吸气剂如何工作?


3
为什么我不能在Swift中使用let in协议?
我对Swift中使用var和关键字{get set}的协议有疑问。 从Apple文档: 如果协议要求某个属性是可获取和可设置的,则该常量要求不能通过常量存储属性或只读计算属性来满足。如果协议仅要求一个属性是可获取的,则该要求可以由任何种类的属性来满足,并且如果该属性对您自己的代码有用,那么也可以对该属性进行设置是有效的。 属性要求始终声明为变量属性,并以var关键字为前缀。通过在类型声明后写{get set}来表示可获取和可设置的属性,通过写{get}来表示可获取的属性。 我不明白为什么我不能使用let。一个变种中,只有一个协议获取不只是让? 像这样: protocol someProtocol { var someProperty: String { get } } 这不只是: protocol someProtocol { let someProperty: String } 我想念什么吗?

2
私人二传手打字稿?
是否可以在TypeScript中为属性设置私有设置器? class Test { private _prop: string; public get prop() : string { return this._prop; } private set prop(val: string) { //can put breakpoints here this._prop = val; } } 编译器抱怨getter和setter的可见性不匹配。我知道我可以设置背景字段,但是设置值时不能设置断点。 我虽然打算使用接口来隐藏设置器,但是接口只能定义属性,而不能定义设置器上是否具有getter。 我在这里想念什么吗?似乎没有任何理由不允许使用私有设置器,因此生成的JS无论如何都不会强制执行可见性,并且与当前的替代方法相比似乎更好。 我想念什么吗?如果没有,那么没有私下的二传手有充分的理由吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.