0

我是 obj-c 编程的新手,我读过 Kochan 的书。

这是书中的代码

-(void) add:(Fraction *) f 
{
  numerator = numerator *f.denominator + denominator * f.numerator
  denominator = numerator * f.denominator

}

我知道'f'指向分数,但我不明白为什么使用f.numerator或f.denominator的内部方法。

有人可以为我解释吗?我的第一语言不是英语。所以请简单点。

编辑:嗯,在数学中我们使用 (a/b)+(c/d) =(ad+bc)/(bd),我知道这个公式。我只是不明白为什么在星号之后为什么要放 f 点。我想知道 f 指向哪里。

*编辑*2

我仍然对括号中的单词“(Fraction *)f”有一点问题

在书中说“这表明 add:method 的参数是对 Fraction 类中的对象的引用”

括号中的 Fraction 是否指向 Fraction 类?或者“f”这个词是指向分数类?

我不明白这句话。你能给我更多的细节吗?

编辑 3

里面添加方法。为什么只使用一个 f 点?我的意思是看起来这个

numerator = numerator *f.denominator + denominator * f.numerator

为什么我们不能编写这样的代码。

numerator = f.numerator *f.denominator + f.denominator * f.numerator

我不明白这部分。

谢谢。

4

2 回答 2

1

它似乎是Fraction班级的公共财产。fFraction类的一个实例。numerator并且denominatorFraction类中的公共属性。点符号等价于[f numerator]

编辑

这是使用备用消息发送语法重写的代码。

-(void) add:(Fraction *) f 
{
  denominator = numerator * [f denominator];
  numerator = numerator * [f denominator] + denominator * [f numerator];
}

编辑2. Fraction 类标题可能看起来像这样。

class Fraction : NSObject

// methods
// ...

@property (nonatomic, strong) int numerator;
@property (nonatomic, strong) int denominator;

// other properties
// ...

end
于 2012-07-28T05:39:21.150 回答
0

numerator并且denominatorFraction, 点 "."的两个属性。可用于通过使用f.numerator 或. 来获取和设置属性f.denominator

于 2012-07-28T05:39:10.740 回答