文章目录

  • 一、函数是什么?
  • 二、函数的定义
  • 三、函数的调用
  • 四、函数的分类
    • 1.通过函数是否存在参数分为:无参函数、有参函数
    • 2.函数是否需要返回计算结果分为:无返回值、有返回值
  • 五、函数重载
  • 六、函数递归(recursion)

一、函数是什么?

具有名称的特定功能代码的集合。函数就是定义在类中的具有特定功能的一段独立小程序,并能被多次使用。
使用函数的目的:提高代码的复用度

二、函数的定义

访问权限修饰符[static] 返回值的类型 函数名称([形式参数列表]){//函数体 由一行或者多行代码组成
//[return 返回返回值]
}
注意:在Java中函数定义在类中,是类的成员,不能定义在main函数中。

示例:定义一个printFunction()函数,控制台输出“Hello”

public class FunctionDemo1 {public static void main(String[] args) {}public static void printFunction(){System.out.println("Hello");   }
}

三、函数的调用

当函数定义完成后,不会自己执行,需要调用来执行,函数名称([实际参数列表])

public class FunctionDemo1 {public static void main(String[] args) {PrintFunction();//函数调用}public static void printFunction(){System.out.println("Hello");   }
}
函数调用的本质:函数本质是一个对象,存储在堆里。
当调用完成后,会立刻弹出栈,

四、函数的分类

1.通过函数是否存在参数分为:无参函数、有参函数

无参

public static void printInformation(){System.out.println("姓名:张三");
}

有参

public static void printInformation(String name){System.out.println("姓名:"+name);
}

2.函数是否需要返回计算结果分为:无返回值、有返回值

public static int sum(int a,int b){int result=a+b;return result;//return 关键字会返回调用者需要的结果。函数中一旦执行到了return关键字则立刻返回结果
}
注意:定义在函数内部的变量,叫做局部变量,作用域只在当前函数中有效,
在Java中没有全局变量,main函数中的变量也是局部变量,只是比较特殊,作用域还是main函数本身,
但是生命周期比较长。

五、函数重载

函数重载(overload):
至少两个或者多个函数,函数名称相同,但是参数的个数或者参数类型不同,
从而在调用的时候,可以通过传参确定要调用的函数
函数重载本质是对功能的扩展,不是代码的复用!!!
public class functionDemo5 {public static void main(String[] args) {}public static int add(int a,int b){return a+b;}public static int add(int a,int b,int c){return a+b+c;}
}

六、函数递归(recursion)

递归:函数自身调用自身
如果要使用递归,必须要有终止条件,没有终止条件的递归就是死循环

案例:使用递归求100的累加和

public class RecusionDemo {public static void main(String[] args) {System.out.println(sum(100));}public static int sum(int n){if (n==0){return 0;}return  n+sum(n-1);}
}

【Java----函数(function)】相关推荐

  1. java.util接口_函数接口– Java 8中java.util.function包中的函数接口

    java.util接口 我以前写过有关功能接口及其用法的文章. 如果您正在探索要成为Java 8一部分的API,尤其是那些支持lambda表达式的API,您会发现很少的接口,例如Function,Su ...

  2. 函数接口– Java 8中java.util.function包中的函数接口

    我以前写过有关功能接口及其用法的文章. 如果您正在探索要成为Java 8一部分的API,尤其是那些支持lambda表达式的API,您会发现很少的接口,例如Function,Supplier,Consu ...

  3. java js中 function函数报错_浅析JS中对函数function的理解(基础篇)

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  4. JavaScript与Java函数的比较

    JavaScript与Java函数的比较 学习了两天的JavaScript,会觉得这是一门和Java类似但又有很大不同的语言.很想将这种感受写下来并举例做一些分享. 函数成为了对象? 你很难想到,在学 ...

  5. Java的java.util.function.Function接口中identity方法解析

    java.util.function.Function是函数式接口,它的特点是有且只有一个抽象方法,这样的接口被@FunctionalInterface所注释,能够应用于JDK1.8开始的函数式编程. ...

  6. 深入学习Java8 Lambda (default method, lambda, function reference, java.util.function 包)

    Java 8 Lambda .MethodReference.function包 多年前,学校讲述C#时,就已经知道有Lambda,也惊喜于它的方便,将函数式编程方式和面向对象式编程基于一身.此外在使 ...

  7. Function接口 – Java8中java.util.function包下的函数式接口

    作者:   Mohamed Sanaulla  译者: 李璟(jlee381344197@gmail.com) 早先我写了一篇<函数式接口>,探讨了Java8中函数式接口的用法.如果你正在 ...

  8. java.util.function包

    目录 Supplier 参数个数扩展 参数类型扩展 特殊变形 Function,r> 参数个数扩展 参数类型扩展 特殊变形 Consumer 参数个数扩展 参数类型扩展 特殊变形 Predica ...

  9. Javascript学习之函数(function)

    http://www.cnblogs.com/royalroads/p/4418587.html 在JS中,Function(函数)类型实际上是对象;每个函数都是Function类型的实例,而且都与其 ...

  10. java.util.function.Function的用法

    JDK 1.8 API包含了很多内建的函数式接口,在老Java中常用到的比如Comparator或者Runnable接口,这些接口都增加了@FunctionalInterface注解以便能用在lamb ...

最新文章

  1. [转]Asp.net 将js文件打包进dll 方法
  2. listener does not currently know of service requested in connect descriptor
  3. 一文讲述数仓组件SysCache
  4. php 集成 spss,spss怎么录入数据
  5. 启动react项目报找不到文件的错误
  6. BZOJ 2959 长跑 (LCT+并查集)
  7. 04.数据分析之pillow与matplotlib
  8. 人均劳动生产率的单位_生产率的单位是什么?
  9. [BZOJ]4453: cys就是要拿英魂!
  10. 韩式时尚大片《九月风》(出镜:马晓辉/徐嘉依)
  11. npm 包解析 eml 文件
  12. Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
  13. 您的好友邀请您加入群聊~
  14. 计算机摄影比赛,计算机系摄影大赛圆满结束
  15. uni-app接入友盟
  16. 安卓期末大作业Android studio-记单词app(资源链接在文末,含注册登录,含设计报告,含导出app文件及源码导入方法文档)
  17. html5 canvas 图片移动端,支持移动端的HTML5 Canvas逼真黑板特效
  18. netbackup基础知识
  19. range 小程序picker_微信小程序picker滚动选择器使用详解
  20. 如何关闭 搜狐广告 弹框

热门文章

  1. 检测tomcat 在CentOS 上的运行状态,发送邮件
  2. int型整数的数值范围
  3. CSS背景属性、定位
  4. FedNCF:Federated Neural Collaborative Filtering | 联邦神经协同过滤
  5. 高仿网易云音乐一(可扫描本地音乐播放)
  6. GCD,快速GCD,扩展GCD
  7. windows连接的蓝牙设备(如小爱同学),无法调节音量
  8. Eclipse插件简介
  9. Unix环境高级编程-高级IO
  10. linux drm 源码,Linux DRM那些事-内核代码