Tag: 访问器

C#自定义getter / setter没有私有variables

我最近学习了c#,所以当我学会编写属性的时候,我被教导要这样做: public string Name { get; set; } 汽车性能是伟大的! 但是现在我试图做一些更复杂的事情,所以我需要编写一个自定义的访问器对。 private string _Name; public string Name { get { return _Name; } set { _Name = value } } 我知道编译器在使用汽车的时候使得一个私有的实例variables在黑暗的深处变暗,但是我被宠坏了,并且不希望这个私有variables看起来毫无意义。 有没有办法使用自定义访问没有私有variables?

直接访问实例variables与使用访问器方法

任何人都可以解释通过self.attribute和@attribute访问实例属性之间的区别?

在init和dealloc方法中有效使用访问器?

我已经从几个来源(stackoverflow.com,cocoa-dev,文档,博客等)了解到,在init和dealloc方法中使用访问器和设置(foo,setFoo :)是“错误的”。 我明白,如果你这样做的话,有一个遥远的可能性混淆了观察财产的其他物体。 ( 这里给出一个简单的例子) 不过,我不得不说,我不同意这种做法,原因如下: 新的Objective-C运行时(iPhone上的那个和10.5中的64位运行时)允许您声明属性而不声明相应的ivar。 例如,下面的类将在10.5或iPhone(设备,而不是模拟器)上编译得很好: @interface Foo : NSObject { } @property (retain) id someObject; @end @implementation Foo @synthesize someObject; @end 理解上面是一个完全有效的Objective-C类,比方说,我决定编写一个初始化程序,并为了内存pipe理的目的,使用dealloc方法(因为GC在iPhone上不可用)。 我读过的关于初始化和释放的所有东西都会导致我写下面两个方法: – (id) init { if (self = [super init]) { //initialize the value of someObject to nil [self setSomeObject:nil]; } return self; } – (void) dealloc { //setting someObject […]

Objective-C中的属性和访问器

以下代码是否调用访问器“set”函数,或者直接修改指针myMember ? aClass.h @interface MyClass : NSObject { NSArray *myMember; } @property (nonatomic, retain) NSArray *myMember; aClass.c @implementation GameplayScene @synthesize myMember; – (id) init { if ( (self = [super init]) ) { myMember = [NSArray array]; } } 换句话说,我想知道是否正在调用setMyMember方法,或者直接修改myMember的指针。 同样, myMember = [NSArray array]与self.myMember = [NSArray array]是否相同?

有没有办法在Java中模拟C ++的“朋友”概念?

我希望能够在一个包中编写一个Java类,它可以访问另一个包中的类的非公共方法,而不必将其作为另一个类的子类。 这可能吗?