• 变量和数据类型,赋值和输出
  • 算术运算
  • 选择结构
  • 循环结构
  • 函数定义,函数调用
  • 变量作用域
  • 栈,程序运行的基石
  • 面向对象
  • 异常处理
  • 语言提供的公用包

什么是函数,为什么有函数,大家可能有这样的疑问。

举一个例子来回答大家的疑问:比如一个财务软件,里面需要反反复复地把很多账单加起来,过去一周的,过去一月的一年的。为了提高代码的复用性,我们把账单相加这个功能封装成一段独立的小程序。当下次再面临账单相加时,就调用这段小程序。那么这种封装的形式就叫做“函数”

函数的格式

  1. 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
  2. {
  3. 执行语句;
  4. return 返回值;//有可能有return,有可能无return
  5. }

函数的定义

我们参考函数的格式定义几个函数

因为我们要在public static void main(String[] args) 中调用函数,所以函数也要定义成static。

static 修饰的方法我们称之为静态方法,属于类级别,不是对象级别。他在类加载的时候就存在了。static 方法只能调用 static 方法

  1. /**
  2. * 本节讲函数的定义和调用
  3. * 同时也复习前面学习的内容
  4. */
  5. public class FifthLesson {
  6. /**
  7. * 定义一个justPrintMax函数
  8. * void指没有返回值,该函数不会返回任何值
  9. * @param a 参数a
  10. * @param b 参数b
  11. * @param c 参数c
  12. */
  13. public static void justPrintMax(int a, int b, int c) {
  14. /**
  15. * 当调用者调用该函数
  16. * 参数a,b,c会分别被传值
  17. * 然后进入函数体
  18. */
  19. /**
  20. * 定义一个int,变量名是max
  21. * 把a的值赋值给max
  22. */
  23. int max = a;
  24. /**
  25. * 如果b 大于 max,则
  26. * 执行 max = b
  27. * 此时 max是a,b两者的最大值
  28. */
  29. if (b > max) {
  30. max = b;
  31. }
  32. /**
  33. * 如果c 大于 max,则
  34. * 执行 max = c
  35. * 此时 max是a,b,c三者的最大值
  36. */
  37. if (c > max) {
  38. max = c;
  39. }
  40. /**
  41. * 输出max值,没有返回
  42. */
  43. System.out.println(max);
  44. }
  45. /**
  46. * 定义一个getMax函数
  47. * 此函数有返回值
  48. * @param a 参数a
  49. * @param b 参数b
  50. * @param c 参数c
  51. * @return 返回三者的最大值
  52. */
  53. public static int getMax(int a, int b, int c) {
  54. /**
  55. * 新建一个int,变量名是max
  56. * 把 a 赋值 给 max
  57. */
  58. int max = a;
  59. /**
  60. * 如果 b 大于 max
  61. * 则执行 max = b
  62. */
  63. if (b > max) {
  64. max = b;
  65. }
  66. /**
  67. * 如果 c 大于 max
  68. * 则执行 max = c
  69. */
  70. if (c > max) {
  71. max = c;
  72. }
  73. /**
  74. * 返回max
  75. */
  76. return max;
  77. }
  78. public static void main(String[] args) {
  79. /**
  80. * 调用justPrintMax函数
  81. * 把3传给a,5传给b,2传给c
  82. */
  83. justPrintMax(3, 5, 2);
  84. /**
  85. * 调用getMax函数
  86. * 把3传给a,5传给b,2传给c
  87. * 新建变量max
  88. * 取函数返回值,传给max
  89. */
  90. int max = getMax(3, 5, 2);
  91. System.out.println(max);
  92. }
  93. }

为什么要用函数

  1. 使程序变得更简短而清晰。
  2. 有利于程序维护。
  3. 可以提高程序开发的效率。
  4. 提高了代码的重用性。

总结

  • 函数如果声明成void则没有返回值
  • 使用函数之前,要先定义函数
  • 使用函数要按函数的定义传递参数

作业

  • 写一个函数,输入是String name, 比如输入是“小楠”,输出是 "我爱小楠"
  • 写一个函数,输入语文,数学,英语三门课的成绩,输出三门课的平均分

