问题标签 [getter-setter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 使 getter 和 setter 内联是一种好习惯吗?
在Learn C++上,他们说它会运行得更快。所以,我认为在 getter 和 setter 上使用会很棒。但也许,它有一些缺点?
oop - getter 和 setter 的用途?
可能的重复:
公共数据成员与 Getters、Setters
类中私有成员的用途
当您可以将变量公开并避免诸如A.setVariableX(A.getVariableY())
?
actionscript-3 - 覆盖继承的 getter/setter
我有一个继承自 Sprite 的类(Wall)。
Sprite 已经具有宽度和高度属性。但是对于墙,我需要在属性更改时进行一些其他额外的计算(确保新尺寸不会导致它与任何其他墙重叠)。
那么,如何在 Wall 的宽度设置器中设置从 Sprite 类继承的宽度属性?(或者也许有另一种方法可以在设置宽度时进行边界检查?)
java - 在 Java 中生成 getter/setter(再次)
我正在考虑写作的方法
然后,自动为该类生成 get_aValue() 和 set_AValue() 方法。
我发现了这些可能性:
1a) 在编译时。使用注解处理器单独处理 MyClass.java,然后编写一个新的 MyClass.java,最后将后者(替换原来的)与 .java 的其余部分一起使用
1b) 在编译时。使用注释处理器生成一个 MyClassGenerated.java 文件,其中包含一个新类(使用 get/set 方法),该类是原始 MyClass 的子类。
2) 在运行时。使用 java.lang.instrument 和外部工具(如 BCEL)在 MyClass.class 中编织新代码。
好吧,问题是:考虑到我尽可能不想使用第三方库(如 lombok 项目或 BCEL)
a)我是否错过了任何其他方法?
b) 你会使用哪种方法?
我想我会使用 1a) 因为
1b) 不干净(程序的其余部分应该使用 MyClassGeneradted 而不是原来的 MyClass,尽管这可能只是名称问题)
2)真的很难(至少对我来说)。
java - Java 公共变量问题
可能的重复:
属性和封装
新人警报!
我从 Android 和 Java 开始,我开始理解它,但我想知道为什么我应该使用 getter 和 setter 而不仅仅是公共变量?
我看到很多人创建了一个私有变量并创建了一个 get 和 set 方法。
这里的想法是什么?
doctrine - Doctrine 覆盖关系字段的 Getter 和 Setter
有谁知道如何为 Relation 字段覆盖 Doctrine_Record getter 和 setter。例如,如果我有一个类Note,Note有很多Users,现在我可以覆盖,例如这个操作Note->Users[] = $user1吗?
谢谢!
oop - C++ 中的 Getter 和 Setter
我应该在 C++ 中使用 getter 和 setter 还是直接访问类数据更好?
objective-c - 对所有模型 iVar 使用一个设置器
我有一系列适用于我的应用程序的模型。在所有这些模型中,有(将有)大约 200 或 300 个实例变量。该应用程序将其持久数据存储在基于 Web 的服务器上(MySQL - 但我想这部分无关紧要)。每当更新模型 iVar 时,我都需要调用服务器以更新该 iVar 的适当值。
我当前的模型策略是(头文件):
(实现文件):
问题是,如果我有 200 或 300 个 iVar 都需要对服务器进行相同的更新调用,这意味着要编写很多setter。此外,如果我需要更改方法调用,我必须更新整个应用程序中每个 setter 中的每个方法。
在设置之前,是否有一个过程可以让我首先通过一种方法运行每组 iVar?
我想只有一个NSMutableDictionary
每个模型对象来存储所有 iVar,但这抽象了 setter 和 getter,并且可能会为这么多字典引入很大的内存占用。但是,这样做意味着每次设置字典时,我都可以通过一种方法传递它。
据我了解,在运行时将 iVar 动态添加到对象模型被认为是一件坏事,因为指针引用了可能依赖于模型的任何子类(子类指针不会偏移,除非完成完全重新编译)。
任何想法和建议都非常感谢。
更新
根据 Ole 的建议,这里是解决方案(尽管不幸的是,它使用的代码比几行多一点)......
在模型中,我添加了一个可以在需要时设置的方法。我没有直接从 init 调用该方法,因为添加从服务器返回的一大堆结果会触发每个添加对象的观察者。所以我在初始化并更新了来自服务器的第一个抓取之后调用该方法。
这是代码...
然后我将观察者添加到模型中:
在我的实际实现中,我还碰巧发布了一个对象集的通知,self
以便我可以更新任何应该听但没有注意的东西(比如 中的东西NSArrayControllers
)。
objective-c - 当 KVO 从模型设置器触发时,防止递归地重新输入 observeValueForKeypath
我有一大堆模型可以观察自己的变化。当触发 setter 时,模型中的观察者会被调用,并且在该模型中,我调用 Web 服务器并更新 Web 服务器中的信息,以便它正确地拥有应有的数据。
但是,在我对 Web 服务器的调用中,我可以从连接断开、服务器重置等到服务器说不允许更新(例如,另一个用户更改的某些其他参数阻止了更新)。
哦,断开数据存储的乐趣……
有什么方法可以self
在不重新触发 KVO 操作的情况下更新(即模型)?
当我得到响应时,我可以关闭观察者,但是在执行后台服务器请求时,可以对同一对象进行另一个用户操作。这将中断另一个呼叫。
请参阅此处的帖子,了解我为首先进行观察而尝试做的事情以及完整模型的代码示例。
我正在拨打电话的部分将在观察者中,如下所示:
你们似乎总是能得到一些很好的建议,我总是很感激你们提出的任何建议。
actionscript-3 - AS3 获取/设置与重新分配值
当您可以重新分配值时,获取/设置值的目的是什么?仅仅是因为您可以获取/设置私有变量吗?