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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

现在推出每日一题按照格式回答合格的加技术分或者金币。小伙伴们帮你们的回答打出来吧,让我们共同进步!!!


第一题:请你说说函数与方法的区别?

答:XXX(有代码的插入代码模式)。

注:答出你的理解就行,复制抄袭不算。

参与人多将持续这个互动


32 个回复

正序浏览
潘多拉 发表于 2014-9-5 11:29
在java中函数和方法是一回事吧,函数一般是在c中称呼为函数,而在Java中将函数统称为了方法吧 ...

同意+1~~~~~~~~~~~~~~
回复 使用道具 举报
函数是一个整体,而方法只是函数的一部风
回复 使用道具 举报
lypin 中级黑马 2014-10-13 19:41:53
31#
在java中函数和方法是一样的
回复 使用道具 举报
函数是面向过程的,方法是面向对象的
函数直接在程序文件里定义和实现,方法在类的声明中定义,在类的实现中实现。
函数的定义: 返回值类型  函数名(参数类型1,参数类型2,...);
方法的定义:-(或+)(返回值类型) 方法名:(参数类型1)参数1 方法名2:(参数类型2)参数2 ......

回复 使用道具 举报

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

函数
1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
2.函数调用不依赖于对象
3.函数内部不能直接通过成员变量名访问某个对象的成员变
回复 使用道具 举报
用对象调用的叫方法,直接调函数名的叫函数。方法偏重于类,也就是面向对象设计的,注重每个函数的功能所以叫方法;而函数偏重于面向过程,用来实现某个具体的功能。
回复 使用道具 举报
本帖最后由 longshaocn 于 2014-9-26 22:46 编辑

1.方法的定义需要以减号开头,而函数不需要;
2.方法的声明和实现需要在@interface   @end和@implementation @end之间,但是函数不需要,函数定义可以在在任何位置;
3.方法的调用只能是oc的对象,函数的调用不局限与对象。4.方法的声明中,返回类型需要用小括号括住,但函数不需要。
回复 使用道具 举报
本帖最后由 AngleMGG 于 2014-9-23 00:38 编辑

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

理解有点粗浅:)
回复 使用道具 举报
函数可以独立存在,方法要依托类来存在
回复 使用道具 举报
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.方法可以继承,但函数不可以
以上是个人理解。有错误还请大家指出
回复 使用道具 举报
主要的区别我感觉是编程思维和思考方式的不同。也是OO 思想和面向过程的不同。
函数侧重点在实现功能,方法其实是种行为,行为依赖于对象,正因为这种行为,给OO思想(面向对象编程的语音JAVA C++ OC C#)提供了 多态 继承的空间,行为是特定的,只是方式不同(举例 吃饭是种行为,人和其动物方式不一样,但行为一样,具备多态的扩展)
回复 使用道具 举报
答:这个我的博客有写到哦:http://www.cnblogs.com/yanyuewen/p/3984990.html
回复 使用道具 举报
函数独立存在 方法是类和对象的一部分
回复 使用道具 举报
第一题:请你说说函数与方法的区别?
这里说的是OC中的函数与方法
1.编写区域:
方法只能写在@implementation @end之间,
  而函数可以写在文件中的任意位置(@interface @end 之间除外);
2.调用:
对象方法只能由对象来调用,函数的调用不依赖于对象,对象方法也可以调用函数;
3.访问成员变量:
  函数内部不能直接通过成员变量名访问某个对象的成员变量。
回复 使用道具 举报 0 1
happyto1021 来自手机 中级黑马 2014-9-10 15:21:38
19#
函数一般是面向过程时的叫法, 方法一般是面向对象时的叫法。
回复 使用道具 举报
在C语言中只有函数,方法只能在主函数main中调用
在OC中方法需在@interface  @end这种声明,@implementation @end中实现。有类方法和对象方法,类方法以+号开头后跟括号(只有数据类型放在放在括号中),对象方法以-号开头,而函数是:数据类型 名称 ()
回复 使用道具 举报
在C中只有函数,没有方法。在OC中,两个都可以存在,不在方法必须要声明必须在@interface  @end中。实现必须放在@implementation  @end中。而函数没有这个限制。知识不能放在@interfce  @end中就行。而且函数与方法很好区分。方法以减号开头,函数后面则有小括号。
回复 使用道具 举报
我们知道在OC方法中对象和类两种,对象和类没有本质的区别,只是书写方式不同,一个以减号开头,一个以加好开头,其他地方一致。在调用的时候常常用指针调用,通过地址进行调用!不要纠结对象方法和类方法的区别,2者本质一致。学习编程语言不要太纠结,了解其运用方式即可!自己见解,供参考!
回复 使用道具 举报
函数和方法是一个东西,c++里叫函数,java里叫方法,主要是从面向结构和面向对象来的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马