这个程序的代码部分包括了处理你的特别的问题,他可以分离大多数的文件夹。在有些时候,你必须用程序来调用这个main函数。你的程序总是在这里开始执行。请看下面的程序部分
int main(int argc,char *argv[])
{
@autorelease{
Fraction *myFraction;
//create an instance of a Fraction and intialization it
myFraction = [Fraction alloc];
myFraction = [myFraction init];
//set fraction to 1/3
[myFraction setNumberator:1];
[myFraction setDenominator:3];
NSLog(@"The value of myFraction is:");
[myFraction print];
}
return 0;
}
在main的类部,你将要定义变量来调用这个myFraction在这行中。
Fraction *myFraction;
这句程序的意思是说myFraction是类Fraction的对象类型,myFraction将要存储一些值在它的新的Fraction类中。现在你将要有一个对象存储在Fraction,你需要创造一个,就像这你告诉工厂你需要制作一辆新车。下面这行代码:
myFraction = [myFraction alloc]
alloc是一个分配符。将要允许你分配内存到空间为了新的fraction。这个表达式将要发送一个信号给你创造这个Fraction类。
[Fraction alloc]
有要告诉Fraction类来申请alloc方法,而本身你不用定义这个alloc方法,那么他是来自于哪里呢?这个方法将要继承他的父类。现在让我们处理上面的题目。当你发送这个alloc信息给类模拟将要反馈一个例子。返回的值将要存储在你的myFraction变量中。这个alloc方法是初始化后为0.这并不意味着这个方法被初始化后被用到。你需要初始化对象在你分配他们之后。请看下面的代码:
myFraction = [myFraction init];
我们可以看到另一种方法初始化并且返回一个值,初始化这个对象,你要存储你返回的值在你的Fraction变量myFraction中。
myFraction = [[Fraction alloc]init];
内部的表达式的信息是:
[Fraction alloc]
这个表达式的结果是手动分配这个Fraction这个值。替代存储这个分配变量的结果,你将要直接分配这个init方法给它。所以,首先你将要分配一个新的Fraction然后你再初始化它。初始化并且分配myFraction这个变量。
[myFraction setNumberator:1]
[myFraction setDenominator:3]
这个第一个状态发送这个setNumberator:消息可以给myFraction。这个参数将要提供一个值为1.控制然后发送这个setNumberator方式来定义你自己的Fraction类。这个对象C系统知道他的方法来自于这个类Fraction。
看下面的代码:
NSLog(@"The value of myFraction is:");
[myFraction print];
调用出来的文本格式为:
The value of myFraction is:
下个例子将要展示你如何能用的其中一个fraction在你的程序中。
#import <Foundation/Foundation.h>
@interface Fraction:NSObject
-void print;
-void setNumerator:(int)n;
-void setDenomiantor:(int)d;
@end
@implementation Fraction
{
int numberator;
int denominator;
}
-void print
{
NSLog(@"%i%i",numberator,denominator);
}
-void setNumerator:(int)n
{
numberator = n;
}
-void setDenominator:(int)d
{
denominator = d;
}
int main(int argc,char* argv[])
{
@autorelease{
Fraction *frac1 = [[Fraction alloc]init];
Fraction *frac2 = [[Fraction alloc]init];
[frac1 setNumberator:2];
[frac1 setDenominator:3];
[frac2 setNumberator:3];
[frac2 setDenominator:7];
NSLog(@"First fraction is:");
[frac1 print];
NSLog(@"Second fraction is:");
[frac2 print];
}
return 0;
}
First fraction is:
2/3
Second fraction is:
3/7
*一个计算的类
现在让我们定义一个新的类。我们将要打算做一个计算的类,他有简单的四个计算功能你可以用到,加法、乘法、减法以及除法。相似于这些常规的计算,称之为计算器。所以这些方法让你设置计算一个特别的数值,清除它,并且检索它的值当你做的时候。下面的程序包含一个新的类定义以及测试程序。
#import <Foundation/Foundation.h>
//accumulator methods
-(void) setAccumulator:(double)value;
-(void) clear;
-(double) accumulator;
//arithmetic methods
-(void)add:(double)value;
-(void)subtract:(double)value;
-(void)multiply:(double)value;
-(void)divide:(double)value;
@implementation Calculator
{
double accumulator;
}
-(void)setAccumulator:(double)value
{
accumulator = value;
}
-(void)clear
{
accumulator = 0;
}
-(double)accumulator
{
return accumulator;
}
-(void)add:(double)value
{
accumulator+=value;
}
-(void)subtrack:(double)value
{
accumulator -= value;
}
-(void)multiply:(double)value
{
accumulator *= value;
}
-(void)divide:(double)value
{
accumulator /=value;
}
int main(int argc,char* argv[])
{
@autoreleasepool{
Caculator *deskCalc = [[Calculator alloc]init];
[deskCalc setAccumulator:100.0];
[deskCalc add:200];
[deskCalc subtract:100];
[deskCalc divide:15];
[deskCalc multiply:5];
NSLog(@"The result is%g",[deskCalc accumulator]);
}
return 0;
}