定义

函数概念视频

函数的技术定义:从一组输入到一组可能的输出,其中每个输入与一个输出完全相关。

数学函数: 函数是将一个对象转化为另一个对象的规则。起始对象称为输入,来自称为定义域的集合,返回的对象称为输出,来自称为值域的集合。

  • y=f(x)=x²,"f(x)是一个函数"是不正确的,应该说“f是一个函数”;
  • f(x)只是一个函数符号,这个符号是大数学家欧拉发明的;

计算机函数: 函数是执行特定任务的代码块。

  • 数学的函数表达 y = f(x);
    C语言中函数表达 clolour= Colour(str);
    都是从一组输入到一组可能的输出,其中每个输入与一个输出完全相关。
  • function有函数和功能的意思,在计算机中更偏向功能的含义,是为了实现一个功能;

方法: 方法是包含一系列语句的代码块。

  • 方法定义类可以执行的操作。
  • 方法可接受提供输入数据的参数,并可通过参数返回输出数据。
  • 方法还可以不使用参数而直接返回值。

构造函数: 构造函数是一种方法,其名称与其类型的名称相同。

  • 构造函数是首次创建对象时调用的方法。 它们通常用于初始化对象的数据。

  • 每当创建类或结构时,将会调用其构造函数。 类或结构可能具有采用不同参数的多个构造函数。 使用构造函数,程序员能够设置默认值、限制实例化,并编写灵活易读的代码。

理解

数学函数

  • 假设写出f(x)=x²,这就定义了一个函数f,它会将任何数变为自己的平方。由于你没有说明其定义域或值域,我们不妨假设他们都属于(+∞,-∞),即所有实数的集合。这样就可以将任何实数平方并得到一个实数。例如,f将2变为4,将-1/2变为1/4,将1变为1。最后一个变换根本没有什么变化,但这没问题,因为转变后的对象不需要有别于原始对象。当你写出f(2)=4的时候,这实际上意味着将2变为4。顺便要说的是,f是一个变换规则,而f(x)是把这个变换规则应用于变量x后得到结果。因此,说"f(x)是一个函数"是不正确的,应该说“f是一个函数”。f(x)只是一个函数符号,这个符号是大数学家欧拉发明的;

  • 现在,令g(x)=x²,其定义域仅包含大于或等于零的数(这样的数称为非负数)。它看上去好像和函数f是一样的,但实际不同,因为定义域不同。例如,f(1/2=1/4),但g(-1/2)却是没有定义的。函数g会拒绝非其定义域中的一切。由于g和f有相同的规则,但g的定义域小于f的定义域,因为我们说g是由限制f的定义域产生的。因定义域不同,所以g和f不是一个函数。

  • 一般来说求y和x的函数f(x)写为y=f(x)=x²,已知集合x(+∞,-∞),我们可以得到集合y为(0,+∞)

  • 当x=2时,y=4,我们称4为2的函数值。

  • 我们可以称y和x存在映射关系,也可以称y和x存在函数关系,即转换的规则就是函数;

  • 深入理解,首先先定一个原函数y=f(x)=x²,当新函数y=f(x-1)=(x-1)²时,此时y和x的函数不是f,换一种写法y=g(x)=f(x-1)=(x-1)²,此时y和x的函数g是g(x)=(x-1)²,而原来y和x的函数f是f(x)=x²。

计算机函数

  • 数学的函数表达式 y = f(x);
    C语言中有类似写法 clolour= Colour(str);
    都是从一组输入到一组可能的输出,其中每个输入与一个输出完全相关。
  • function有函数和功能的意思,在计算机中更偏向功能的含义,是为了实现一个功能;

方法和函数的区别

  • MSDN官方定义,方法是包含一系列语句的代码块,也就是组合在一起的代码。
  • 对计算机而言函数是执行特定任务的代码块,也是组合在一起的代码,外加特定任务。
  • 函数和方法这两者定义有何区别?其实二者没有区别,只是解释说明有一些区别,但二者本质上是相同,都是为了实现某一个功能,没人会不认同吧?
  • 那么我们再分析一下,包含一系列语句的代码块可以处理特定任务吗?我相信你可以用方法实现这样的特定功能。反过来说执行特定任务的代码块是一系列语句吗?同样也是一系列语句,为啥非得有区别,有不同?函数可以当做是方法,方法也可以当做是函数了,这还有啥区别。
  • 非要咬文嚼字的话,特定任务有规定吗?特定任务还不就是人为定义的一些功能,可以用方法实现,可以用函数实现,写法也差不多,为什么方法和函数就有区别?
  • 只是不同的语言规定的名字不同,就好比苹果,中文叫苹果,英文叫apple。
  • 举个例子,倘若我创建一门语言叫CC#语言,定义一个功能,转换是为了实现某一个功能的代码块,是不是又要有人将功能、函数、方法进行区别,要我说区别就是各个语言定义的不同,其实就是一个东西。
  • 再举个例子,我跟你说一件事,乱七八糟说一通,你理解了,你把条理理清了跟我说,问我是不是这样的事,这难道还能是两件事,除非是客观存在的实体,概念上有一些偏差是正常的,看看这个概念的本质才对。
  • 接下来我们再看看构造函数

构造函数

  • MSDN官方定义,构造函数是一种方法,其名称与其类型的名称相同。
  • MSDN都说构造函数是一种方法了,只是一种特殊的方法,名称和类名相同,这是不是为了实现某一特定功能?或者说执行特定任务?
  • 构造函数可以参考属性进行理解(属性是类中可以像类中的字段一样访问的方法),C#将构造函数和属性进行独立定义,是为了更好的规范语言进行的优化,可以看作为C#内置的方法,使用起来更为方便。
  • 从这边来看,官方都承认函数可以是方法了。

释疑

来自stackoverflow网站:方法和函数有什么区别?

函数是按名称调用的代码。它可以传递数据以操作(即参数),并可选择返回数据(返回值),传递到函数的所有数据均明确传递。方法是一个代码,由与对象关联的名称调用。在大多数方面,它与函数相同,但两个关键差异除外:1. 方法是含蓄地传递它所称的对象。
2. 方法能够对类中包含的数据操作(记住对象是类的实例 - 类是定义,对象是该数据的实例)。

看到这边函数和方法的定义和我这边说的是不一样的,如果按这边的定义,那么他这个说法完全是没有问题的,我是赞成的,一开始看到这个的时候我也是这么认为的:方法和对象绑定,函数独立于对象。

基于这个观点,我想从C#中找出函数,遗憾的是我找不出来,哪里出了问题?C#是面向对象编程的语言,方法都是写在对象中的,和对象相关联,但是MSDN官方既然有构造函数一说,但我没有从这个观点中看出构造函数是函数,反而还是觉得是一种方法,而MSDN官方更是肯定了构造函数是一种方法,就把我绕迷糊了,我又重新去查阅资料,寻找函数最初的定义。

最初的函数是来自数学函数y=f(x),进而衍伸出计算机函数num= Number(number);一个是数学为了求值,一个是计算机为了实现功能;而function既有函数又有功能一说,我是这么想的因函数是最初的翻译,后来估计顺口了估计就懒得改了。也就是说数学函数和计算机函数相似,但并不相同,数学函数是函数,计算机函数是功能。

既然说计算机函数是功能,那么我们就可以重新看一下此处的函数和方法的定义了,倘若我将此处函数换成功能再来看看。

功能:是按名称调用的代码。它可以传递数据以操作(即参数),并可选择返回数据(返回值),传递到函数的所有数据均明确传递。

这样看是不是比函数更好理解,我们再查查日常生活中功能和方法是什么意思。

方法:一般是指为获得某种东西或达到某种目的而采取的手段与行为方式。
功能:是指事物或方法所发挥的有利作用。

上面这是百度的百科的解释,我相信很多人都知道日常生活中功能和方法是什么,但不知道怎么形容,这其实就跟计算机中计算机函数和方法的定义一样,不同语言定义不同,不同人定义不同,不同地方定义不同,但实际上都说的是同一个概念,这是抽象的,可能这就是只可意会不可言传,你知道这是什么,但说不出来这是什么。

再返回我们计算机中的函数和方法,要进行区别对比肯定需要知道他们的定义,这个定义是从哪来的,谁定义的,是不是正确的,这些都要进行判断,方法既然是C#中的,那么我们就看C#官方定义,这没疑义吧,那么我们再回头看看官方给的定义,方法是包含一系列语句的代码块。既然官方没有将方法定义为需要和对象关联,这边给的定义就是错误的。既然定义就错了,那么这个观点本就错了。

我再说说我自己的观点,计算机中的函数是由数学函数衍伸过来的,并不是数学函数,英文Fuction因函数翻译在前被广泛使用,后续难以纠正为功能的意思,所以现在对计算机而言说的函数实际是功能的意思,而在计算机中方法和功能的定义本质上是一样的,都是为了实现某个目的,实现这个目的都需要通过组合代码。

根据我的理解,对这种代码块,换一种说法进行概念的定义。

中文定义:通过组合代码实现功能的方法。
英文翻译:The method of implementing a function by combining code.

我可以取Function命名,也可以取方法Method命名进行定义。

其实我更偏向取Function命名,官方取了Method定义,官方这么命名也是有一些道理的,可能是为了区分语言不同,也可能是为了区分函数和功能的翻译,并不是为了区别函数和方法。

这里若是取Function命名估计还是会被翻译成函数,不会翻译成功能,不管它怎么翻译,它还是它,不会因为命名的原因就不同了。

