黑马程序员技术交流社区
标题: 函数和对象方法的区别 [打印本页]
作者: foolishlovepig 时间: 2016-1-6 18:28
标题: 函数和对象方法的区别
//
// main.m
// 总结.2day
//
// Created by 晓 &zerone on 16/1/6.
// Copyright © 2016年 xiao. All rights reserved.
//
/*
1.对象的存储细节:
① 在使用new这个方法的时候就会把类的代码加载到代码区(注意:只会在第一次的时候进行加载);
② 在类的代码加载完成以后会在堆区开辟一块内存空间,然后根据类的模板创建一个对象存在堆里面开辟出来的内存空间,这个对象里面含有的一个isa指针,它指向类在代码区的地址;
③ 把创建好的对象传给在栈区定义好的变量,这个变量要用类名取进行定义;
2.#pragma mark指令:
格式:#pragma mark - 自定义名称(一般为类的名字,主要就是要便于自己的理解)
3.函数和对象方法的区别:
1)相同点.
①.都是把一段代码封装起来,表示一个独立的功能;
②.函数和方法只要被调用了,就会自动执行里面的代码;
2)不同点.
①.语法不一样;
例如:
函数: void sum (int num1, int num2);
方法: -(void)sum:(int)num1 andSum:(int)num2;
②.定义的位置不一样;
函数除了在函数内部和@interface的大括号里面,其他地方都可以写,当然函数还可以写在类中,虽然可以,但是没有什么意义,所以不建议写;
而OC的方法声明只能写在@interface 和@end之间,大括号之外;实现只能写在@implementation和@end之间;
③.调用的方式不一样;
函数都可以随意调用,只要先声明了;而方法只能通过这个方法的对象来调用;(个人觉得,之所以只能通过对象来调用是因为,对象的方法存在代码区的类中,而只有通过创建的对象才能得到方法的地址,不然无法使用方法)
④.关系也不一样
函数是独立的,不属于谁;
方法是属于类的,有一个归属;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |