第3章 类、对象和方法(Objective-C程序设计)

3.2 实例和方法

请求一个类或者实例来执行某个操作时,就是在向它发送一条消息,消息的接收者称为接收者。

类方法:向某个类发送的消息,通常用于产生一个对象;

例如:

yourCar = [Car new];

向Car类发送一条消息,请求它卖给你一辆新车,获取到的对象将被存储到变量yourCar中。

实例方法:向某一具体对象发送的消息,对对象进行的操作。

3.3 类

类包含两部分,@interface,@implementation 部分

程序在逻辑上包含以下三个部分:

  @interface部分

  @implementation部分

  @program部分

@interface 部分用于描述类和累的方法;@implementation部分用于描述数据,并实现在接口中声明方法的实际代码。

3.4 @interface部分

定义新类时,首先需要告诉Objective-C编译器该类来自何处。也就是说,必须为它的父类命名。其次,还必须定义在处理该类的是对象时将要用到的各种操作或方法的类型。@interface部分中还会列出一些元素,称为属性。

这部分的一般格式类似于下列语句:

@interface NewClassName: ParentClassName
    propertyAndMethodDeclarations;
@end

在命名时,类名通常以大写字母开头;实例变量、对象以及方法的名称,通常以小写字母开头。

3.4.2 类方法和实例方法

-(void) print;
-(int) currentAge;

开头的负号(-)通知Objective-C编译器,该方法是一个实例方法。此外,只有一种选择,就是正号(+),它表示类方法。类方法是对类本身执行某些操作的方法,例如,创建类的新实例。(3.2章节)

1.返回值

声明新方法时,必须告诉Objective-C编译器该方法是否有返回值,如果有返回值,是哪种类型。需要将返回值放入开头的负号或正号后面的圆括号。

2.方法的参数

-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;

其中,- 表示方法类型, (void) 表示返回类型,setNumerator表示方法名,:表示方法有参数, (int) 表示参数类型,n表示参数名称。

3.5 @implemantation部分

一般格式:

@implementation NewClassName
{
    memberDeclarations;
}
    methodDefinitions;
@end

3.6 @program部分

必须在其中某一个地方有一个名为main的函数,通常情况下,这是程序开始执行的地方。

Fraction *myFraction;
myFraction = [Fraction alloc];
muFraction = [myFraction init];

第一行定义了Fraction类的一个对象myFraction;然后请求Fraction类执行alloc方法,以获得该类的新实例。alloc方法保证对象的所有实例变量都变成初始状态,然而,这并不意味着该对象已经进行了适当的初始化。因此在创建对象之后,还需要通过init对其进行初始化。

1 myFraction = [[Fraction alloc] init]; //两行可以合并

myFraction前面的*表示myFraction是Fraction对象的引用(或指针)。变量myFraction实际上并不存储Fraction的数据,而是存储了一个引用(其实是内存地址),表明对象数据在内存中的位置。

 

posted @ 2018-01-28 17:49  此女子  阅读(128)  评论(0编辑  收藏  举报