objective-C学习笔记(四)函数成员:方法(函数)
函数分为:
全局函数(C语言函数)
成员函数(OBJC方法):实例方法 “-” 和类方法“+”的区别
//这里要区别静态变量(类变量)、全局函数、常量的区别
OBJC里面,所有方法默认为公有方法。没有private或protected方法
实例方法:
可以访问:(self)实例方法、实例变量、实例属性
可以访问:类方法、静态变量
类方法:
可以访问:类方法、静态变量
不能访问:(self)实例方法、实例变量、实例属性,只能new一个对象才能访问
self指针:
编译器在编译实例方法的时候,自动new了一个本类的对象:self
类方法在编译的时候, 也会new一个self,可是,这个时候的self是类,而不是对象。
方法参数:
如果参数为值类型,则为传值方式;
如果参数类型为引用类型,则为传指针方式。
-(void)changeX : (int)x {} //单个参数的话,方法名既为外部参数名,调用的时候传值用;
//后面的参数是内部参数,函数内部计算用。
-(void)changeX:(int)x toY:(int)y{} //两个以上的参数的话,就需要单独命名外部参数(toY)。
-(void)changeX:(int)x toZ:(int)y{}//这个上面的方法就是不同的两个方法。
动态方法调用机制:消息分发表
id obj = [[BLNPoint alloc] init];
obj 不管是什么类型的对象(即内存没有分配一个栈,只是分配了一个堆),然后再在这个堆的消息分发表里找到所有的方法,可以直接使用。
和全局方法的区别:
全局方法在编译的时候,开辟的内存首地址就已经确定了,所以性能上非常快。
而动态方法调用是要在运行时,去查找这个obj的methodlists里查找对应的方法。会有一定的性能损耗。
objective-C学习笔记(四)函数成员:方法(函数)的更多相关文章
- 初探swift语言的学习笔记四(类对象,函数)
作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言 ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...
- python3.4学习笔记(四) 3.x和2.x的区别,持续更新
python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...
- 零拷贝详解 Java NIO学习笔记四(零拷贝详解)
转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...
- Flutter学习笔记(4)--Dart函数
如需转载,请注明出处:Flutter学习笔记(4)--Dart函数 Dart是一个面向对象的语言,所以函数也是对象,函数属于Function对象,函数可以像参数一样传递给其他函数,这样便于做回调处理: ...
- 官网实例详解-目录和实例简介-keras学习笔记四
官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras 版权声明: ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
随机推荐
- Java学习之InputStream中read()与read(byte[] b)
Java学习之InputStream中read()与read(byte[] b) 这两个方法在抽象类InputStream中都是作为抽象方法存在的, JDK API中是这样描述两者的: read() ...
- C语言入门(11)——switch分支语句
C语言提供了一种用于多分支选择的switch语句, 其一般形式为: switch(表达式) { case 常量表达式1:语句1; break; case 常量表达式2:语句2; break; .... ...
- C语言入门(10)——if分支语句
在我们写的函数中可以有多条语句,但这些语句总是从前到后顺序执行的.除了从前到后顺序执行之外,有时候我们需要检查一个条件,然后根据检查的结果执行不同的后续代码,在C语言中可以用分支语句实现,比如: if ...
- [LeetCode][Python]ZigZag Conversion
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com'https://oj.leetcode.com/problems/zigzag- ...
- asp.net DropDownList实现ToolTip功能
在绑定DropDownList控件时,可能出现绑定显示的文本过长以至于超过控件长度的内容看不到,这时候就需要使用ToolTip完成其功能,即鼠标放到相应选项后就可显示其完成内容. 首先,在页面引入jQ ...
- My97DaePicker 用js实现文本框日期相减求天数
<tr> <td align="center" style="background-color: #cccccc;font ...
- Objective-C中一些 值得程序员注意的地方(转载)
1.有关于BOOL陷井方面有如下方面: 关于BOOL条件语句中的比较最好是与NO的值来进行比较,因为BOOL的YES与NO值只是约定,并且编译器将BOOL认作8位二进制数据.若是不小心将一个长于1字节 ...
- BZOJ 1901: Zju2112 Dynamic Rankings( 树状数组套主席树 )
裸的带修改主席树.. 之前用BIT套Splay( http://www.cnblogs.com/JSZX11556/p/4625552.html )A过..但是还是线段树好写...而且快(常数比平衡树 ...
- Svn服务启动的两种方式
一.svn服务器启动 cmd命令行启动:vsvnserve -d –r 文档仓库路径 -d 后台执行 -r 版本库的根目录 二.Windows服务自动启动 利用xp.2000 以上的 ...
- codinglife主题小修改和有意思的博客挂件
这个主题很漂亮,不过为了迎合自己的喜好ヽ(•̀ω•́ )ゝ,修改了字号.阴影之类的小细节.同时下面还有我博客里面的两个有意思的小挂件,请向右边看(๑و•̀ω•́)و 1.主题修改:复制下面的css代码 ...