美文网首页程序员IT 森林
OC之02类与对象04对象行为与方法与函数参数

OC之02类与对象04对象行为与方法与函数参数

作者: 高俊 | 来源:发表于2015-10-26 11:27 被阅读142次


    对象的行为

    我们称对象的行为叫做方法。方法:方法名、参数、返回值(声明、实现)

    注意: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、类的声明必须放在前面,类的实现可以放在后面。

    相关文章

      网友评论

        本文标题:OC之02类与对象04对象行为与方法与函数参数

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