草庐IT

Getter-Setter

全部标签

java - getter 和 setter 是如何工作的?

我来自php世界。您能否解释一下什么是getter和setter,并给您一些例子? 最佳答案 教程并不是真正需要的。阅读encapsulationprivateStringmyField;//"private"meansaccesstothisisrestrictedtotheclass.publicStringgetMyField(){//includevalidation,logic,loggingorwhateveryoulikeherereturnthis.myField;}publicvoidsetMyField(Stri

java - 简单的 Getter/Setter 注释

您使用什么约定来评论getter和setter?这是我很长一段时间以来一直想知道的事情,例如:/***(1a)whatdoyouputhere?*@paramsalary(1b)whatdoyouputhere?*/publicvoidsetSalary(floatsalary);/**(2a)whatdoyouputhere?*@return(2b)*/publicfloatgetSalary();我总是发现我在为1a/b和2a/b写几乎完全相同的东西,比如1a)设置员工的薪水,1b)员工的薪水。这似乎是多余的。现在我可以看到对于更复杂的内容,您可能会在(a)部分中写更多内容,以提供

java - 通过反射调用getter的最佳方式

我需要获取具有特定注释的字段的值,因此通过反射我能够获取此字段对象。问题是这个字段总是私有(private)的,尽管我事先知道它总是有一个getter方法。我知道我可以使用setAccesible(true)并获取它的值(当没有PermissionManager时),尽管我更喜欢调用它的getter方法。我知道我可以通过查找“get+fieldName”来查找方法(尽管我知道例如boolean字段有时被命名为“is+fieldName”)。我想知道是否有更好的方法来调用这个getter(许多框架使用getter/setter来访问属性,所以也许他们以另一种方式来做)。谢谢

C++ getter/setter 编码风格

我用C#编程已经有一段时间了,现在我想复习一下我的C++技能。上课:classFoo{conststd::string&name_;...};最好的方法是什么(我只想允许读取name_字段):使用getter方法:inlineconststd::string&name()const{returnname_;}公开该字段,因为它是一个常量谢谢。 最佳答案 对于长期存在的类来说,使用getter方法是更好的设计选择,因为它允许您在将来用更复杂的方法替换getter方法。尽管对于const值似乎不太可能需要此操作,但成本低且可能带来的好处

c++ - C++ 中访问器方法(getter 和 setter)的约定

关于C++中的访问器方法的几个问题已经在SO上提出,但没有一个能够满足我对这个问题的好奇心。我尽量避免使用访问器,因为像Stroustrup和其他著名的程序员一样,我认为一个包含许多访问器的类是糟糕的OO的标志。在C++中,在大多数情况下,我可以为类添加更多责任或使用friend关键字来避免它们。然而在某些情况下,您确实需要访问特定的类成员。有几种可能:1.完全不要使用访问器我们可以将各自的成员变量公开。这在Java中是不行的,但在C++社区中似乎没问题。但是,我有点担心应该返回对对象的显式拷贝或只读(const)引用,这是否被夸大了?2。使用Java风格的get/set方法我不确定它

objective-c - 覆盖@property setter 和无限循环

有A类:@interfaceClassA:NSObject{}@property(nonatomic,assign)idprop1;@end@implementation@synthesizeprop1;@end然后我有子类@interfaceClassB:ClassA{}@end@implementation-(id)init{self=[superinit];if(self){}returnself;}//Thisisinfiniteloop-(void)setProp1:(id)aProp{self.prop1=aProp;}@end这是无限循环,因为ClassB中的setPro

公开只读但具有私有(private) setter 的 Objective-C 属性

我想使用@property语法来声明一个综合属性,该属性是公开只读的,但有一个可以在类中私下调用的setter。由于是Objective-C,这基本上意味着setFoo:方法将被合成,但在类本身之外调用它会导致警告(无法识别的选择器)。要触发警告,我必须声明属性readonly;有没有办法强制只在类中可用的合成setter? 最佳答案 我认为您正在寻找的是所谓的类扩展。您可以在header中将属性声明为只读:@interfaceMyClass:NSObject{}@property(readonly,assign)NSInteger

iphone - 如何覆盖@synthesized getter?

如何覆盖一个属性合成的getter? 最佳答案 只需手动实现方法即可,例如:-(BOOL)myBoolProperty{//dosomethingelse...returnmyBoolProperty;}然后编译器将不会生成getter方法。 关于iphone-如何覆盖@synthesizedgetter?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5047399/

iphone - Objective-C 中的弱属性和强属性 setter 属性

Objective-C中的弱属性setter属性和强属性setter属性有什么区别?@property(retain,[weak/strong])__attribute__((NSObject))CFDictionaryRefmyDictionary;有什么影响和好处?听说weak在iOS4上不可用,我们需要使用assign。weak类似于assign吗? 最佳答案 这是我对变量属性的了解原子的//默认非原子strong=retain//默认弱保留赋值//默认unsafe_unretained复制只读读写//默认所以下面是详细的文章

objective-c - 错误 : writable atomic property cannot pair a synthesized setter/getter with a user defined setter/getter

我最近尝试编译一个较旧的Xcode项目(以前编译得很好),现在我看到了很多这种形式的错误:error:writableatomicproperty'someProperty'cannotpairasynthesizedsetter/getterwithauserdefinedsetter/getter导致这些错误的代码模式总是如下所示://Interface:@property(retain)NSObject*someProperty;//Implementation:@synthesizesomeProperty;//toprovidethegetter-(void)setSomeP