A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ★彬★卍囧神   /  2014-9-5 10:40  /  6040 人查看  /  32 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

函数独立存在 方法是类和对象的一部分
回复 使用道具 举报
答:这个我的博客有写到哦:http://www.cnblogs.com/yanyuewen/p/3984990.html
回复 使用道具 举报
主要的区别我感觉是编程思维和思考方式的不同。也是OO 思想和面向过程的不同。
函数侧重点在实现功能,方法其实是种行为,行为依赖于对象,正因为这种行为,给OO思想(面向对象编程的语音JAVA C++ OC C#)提供了 多态 继承的空间,行为是特定的,只是方式不同(举例 吃饭是种行为,人和其动物方式不一样,但行为一样,具备多态的扩展)
回复 使用道具 举报
1.使用场合不同。面向过程的语言中可以有函数,比如C语言,面向对象的语言中也有函数,比如OC, java,c++.但是方法只会出现在面向对象的语言中。
2.定义方式不同。函数的定义是  返回值类型 函数名(形参1,形参2...)
                 方法(OC中)的定义是  -(返回值类型)方法名:(形参类型)形参1 (形参类型)形参2  当然如果是类方法的话,前面是+号
3.在OC中,函数可以定义在任意在位置(@interface @end除外).而方法必须定义在@implementation@end之间。
4.方法分类方法和对象方法,函数没有这么分
5.方法是在类中开辟存储空间的,对象找方法是通过isa指针,并把方法封装成SEL类型。而函数是在单独的区域中开辟的,函数名就是函数的指针,即函数的入口地址
6.OC中苹果官方类方法的名字比较长,有时候是个句子体现实际意义。但是函数名不像方法名那样,一般是几个单词
7.OC中set方法和get方法,dealloc方法,init方法等有些每个类都会有的方法,但函数每个都会有的是main()函数
8.OC中方法名中也有可能包含:,而函数中只能是数字,字母,下划线
9.方法可以继承,但函数不可以
以上是个人理解。有错误还请大家指出
回复 使用道具 举报
函数可以独立存在,方法要依托类来存在
回复 使用道具 举报
本帖最后由 AngleMGG 于 2014-9-23 00:38 编辑

形式上:在C++中,方法和函数在形式上并没有什么区别,方法通常称为成员函数,但在OC中,方法也可以称为类内的函数,通常以—或+开头,而函数则不需要。
引用上:不管是C++或者是OC中,方法的引用必须建立在对象实体上,通过点语法或者其他方式实现引用,而函数则直接通过函数名调用,可以在任意位置引用函数。

理解有点粗浅:)
回复 使用道具 举报
本帖最后由 longshaocn 于 2014-9-26 22:46 编辑

1.方法的定义需要以减号开头,而函数不需要;
2.方法的声明和实现需要在@interface   @end和@implementation @end之间,但是函数不需要,函数定义可以在在任何位置;
3.方法的调用只能是oc的对象,函数的调用不局限与对象。4.方法的声明中,返回类型需要用小括号括住,但函数不需要。
回复 使用道具 举报
用对象调用的叫方法,直接调函数名的叫函数。方法偏重于类,也就是面向对象设计的,注重每个函数的功能所以叫方法;而函数偏重于面向过程,用来实现某个具体的功能。
回复 使用道具 举报

第一题:请你说说函数与方法的区别?
方法
1.对象方法都是以减号 -
2.对象方法的声明必须写在@interface和@end之间
   对象方法的实现必须写在@implementation和@end之间
3.对象方法只能由对象来调用
4.对象方法归类\对象所有

函数
1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
2.函数调用不依赖于对象
3.函数内部不能直接通过成员变量名访问某个对象的成员变
回复 使用道具 举报
函数是面向过程的,方法是面向对象的
函数直接在程序文件里定义和实现,方法在类的声明中定义,在类的实现中实现。
函数的定义: 返回值类型  函数名(参数类型1,参数类型2,...);
方法的定义:-(或+)(返回值类型) 方法名:(参数类型1)参数1 方法名2:(参数类型2)参数2 ......

回复 使用道具 举报
lypin 中级黑马 2014-10-13 19:41:53
31#
在java中函数和方法是一样的
回复 使用道具 举报
函数是一个整体,而方法只是函数的一部风
回复 使用道具 举报
潘多拉 发表于 2014-9-5 11:29
在java中函数和方法是一回事吧,函数一般是在c中称呼为函数,而在Java中将函数统称为了方法吧 ...

同意+1~~~~~~~~~~~~~~
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马