美文网首页
第五章 对象的初始化

第五章 对象的初始化

作者: 一个人的思考 | 来源:发表于2015-05-17 10:54 被阅读40次

第五章 对象的初始化

//********************************************************************************* //Tire.h 文件
#import <Cocoa/Cocoa.h>

@interface Tire : NSObject { float pressure;

float treadDepth; }

  • -  (id) initWithPressure:(float) pressure;

  • -  (id) initWithTreadDepth:(float) treadDepth;

  • -  (id) initWithPressure:(float) pressure treadDepth: (float) treadDepth;

  • -  (void) setPressure: (float) pressure;

  • -  (float) pressure;

  • -  (void) setTreadDepth:(float) treadDepth;

  • -  (float) treadDepth;

    @end // Tire

    //Tire.m 文件 #import "Tire.h"

    @implementation Tire

    - (id) init {

    if (self = [self initWithPressure:34 treadDepth: 20]) {

    }

//指定的初始化函数

}

- {

}

-

return (self);

} - {

}

return (self);
// initWithPressure

(id) initWithTreadDepth:(float) td

if (self = [self initWithPressure:34.0 treadDepth: td]) {

}

return (self);
// initWithTreadDepth

(id) initWithPressure:(float) p treadDepth: (float) td

// init
(id) initWithPressure:(float) p

if (self = [self initWithPressure:p treadDepth: 20.0]) {

{
if (self = [super init]) {

}

- {

pressure = p;

treadDepth = td; }

return (self);
// initWithPressure:treadDepth:

(void) setPressure: (float) p pressure = p;

} - {

}

- {

}

- {

}

- {

}

// setPressure (float) pressure

return (pressure); // pressure

(void) setTreadDepth:(float) td

treadDepth = td; // setTreadDepth

(float) treadDepth

return (treadDepth); // treadDepth

(NSString *) description

NSString *desc;
desc = [NSString stringWithFormat:

@"Tire: Pressure: %.1f TreadDepth: %.1f", pressure, treadDepth];

return (desc); // description

@end // Tire //*********************************************************************************

通常的写法:- (id)init {

if (self = [super ...

}

return (self) ; }

init]){

注:在自己的初始化方法中,需要调用自己的指定的初始化函数或者超类的指定的初始化函数。一定 要将超类的初始化函数的值赋给self 对象,并返回你自己的初始化方法的值。超类可能决定返回一个完全 不同的对象。

有些类包含多个以init 开头的方法:
例如 NSString 类中的一些初始化方法:
NSString *emptyString = [[NSString alloc] init] ; //返回一个空的字符串
NSString *string = [[NSString alloc] //返回一个字符串,其值为 25or624
NSString *string = [[NSString alloc] //使用指定路径上的文件中的内容初始化一个字符串

initWithFormat :@"%d or %d",25,624] ; initWithContentOfFile :@"/tmp/words.txt"] ;

初始化函数的规则:
1、若不需要为自己的类创建初始化函数方法,只需要alloc 方法将内存清 0 的默认行为,不需要担心

init 方法。 2、若构造一个初始化函数,则一定要在自己的初始化函数中调用超类的指定的初始化函数。 3、若初始化函数不止一个,则需要选定一个指定的初始化函数,被选定的方法应该调用超类的指定

的初始化函数。

相关文章

  • 《JAVA编程思想》学习笔记:第5章(初始化和清理)

    第五章、初始化和清理 5.1 构造器方法 特征:语法上无返回字段(比如void),并用于放置对象初始化的相关代码块...

  • Java编程思想第五章学习笔记

    Java编程思想第五章学习笔记 一、构造器 1.1、初始化 通过构造器,我们可以确保每个对象都会得到初始化。创建对...

  • 第五章 对象的初始化

  • Java编程思想第四版

    第二章 一切都是对象 第三章 操作符 第四章 控制执行流程 第五章 初始化与清理 初始化顺...

  • StringBuffer的用法

    1、StringBuffer对象的初始化 StringBuffer对象的初始化不像String类的初始化一样,Ja...

  • StringBuffer的用法

    1、StringBuffer对象的初始化 StringBuffer对象的初始化不像String类的初始化一样,Ja...

  • String类

    String类 1、String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,...

  • GeekBand OC 5. 初始化器与析构器

    初始化器(初始化) 对象初始化器:-(id) 类型初始化器:+(void) 析构器(释放) 对象析构器:-(voi...

  • Cpp:new and delete

    1、动态创建对象的初始化 2、动态创建对象的默认初始化 可以利用下列方式进行默认初始化 3、撤销动态创建对象 C+...

  • iOS 录音方法

    iOS 录音功能 初始化AVAudioRecorder 对象 初始化一个AVAudioRecorder 对象 参数...

网友评论

      本文标题:第五章 对象的初始化

      本文链接:https://www.haomeiwen.com/subject/ieokqttx.html