所以函数也好,方法也好,其实它就是它,就可以理解为就是一样的,倘若你对函数和方法的定义是stackoverflow网站上那种,那就是不一样的,但实际这是错误的,倘若你有另外的理解,你需要让你的定义站住脚,再去对比区别。

总结

  • 函数就是方法;
  • 此函数(计算机函数)非彼函数(数学函数);
  • Function对计算机而言应翻译为功能;
  • 程序员相互间的交流而言所说的函数就是功能;
  • 对C#而言只说方法不说函数;

关于笔者

我是旋转De陀螺,笔者将持续分享Revit二次开发思路及入门经验,感谢点赞、关注、留言、一键三连,获取更多分享。

  • 微信公众号: BIM开发
  • QQ群: 1009105743
  • CSDN: 旋转De陀螺
  • 知乎: 旋转De陀螺

函数和方法的本质区别相关推荐

  1. python函数与方法的区别_python中函数和方法有哪些区别

    python中函数和方法有哪些区别 发布时间:2020-11-16 09:30:04 来源:亿速云 阅读:89 作者:小新 小编给大家分享一下python中函数和方法有哪些区别,相信大部分人都还不怎么 ...

  2. 静态方法和实例化方法的本质区别

    本文章已收录于: 这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不 ...

  3. python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法

    python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录

  4. python函数与方法表,基于Python 函数和方法的区别说明

    简单总结: 1.与类和实例无绑定关系的function都属于函数(function): 2.与类和实例有绑定关系的function都属于方法(method). 首先摒弃错误认知:并不是类中的调用都叫方 ...

  5. python中函数和方法的区别

    本篇内容主要介绍从几个维度来介绍下python中函数和方法的区别: 首先,从分类的角度来分析. (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函 ...

  6. Django 函数和方法的区别

    函数和方法的区别 1.函数要手动传self,方法不用传 2.如果是一个函数,用类名去调用,如果是一个方法,用对象去调用 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662 ...

  7. python中函数和类的区别_Python中函数和方法的区别

    简单总结: 与类和实例无绑定关系的function都属于函数(function): 与类和实例有绑定关系的function都属于方法(method). 首先摒弃错误认知:并不是类中的调用都叫方法 函数 ...

  8. python基础学习——函数和方法的区别与联系

    以下是综合多家说法的个人理解总结,仅为做到理解它们的区别与联系,不保证严谨. 函数 函数是封装了一些独立的功能,可以直接调用,python内置了许多函数,同时可以自建函数来使用. 独立的函数是函数(像 ...

  9. (小白)函数一: 声明函数的方法—语句定义法和表达式定义法的区别

    一.函数的定义: 在说明什么是函数前先举一个小例子: 大家都知道印刷术是我国的四大发明(科普一下:中国四大发明:造纸术.印刷术.火药.指南针)之一,之所以有印刷术,是因为重复的抄写既浪费时间,效率又很 ...

最新文章

  1. 直流降压的简单方法_空调室内机电源电路检修方法。
  2. 新书预告《网络规划设计师考试考点分析与真题详解》
  3. oracle虚拟机 centos6.5,虚拟机oracle virtualbox 上安装centos6.5 网络设置
  4. java jsonobject转List_java – 将JSONObject转换为List或JSONArray的简单代码?
  5. Oracle绝对值函数
  6. 写在这个公众号关注者达到7000之际,Jerry有话对大家说
  7. 100个Web开发资源(收藏)
  8. 将Linux下编译的warning警告信息输出到文件中
  9. 关于NLP相关技术全部在这里:预训练模型、信息抽取、文本生成、知识图谱、对话系统...
  10. spring boot对输入的字符串进行html转码
  11. 给大家分享几个经典c语言简单案例
  12. 单细胞测序系列之三:单细胞转录组测序
  13. 公主同盟第3关(GBA)(难) 奥兰多西部
  14. android 悬浮球简书,Android-悬浮窗效果FloatingView
  15. mysql dump 1449_mysqldump 1449错误解决办法
  16. VTK可交互三维坐标轴
  17. python 习题练习一
  18. 2022-2028全球与中国液态环氧树脂市场现状及未来发展趋势
  19. 如何通过轨迹信息判断驾驶人是否为同一人?
  20. 什么是等保?为什么做等保?如何做等保?

热门文章

  1. 《Maven实战》百度网盘
  2. What the f*ck Python!(中文翻译版)
  3. 万邦淘宝/天猫获得淘宝商品详情 API 返回值说明
  4. 持之以恒奖牌来啦,带你提前看~
  5. 服务器.esp文件,ESP32 Arduino教程:通过软接入点(soft AP)实现HTTP服务器-esp文件
  6. {YiGeZiWoJianJie}个人简历(还没写完呢)
  7. 思科交换机与路由器基础命令(二)
  8. corrected(corrected)
  9. 服务器系统 主板支持,服务器主板支持
  10. 互联网+洗鞋店预约小程序新模式;