OC之02类与对象04对象行为与方法与函数参数
对象的行为
我们称对象的行为叫做方法。方法:方法名、参数、返回值(声明、实现)
注意:1、方法的声明放在@interface与@end之间
2、方法的声明不能写在大括号里面
3、不必写上大括号、直接在行为后面写上分号
4、只要你所定义的方法是对象方法(行为)就必须是已建好开头
5、OC方法中任何数据类型都必须用小括号括住
下面我就将一段写好的代码以图片的形式呈现给大家:
这一段代码就是方法的声明其中- (void)run;就是方法的声明 注意书写规范就是在减号与括号之间要有空格键个开
这一段就是方法的实现当然我们只是演示一下效果以后可能在方法的实现中插入动画。
方法与成员变量
方法就是谋个对象的行为,而成员变量是我们对象的属性。
方法是写在大括号外面的,成员变量是写在大括号里面的
方法是必须要有声明与实现的,成员变量是不需要的
对象简单的内存分析
在使用类创建对象之前,类在我们内存中也会占据我们的存储空间,该存储空间是用来放置一些方法的,而且这些方法只会被编译一次
每个对象中都有一个自带指针isa,而这个指针的 作用就是,指向他所对应的类。
当我们使用我们自定义的之后怎去调用该对象的某一个方法时,这个isa指针就会去调用它所对应的类的方法。
注意:成员变量是每一个对象所独有的,而我们的方法也是独有的
对象与函数参数
OC方法中与函数由于有很大的区别
OC中的对象不会自动回收的
这是关于两个的区别在以后我们会详细讲他们的区别
当我们只执行test函数的时候,我们不会改变我们对象里面的方法值的,
只有我们运用指针的时候才会改变我们对象里面的方法值
在上面的函数中,当我们的函数调用完毕是,会自动消除函数调用时分配的存储空间
这是我们将函数调用完时,内存的存储情况当我们的test2函数调用完时,他不会将第一个对象的值改变,而是有创建了一个新的对象,并且赋值
常见错误
这个图是苹果官方给出的图样,这个图充分说明了,@interface与@implementation之间的关系
2、方法的实现只能写在@implementation中,其他任何地方都不能写
3、方法声明必须写在@interface里
4、在OC中不允许我们一开始就给成员变量赋值所以下图是错误的
5、不能虽百年将成员变量当做C语言中的变量来使用
6、类的声明必须放在前面,类的实现可以放在后面。