Objective-C方法与函数的区别
Objective-C方法与函数的区别
- 方法是唯对象所有
- 函数是不依赖于对象存在的
| 方法 | 函数 |
|---|---|
| - (void)test; | void test(); |
| 方法是以减号 - 开头 | - |
| 类型要用()括起来 | - |
| 声明必须写在@interface-@end之间,实现必须写在@implementation-@end之间 | 可以写在文件中的任意位置 |
| 只能由对象来调用 | - |
| 可以直接访问成员变量 | 不可以直接访问成员变量 |
Objective-C成员方法与类方法的区别
- 成员方法是以减号 “-” 开头
- 类方法是以加号 “+” 开头
| 成员方法 | 类方法 |
|---|---|
| - (void)test; | + (void)test; |
- 成员方法必须使用对象调用
- 类方法可以直接使用类名调用
总结
- OC成员方法就好比Java里的非静态方法,需要使用对象调用
- OC类方法就好比Java里的静态方法(static),可以使用类名直接调用
- 一般工具类使用类方法比较多
带有返回值的方法
Objective-C
声明
@interface NumUtil : NSObject
- (double)pi;
@end实现
@implementation NumUtil
- (double)pi
{
return 3.14;
}
@end调用
NumUtil *n = [NumUtil new];
NSLog(@"%f",[n pi]);
Java
Java类
大概是这样
public class NumUtil{
public double pi(){
return 3.14;
}
}调用
NumUtil numUtil = new NumUtil;
numUtil.pi();
带有一个参数的方法
Objective-C
声明
@interface NumUtil : NSObject
- (int)square:(int)num;
@end实现
@implementation NumUtil
- (int)square:(int)num;
{
return num * num;
}
@end调用
NumUtil *n = [NumUtil new];
NSLog(@"%d",[n square:2]);
Java
Java类
大概是这样
public class NumUtil{
public int square(int num){
return num * num;
}
}调用
NumUtil numUtil = new NumUtil;
numUtil.square(2);
带有多个参数的方法
Objective-C
声明
@interface NumUtil : NSObject
- (int)addNum1:(int)num1 addNum2:(int)num2;
@end实现
@implementation NumUtil
- (int)addNum1:(int)num1 addNum2:(int)num2
{
return num1 + num2;
}
@end调用
NumUtil *n = [NumUtil new];
NSLog(@"%d",[n addNum1:1 addNum2:2]);
Java
Java类
大概是这样
public class NumUtil{
public int add(int num1, int num2){
return num1 + num2;
}
}调用
NumUtil numUtil = new NumUtil;
numUtil. add(1, 2);
注意
Objective-C方法名的问题
OC的方法名,和Java有些不同,Java很好理解
OC也不难理解,只是习惯了Java的那种命名方式,看到OC有点不适应举个例子:
- (double)pi;
这个很好理解,方法名就是 pi
- (int)square:(int)num;
带参数的方法名有点特殊了
首先说冒号“:”,冒号后面的一定是参数
可以理解成,有几个冒号,就有几个参数
把空格后面到参数前面的内容拼起来(不算类型),就是方法名
那么,这个方法的方法名就是square:,(注意:是有冒号的)- (int)addNum1:(int)num1 addNum2:(int)num2;
根据上面的方法
这个方法的方法名就是 addNum1:addNum2:其实很好理解,就是把每个参数的描述加上冒号拼接到一块,组成方法名,方便阅读
XCode查看方法名也很方便
Objective-C方法与函数的区别的更多相关文章
- python 全栈开发,Day113(方法和函数的区别,yield,反射)
一.方法和函数的区别 面向对象 初级 class StarkConfig(object): def __init__(self,model_class): self.model_class = mod ...
- Scala方法定义,方法和函数的区别,将方法转换成函数
1. 定义方法和函数 1.1. 定义方法 方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归函数,必须指定返回类型 1.2. 定义函数 1.3.方法和函数的区别 在函数式编程语言中,函数是 ...
- python中方法与函数的区别与联系
今天huskiesir在对列表进行操作的时候,用到了sorted()函数,偶然情况下在菜鸟教程上看到了内置方法sort,同样都可以实现我对列表的排序操作,那么方法和函数有什么区别和联系呢? 如下是我个 ...
- OC-常见错误 方法与函数的区别
对象方法: 1,减号 - 2,声明必须写在@interface和@end之间 实现必须写在@implement 和@end之间 3,对象方法只能由对象来调用 4,对象方法归类.对象所有 函数: 函 ...
- golang方法和函数的区别
- Scala 方法和函数
package com.bigdata // /** Scala 方法和函数:Scala中既有函数也有方法,大多数情况下我们都可以不去理会他们之间的区别. * * 方法:Scala 中的方法跟 Jav ...
- Scala学习笔记(三)—— 方法和函数
1. 方法 方法使用 def 定义: def 方法名(参数名:参数列表,…) :返回值类型 = { 方法结构体 } scala> def add(x : Int ,y : Int):Int = ...
- 第1节 Scala基础语法:5、6、7、8、基础-申明变量和常用类型,表达式,循环,定义方法和函数
4. Scala基础 4.1. 声明变量 package cn.itcast.scala object VariableDemo { def main(args: Array[Strin ...
- 类属性与对象实现,init方法的作用,绑定方法,绑定方法与普通函数的区别,继承,抽象与继承,派生与覆盖
今日内容: 1.类属性与对象属性 2.init方法的作用 3.绑定方法 4.绑定方法与普通函数的区别(非绑定方法) 5.继承 6.抽象与继承 7.派生与覆盖 1.类属性与对象属性 类中应该进存储所有对 ...
随机推荐
- [LeetCode] Number of Distinct Islands 不同岛屿的个数
Given a non-empty 2D array grid of 0's and 1's, an island is a group of 1's (representing land) conn ...
- [LeetCode] Distribute Candies 分糖果
Given an integer array with even length, where different numbers in this array represent different k ...
- seacms6.5 注入漏洞1
---恢复内容开始--- 需要开启/data/admin/isapi.txt ,当里面的数值为1时,就可以报错注入 存在漏洞的页面:zyapi.php function cj() { global ...
- 最快的3x3中值模糊
10.1国庆后,知名博主:laviewpbt http://www.cnblogs.com/Imageshop/ 发起了一个优化3x3中值模糊的小活动. 俺也参加其中,今天博主laviewpbt ...
- 树莓派控制HC-SR04超声波模块测距(新手向+C语言向)
因为作业要求使用c语言代码,这里先附上一段摘自网上的代码 感谢KalaerSun的c语言代码,摘自https://blog.csdn.net/qq_25247589/article/details/6 ...
- [SDOI2008]Sue的小球
题目描述 Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海盗,而是要收集空中漂浮的彩蛋,Sue有一 ...
- 2015 多校联赛 ——HDU5375(dp)
Sample Input 2 00?0 1 2 4 8 ???? 1 2 4 8 Sample Output Case #1: 12 Case #2: 15 ?部分可以是0 or 1,将二进制 ...
- 【NOIP2013】传染病控制
题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染病,难以准确判别病毒携带 ...
- 例10-11 uva11181
题意:n个人去逛超市,第i个人买东西的概率是pi,,计算每个人实际买了东西的概率 思路: 搜索标处理所以的情况,得出所有概率和all(开始天真的以为是1 - -,就说怎么案例看着怪怪的),用tt[i] ...
- [Noi2015]荷马史诗
来自FallDream的博客,未经允许,请勿转载,谢谢. 追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的 ...