正在设置Objective-C实例变量值



我有以下代码:

@implementation Fraction   
{  
      int   numerator;  
      int   denominator;  
}  
    -(void) setNumerator: (int) n   
{  
    numerator = n;   
}  
    -(void) setDenominator: (int) d   
{  
    denominator = d;   
}
@end

我想知道为什么分子必须同时有"n"one_answers"numerator"?例如,为什么不能直接设置

-(void) setNumerator: (int) numerator

相当于:

-(void) setNumerator: (int) n
     numerator = n;
}

很抱歉,如果这是一个如此基本的问题,但我从一开始就没有编程经验。

setNumerator方法用于告诉Fraction对象在名为numerator的变量中应该保持什么值。正如"在这里,Fraction先生,请使用值n作为您的分子。"在该方法的实现中,代码必须处理两个不同的概念:包含新值的参数变量n和必须更改为n-中的值的实例变量分子;因此需要两个不同的名称。线路

numerator = n;

字面意思是"将n中的数字复制到变量分子。"

请记住,交易分为两半。假设我是Fraction对象,你想让我把分子设置为4。你说"把你的分子设置为4,或者setNumerator(4)",这很好,因为你是人,你可以选择你想要的任何数字。

但作为一个低级的Objective-C对象,我所有的代码都是在过去编写的;它是在4值在你眼中闪烁之前写的。因此setNumerator()的代码必须是泛型的;它必须写为"将分子设置为人类想要的任何值——称之为n"。请记住,我的实际变量分子对您隐藏;你所能做的就是调用我的方法,由我来设置变量。

这就是为什么编写方法时必须为值使用抽象名称n的原因,因为编写方法时,值是未知的。

我认为您可能正在寻找的概念称为属性。看看这里,这里,这里。属性将允许您设置成员值,而不必命名参数或调用方法。您只需为属性指定一个值。

对于函数调用,您必须命名要传递到函数中的参数,以便将其分配给类成员。

最新更新