object-c基础 关于 @protected
Fraction.h#import
static int t=0;
@inte易做图ce Fraction: NSObject{
int numerator;//分子
@public int denominator;//分母
}
-(void) setNumerator: (int) numerator;//numerator 的setter 方法
-(void) setDenominator: (int) denominator;//denominator 的setter 方法
-(void) setNumerator: (int) numerator andDenominator: (int) denominator;
//一个同时设置两个成员变量的快捷方法
-(int) numerator;//numerator 的getter 方法
-(int) denominator;//denominator 的getter 方法
-(void) print;
+(void) t;
@end
--------------------------------------------------------------------------------------------
#import \"Fraction.h\"
int main(int argc,const char *argv[]){
Fraction *frac=[[Fraction alloc] init];
[frac setNumerator: 3 andDenominator: 5];
printf(\"The denominator of Fraction is %d\\n\",frac->denominator); /// 第三行
[frac release];
return 0;
}
第三行在 C 的 printf()函数中使用了对象->成员变量的语法访问实例的变量,但一般我
们不推荐这么做,而是使用 getter 方法。这里你不能访问 numerator变量,因为它是
@protected 的,只能本类、子类直接访问。
问 “这里你不能访问 numerator变量,因为它是 @protected 的,只能本类、子类直接访问。 ” 是什么意思???
不能使用frac->numerator来访问嘛?为什么可以frac->denominator?我试了 可以用frac->numerator来访问 --------------------编程问答-------------------- denominator是public
另外,numerator前面也没有加@protected。默认public --------------------编程问答-------------------- 为什么可以frac->denominator? denominator是public
不能使用frac->numerator来访问嘛?因为它是@protected的,因为默认是@protected的,只能本类子类直接问。
你可以参考博客http://blog.csdn.net/kindazrael/article/details/8062784
至于你 你试了可以用frac->numerator来访问
没用过这种写法不知道frac->numerator会不会调用下面的getter方法
-(int) numerator;//numerator 的getter 方法
你可以把这个方法注释掉再试
--------------------编程问答-------------------- 别把OOP的思想用在OBJC上,非常的不好用
补充:移动开发 , iPhone