黑马程序员技术交流社区
标题:
每日活动答题加金币or技术分!!!
[打印本页]
作者:
★彬★卍囧神
时间:
2014-9-5 10:40
标题:
每日活动答题加金币or技术分!!!
现在推出每日一题
按照格式回答合格的加技术分或者金币。
小伙伴们帮你们的回答打出来吧,让我们共同进步!!!
第一题:请你说说函数与方法的区别?
答:XXX(有代码的插入代码模式)。
注:答出你的理解就行,复制抄袭不算。
参与人多将持续这个互动
作者:
陨石
时间:
2014-9-5 10:48
函数有独立的内存空间
方法相当于类内部的成员,就像结构成员一样,是在类的内存空间里,统一分配的。
函数相当于静态的方法,声明和实现需要分开。
方法可以在类的作用域里声明并实现,然后当成成员来接接调用。
也可以在实例类的时候,将传给类的参数分配给方法。
函数得通过函数名来调用,要么就通过指针才可以。
不知道我理解的对不对。
作者:
cjfire
时间:
2014-9-5 10:56
函数可以在除了interface之外的任何地方进行定义。
方法则属于类。由于这个特性,方法可以用self
函数可以用指针进行调用,而方法可以用SEL传递消息
作者:
Rainyday
时间:
2014-9-5 10:57
一个东西,用对象调用的叫方法,直接调函数名的叫函数
方法是oop中的内容 C语言没有方法 它是面向过程的
作者:
zhuiyi007
时间:
2014-9-5 11:11
方法是以类和对象为基础的,没有类和对象,就没有方法,调用方法时同样需要用类或者对象才能成功调用。而函数则仅仅封装了一段代码,可以随时调用,与类和对象没有任何关系,谁都可以调用
作者:
xiao1015hp
时间:
2014-9-5 11:17
函数都有参数 方法参数列表为空,达到其既定的效果就行
作者:
潘多拉
时间:
2014-9-5 11:29
在java中函数和方法是一回事吧,函数一般是在c中称呼为函数,而在Java中将函数统称为了方法吧
作者:
★彬★卍囧神
时间:
2014-9-5 11:43
OC对象与函数有着本质的区别:
(1)方法的实现只能写在@implementation··@end中,对象方法的声明只能写在@interface···@end中间
(2)对象方法都以-号开头,类方法都以+号开头
(3)对象方法只能由对象来调用,类方法只能由类来调用,不能当做函数一样调用
(4)函数属于整个文件,可以写在文件中的任何位置,包括@implementation··@end中,但写在@interface···@end会无法识别,函数的声明可以再main函数内部也可以在main函数外部。
(5)对象方法归类\对象所有
(6)函数调用不依赖与对象
(7)函数内部不能直接通过成员变量名访问对象的成员变量
作者:
超越自己
时间:
2014-9-5 11:55
在C语言中,函数其最重要的功能就是用来封装一些完成独立功能的代码块 例如
main
复制代码
是c语言言程序的入口函数,当程序启动的时候首先调用main函数。而方法,可以调用函数,来实现方法本身。
作者:
马嘉
时间:
2014-9-5 13:31
在java语言中,函数和方法没有本质区别,函数和方法,是将一些属性和方法封装在类中,在想外界提供服务。
作者:
徐闯楠
时间:
2014-9-7 14:36
C语言中,函数偏重于面向过程,函数的形式分无参和有参两类.无参函数不带回或带回函数值.有参函数在调用和被调用间有数据传递(变量);
有参函数void haha(int x,int y)
{
}
无参函数void haha()
{
}
方法偏重于类,也就是面向对象设计的,其调用则是通过类的对象
作者:
Faith_Yee
时间:
2014-9-7 21:50
我觉得吧,方法可以通过函数实现的,函数也可实现某一方法。而面向 “类”而言,函数在函数所在的类里面调用,该函数就叫做函数;如果跨类调用,且该函数不是全局函数,那么该函数就是该类的方法。
作者:
longshaocn
时间:
2014-9-7 22:28
1.函数范围是整个文件,只要声明随时随地可以调用;方法属于对象,只有对象可以调用;
2.函数的定义和声明在任意地方都行,方法的声明只能在@infterface 和@end 之间,实现是在@implementation 和@end之间;
在OC中,我是这样理解的!
作者:
himym2005
时间:
2014-9-7 23:24
没有本质区别,函数一般用在面向过程的语言中。实现一些面向过程的功能。而方法是面向对象的语言中特有的,它具有面向对象的一些特性。其实在一定意义上他们是相同的,都是为了实现不同平台下的一些类似的功能。
作者:
kingloveyy
时间:
2014-9-8 15:51
函数和方法是一个东西,c++里叫函数,java里叫方法,主要是从面向结构和面向对象来的
作者:
王绍明
时间:
2014-9-8 21:16
我们知道在OC方法中对象和类两种,对象和类没有本质的区别,只是书写方式不同,一个以减号开头,一个以加好开头,其他地方一致。在调用的时候常常用指针调用,通过地址进行调用!不要纠结对象方法和类方法的区别,2者本质一致。学习编程语言不要太纠结,了解其运用方式即可!自己见解,供参考!
作者:
duzhong
时间:
2014-9-9 14:57
在C中只有函数,没有方法。在OC中,两个都可以存在,不在方法必须要声明必须在@interface @end中。实现必须放在@implementation @end中。而函数没有这个限制。知识不能放在@interfce @end中就行。而且函数与方法很好区分。方法以减号开头,函数后面则有小括号。
作者:
眼瞳╄渲染繁华
时间:
2014-9-10 15:01
在C语言中只有函数,方法只能在主函数main中调用
在OC中方法需在@interface @end这种声明,@implementation @end中实现。有类方法和对象方法,类方法以+号开头后跟括号(只有数据类型放在放在括号中),对象方法以-号开头,而函数是:数据类型 名称 ()
作者:
happyto1021
时间:
2014-9-10 15:21
函数一般是面向过程时的叫法, 方法一般是面向对象时的叫法。
作者:
smilezsm
时间:
2014-9-19 11:11
第一题:请你说说函数与方法的区别?
这里说的是OC中的函数与方法
1.编写区域:
方法只能写在@implementation @end之间,
而函数可以写在文件中的任意位置(@interface @end 之间除外);
2.调用:
对象方法只能由对象来调用,函数的调用不依赖于对象,对象方法也可以调用函数;
3.访问成员变量:
函数内部不能直接通过成员变量名访问某个对象的成员变量。
作者:
zzyy3321
时间:
2014-9-19 11:21
函数独立存在 方法是类和对象的一部分
作者:
闫跃文
时间:
2014-9-22 15:15
答:这个我的博客有写到哦:http://www.cnblogs.com/yanyuewen/p/3984990.html
作者:
卧龙小
时间:
2014-9-22 16:24
主要的区别我感觉是编程思维和思考方式的不同。也是OO 思想和面向过程的不同。
函数侧重点在实现功能,方法其实是种行为,行为依赖于对象,正因为这种行为,给OO思想(面向对象编程的语音JAVA C++ OC C#)提供了 多态 继承的空间,行为是特定的,只是方式不同(举例 吃饭是种行为,人和其动物方式不一样,但行为一样,具备多态的扩展)
作者:
王庆功
时间:
2014-9-22 17:21
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.方法可以继承,但函数不可以
以上是个人理解。有错误还请大家指出
作者:
songxing10000
时间:
2014-9-22 20:43
函数可以独立存在,方法要依托类来存在
作者:
AngleMGG
时间:
2014-9-23 00:35
本帖最后由 AngleMGG 于 2014-9-23 00:38 编辑
形式上:在C++中,方法和函数在形式上并没有什么区别,方法通常称为成员函数,但在OC中,方法也可以称为类内的函数,通常以—或+开头,而函数则不需要。
引用上:不管是C++或者是OC中,方法的引用必须建立在对象实体上,通过点语法或者其他方式实现引用,而函数则直接通过函数名调用,可以在任意位置引用函数。
理解有点粗浅:)
作者:
longshaocn
时间:
2014-9-26 22:45
本帖最后由 longshaocn 于 2014-9-26 22:46 编辑
1.方法的定义需要以减号开头,而函数不需要;
2.方法的声明和实现需要在@interface @end和@implementation @end之间,但是函数不需要,函数定义可以在在任何位置;
3.方法的调用只能是oc的对象,函数的调用不局限与对象。4.方法的声明中,返回类型需要用小括号括住,但函数不需要。
作者:
Kevinneo
时间:
2014-9-26 23:23
用对象调用的叫方法,直接调函数名的叫函数。方法偏重于类,也就是面向对象设计的,注重每个函数的功能所以叫方法;而函数偏重于面向过程,用来实现某个具体的功能。
作者:
水了个淼
时间:
2014-9-27 08:48
第一题:请你说说函数与方法的区别?
方法
1.对象方法都是以减号 -
2.对象方法的声明必须写在@interface和@end之间
对象方法的实现必须写在@implementation和@end之间
3.对象方法只能由对象来调用
4.对象方法归类\对象所有
函数
1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
2.函数调用不依赖于对象
3.函数内部不能直接通过成员变量名访问某个对象的成员变
作者:
oassuperhan
时间:
2014-9-27 09:17
函数是面向过程的,方法是面向对象的
函数直接在程序文件里定义和实现,方法在类的声明中定义,在类的实现中实现。
函数的定义: 返回值类型 函数名(参数类型1,参数类型2,...);
方法的定义:-(或+)(返回值类型) 方法名:(参数类型1)参数1 方法名2:(参数类型2)参数2 ......
作者:
lypin
时间:
2014-10-13 19:41
在java中函数和方法是一样的
作者:
邓熊财
时间:
2015-3-25 16:06
函数是一个整体,而方法只是函数的一部风
作者:
Rocky_wlw
时间:
2018-1-25 07:55
潘多拉 发表于 2014-9-5 11:29
在java中函数和方法是一回事吧,函数一般是在c中称呼为函数,而在Java中将函数统称为了方法吧 ...
同意+1~~~~~~~~~~~~~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2