1.@interface Circle :NSObject
借口关键字:interface @interface Circle : 名为Circle的新类定义的接口。 继承自 NSObject; 2{ }的理解 其中包含的是类的数据成员; 每次创建Circle对象时,都将包含这两个实例变量; 注意:fillcolor,bounds 称为类的数据成员;而Circle类对象的值称为实例变量。 3.方法声明 - (voID) setFillcolor : (Shapecolor) fillcolor ; 方法类型 返回类型 方法名 方法接受的参数 参数的类型 参数名4中缀符 利用中缀符,可将方法的名称和参数合在一起; 调用带一个参数的方法: [circle setFillcolor : kRedcolor]; 调用带两个参数的方法: [circle setFillcolor:kRedcolor setBounds:rect]; 5. 1.@implementation 一个编译器指令,表明将为某个类提供实现代码。 2.接着是各个方法的定义,不必按声明顺序出现,甚至可以实现声明中没有的方法。 3.@interface 和@implemention 间的参数名不同是正确的,且需要不同。 声明处:-(voID) setFillcolor :(Shapecolor) fillcolor; 实现处:-(voID) setFillcolor :(Shapecolor) c { fillcolor = c; } 在实现中,我们必需区分参数名称和实例变量的名称,最简单的方式就是我们将参数重新命名。 4.oc调用方法时,一个隐藏参数(self)将被传递给接收对象,这个参数引用的就是该接收对象。该参数传递过程是秘密和自动的,程序员不必实现。即类中的方法可以直接使用其实例变量的值。
6.实例化:为对象分配内存,并在这些内存中保存一些默认值。 向相应的类发送new消息,创建对应的对象。 new方法等价于alloc+init。 7.ID类型变量 ID可以接收指向任意类型的指针。 在未接受指针之前,不能调用方法。 8.实现类的三个步骤 类接口 类实现 使用类
类接口最为重要; 超类,数据成员,方法; 超类常使用NSObject,NSObject的子类。
9.
NSLog(@"%@“);
第一个@ 表示后面输出一个Nsstring类型的对象。
后一个%@ 表示oc的一个任意类型的对象。
10.
Car *car; //定义了一个Car对象的指针
car =[new];//生成了一个Car对象,包含5个空指针,并把地址赋给Car对象指针
new = alloc + init 若要改变初始化状态,对init进行重写。
11. init 对所有数据成员进行初始化。 有两个数据来源,一个来自超类,一个自身新增。if(self = [ super init ]) 此处调用消息[super init],让超类完成初始化; init方法返回值(ID类型)描述了被初始化的对象。 将[super init]的结果赋给self是oc的惯例,以防止超类在初始化过程中返回的对象不同于原先创建的对象。 12.区分new,init 函数
[engine new] = [[engine alloc]init] alloc 用后,内存会被清零 调用init后,让对象处于可用状态。 13. NSLog@"%@",engine); //在cocoa类中添加description方法就可自定义nslog()如何输出一个对象。 结果是:i have an engine
@interface Engine : NSObject { }//-(voID)print;-(Nsstring *)description;@end@implementation Engine-(Nsstring *)description{ return (@"i have an Engine");}//-(voID)print//{// NSLog(@"this is an Engine");//}@end //Engine14. 存取方法(accessor method) 用来读取或改变对像特定属性的方法 修改方法(mutator method) 用来改变对象状态的方法
是类的对象方法。 理解: setter:为对象中某属性赋值; getter:提供读取对象属性的途径; 对其他对象属性进行 *** 作时,应该始终使用对象所提供的存取方法,而不直接 *** 作其他对象的属性。 存取方法常成对出现,也可不成对出现。
使用规则: setter: set +属性名称 getter: 属性名称
不使用get前缀,因为其在cocoa中有特殊含义:把指针当作参数传入函数,来获取返回值。
对数组 *** 作存取方法的实质: 对数组 *** 作,需要数组首地址、数组下标;//数组首地址直接访问类的数据成员,数组下标是参数。 在方法中确定数组首地址、下标。
15.类的对象的方法的数据来源有两个 直接访问类的数据成员 参数 16.return 和exit 的区别
exit() 是一个函数,结束一个进程,将删除进程使用的内存空间,并返回错误信息。
exit 不需要考虑函数返回值类型;
exit (0)--表示正常退出,非0表示非常正退出。 不能轻易使用。
return 返回函数值,是关键字
16.父类指针可以指向子类对象
17.导入头文件 有两种不同的方法 尖括号的语句用来导入系统头文件; 带引号的语句则说明导入项目本地头文件;
本章总结:
面向过程式编程:函数第一,数据第二 面向对象编程 :数据第一,函数第二
消息,方法,self指针及其三者关系 向类发送new消息可创建新对象 好的软件实体,应对扩展开放,对修改关闭。 总结
以上是内存溢出为你收集整理的objective -c 特性笔记全部内容,希望文章能够帮你解决objective -c 特性笔记所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)