完整章节

九天学会Java,第五天,函数定义函数调用的更多相关文章

  1. 九天学会Java,第一天,变量和数据类型,赋值和输出

    用9天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说?对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一个初学者首先关心的. 网络上,网 ...

  2. 九天学会Java,第二天,算术运算

    算术运算 先回顾上次我们提到的编程特性 变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 第一天我们讲 ...

  3. 九天学会Java,第三天,选择结构

    选择结构 变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 上一节介绍了Java的算术运算,如加减乘除 ...

  4. 九天学会Java,第四天,循环结构

    变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...

  5. JavaScript要点 (五) 函数定义

    JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明分号是用来分隔可执行JavaScript语句. 由于函数声明不是一个可执行语句,所以 ...

  6. java 第五章 方法定义及调用

    1.方法的定义 什么是方法 方法是完成某个功能的一组语句,通常将常用的功能写成一个方法 方法的定义 [访问控制符] [修饰符] 返回值类型 方法名( (参数类型 形式参数, ,参数类型 形式参数, , ...

  7. 【Python】Java程序员学习Python(五)— 函数的定义和使用

    不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...

  8. 10天学会phpWeChat——第五天:实现新闻投稿功能

    在前几讲里,我们逐渐实现了自己小模块的新闻列表展示.新闻详情展示功能,现在您已经初步有能力开发一个phpWeChat小模块了,本文将在已开发的hello world模块基础上,增加一个新的功能--新闻 ...

  9. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

随机推荐

  1. Spark ML下实现的多分类adaboost+naivebayes算法在文本分类上的应用

    1. Naive Bayes算法 朴素贝叶斯算法算是生成模型中一个最经典的分类算法之一了,常用的有Bernoulli和Multinomial两种.在文本分类上经常会用到这两种方法.在词袋模型中,对于一 ...

  2. 浅谈lvs和nginx的一些优点和缺点

    借鉴一些网上资料整理了简单的比较: LVS的负载能力强,因为其工作方式逻辑非常简单,仅进行请求分发,而且工作在网络的第4层,没有流量,所以其效率不需要有过多的忧虑. LVS基本能支持所有应用,因为工作 ...

  3. Spring源码情操陶冶-AbstractApplicationContext#initApplicationEventMulticaster

    承接前文Spring源码情操陶冶-AbstractApplicationContext#initMessageSource 约定web.xml配置的contextClass为默认值XmlWebAppl ...

  4. 【firefox】关闭firefox缓存

    在Firefox中关闭缓存 看看这里 在地址栏输入:about:config 然后在过滤器中输入:browser.cache.disk.enable 解释:When a page is loaded, ...

  5. Python爬虫从入门到放弃(二十一)之 Scrapy分布式部署

    按照上一篇文章中我们将代码放到远程主机是通过拷贝或者git的方式,但是如果考虑到我们又多台远程主机的情况,这种方式就比较麻烦,那有没有好用的方法呢?这里其实可以通过scrapyd,下面是这个scrap ...

  6. 度度熊与邪恶大魔王 DP | 完全背包

    Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式 ...

  7. IIS7.5应用程序池集成模式和经典模式的区别介绍

    IIS7.5应用程序池集成模式和经典模式的区别介绍 作者:  字体:[增加 减小] 类型:转载 时间:2012-08-07   由于最近公司服务器上需要将iis的应用程序池全部都升级到4.0的框架,当 ...

  8. 解读 Vue 之 Reactive

    本文同步发表在 https://github.com/whxaxes/blog/issues/7 前言 在一篇文章中简单讲了 vue 是如何把模板解析成 render function 的,这一篇文章 ...

  9. trycatch放在for循环的里面还是外面好

    try放在for循环里面和外面的区别是什么呢?先看看下面的代码的区别:public class Test {    public void test1(){        for (int count ...

  10. 剑指offer——矩阵覆盖(斐波那契变形)

    ****感觉都可以针对斐波那契写一个变形题目的集合了****** 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? cl ...