1,对象的存储细节,
1. 当创建一个对象的时候:Person *p1 = [Person new],做了三件事情:
1,申请堆内存空间;
2,给实例变量初始化;
3,返回所申请空间的首地址;
2. 实例变量保存在堆区
3. 对象方法保存在代码区
4. 一个类可以创建多个对象;
2,#pragma mark指令,
功能:对代码分组,方便代码查找和导航
使用格式: #pragma mark -
#waring 等待处理的功能,或者是未完成的功能
3,函数和对象方法的区别,
一. 对象方法:
-(void)run;
(1)对象方法的实现在@[email protected]中
对象方法的声明只能写在 @[email protected]中间
(2)对象方法都以-号开头
(3)对象方法只能由对象来调用
(4)函数属于整个文件,可以写在文件中的任何位置,包括@[email protected]中,但写在 @[email protected]会无法识别,函数的声明可以在main函数内部也可以在main函数外部。
(5)对象方法归对象所有
二. 函数:
void run(){
}
(1)所有的函数都是平行的
(2)函数不存在隶属关系
(3)使用的时候可以直接调用
(4)不可以访问对象中的成员变量
4,对象和方法之间的关系 ,
一,对象作为方法的参数
-(void) displayPerson:(Person *)person{
NSLog("姓名:%@",person->name);
}
二,对象作为方法的返回值
-(Person *)changePerson:(Person *)person{
person->name = @"唐僧";
return person;
}
5.课堂习题