方法(函数)


  • 什么是方法
  • 使用方法的优点
  • 方法的定义
  • 方法的调用

什么是方法(函数)?

我们前面学数组的时候介绍过,如果如果我们想录入全班同学的成绩,那怎么办呢,不可能再单独为每一个同学创建分数变量了,那同样的,如果录入分数这个过程也是用编码实现的话,难道我们每次录入都要重新写这一段代码吗?当然没必要,我们只要把这一段代码写好,然后给它提取出来,每次用的时候调用它就行了。
我们可以把这一段有特定功能的代码称之为方法,而我们JAVA 中,对方法又有一定的要求。


使用方法的优点

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

方法的定义

访问控制符  修饰符   返回值类型   方法名(参数列表){方法体;return 返回值;
}

方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
访问控制符:访问控制符限定方法的可见范围,或者说是方法被调用的范围。方法的访问控制符有四种,按可见范围从大到小依次是:public、protected,无访问控制符,private。其中无访问控制符不书写关键字即可。具体的范围在后续有详细介绍。
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。

    访问控制符和修饰符在方法定义时统一叫修饰词  后面会具体学到

返回值类型 :方法可能会返回值。返回值类型是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,返回值类型是关键字void。
方法名:是方法的实际名称。(方法名和参数表共同构成方法签名)
参数类型:当方法被调用时,传递值给参数。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能。
返回值 : return 代表返回值,返回值的类型要跟方法声明时定义的返回值类型相匹配。如没有返回值(没有return),则返回值类型为void。

代码案例:

public void sum(){...}//无返回值无参数的方法
public static int sum(int  a){//返回值类型是int...return  0;//返回一个int类型的数据
}

方法的调用

Java 支持两种调用方法的方式,根据方法是否返回值来选择:
a)方法返回一个值的时候,方法调用通常被当做一个值。
例如:

int bigger = max(30, 40);

b)如果方法返回值是void,方法调用一定是一条语句。
例如,方法println返回void。下面的调用是个语句:

System.out.println("这是一个没有返回值的方法!");

下面我们写一个实例,写一个方法sum,它的功能是计算两个数的和,代码如下:

public class TestSum {public static void main(String [] args){int a=3,b=5;int s=sum(a,b);//将变量以参数传入方法sum 则sum(a,b)的值是一个int类型的和,然后赋值给变量sSystem.out.println(s);}public static int sum(int  a,int  b){//参数列表中可传多个参数  System.out.println("此处调用了sum方法");return  a+b;//返回他们俩的和}
}

运行结果为,

此处调用了sum方法
8

void 关键字

本节说明如何声明和调用一个 void 方法。
下面的例子声明了一个名为 printScore 的方法,并且调用它来打印给定的分数。

public class TestVoidMethod {public static void main(String[] args) {printScore(78.5);//直接调用方法,传入参数}public static void printScore(double score) {if (score >= 90.0) {System.out.println('A');}else if (score >= 80.0) {System.out.println('B');}else if (score >= 70.0) {System.out.println('C');}else if (score >= 60.0) {System.out.println('D');}else {System.out.println('F');}}
}
上面两个例子中,注意它们的区别:
第一个是有返回值的sum方法,你会发现当调用它的时候是把它当一个值赋给了变量s:s=sum(a,b);
第二个打印分数的printScore方法是没有返回值的,所以我们是直接调用它:printScore();

JAVA 基础语法(六)——方法(函数)相关推荐

  1. java基础语法3 方法

    方法的定义-方法的特点 -方法的应用-方法的重载-数组定义-数组初始化-二维数组-Java中参数传递的特点:值传递 7.方法 7.1 方法的定义 什么是方法?Method 方法就是定义在类中的,具有特 ...

  2. Java基础语法之方法的参数传递与综合案例

    文章目录 一.参数传递 二.案例:遍历数操作 三.案例:获取最值 一.参数传递 1.基本类型传递(实参.形参) 在调用方法时传入的参数叫做实参,定义方法与方法实际执行时使用的参数是形式参数,即形参. ...

  3. Java基础语法(一)——初识Java

    文章目录 一.Java语言概述 1.Java是什么 2.Java 的流行性 3.Java 的特性 (1) 简单性 (2)面向对象 (3) 分布式(微服务) (4) 健壮性 (5) 安全性 (6) 可移 ...

  4. [博学谷学习记录] 超强总结,用心分享|JavaEE就业课-尊享无忧+Java基础语法|面向对象(1wk)

    学习笔记目录 目录 学习笔记目录 前言 一.变量 1. 关键字:被java赋予特殊含义的字符 2. 常量:不会发生改变的量(数据)​编辑 3. 变量:内存中的存储空间. 4. 类型转换 5. 算术运算 ...

  5. java基础语法入门到类型转换问题,运算符,数据输入,数组,方法概述,Debug模式,以及10个小案例的详细介绍。

    java基础语法 目录 java基础语法 1. Java概述 1.1 Java语言发展史(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应 ...

  6. java基础之main方法解读:java的主函数

    java基础之main方法解读: 一.深入理解main方法:(由java虚拟机调用) 解释main方法的形式:public static void main (String [] args){} 1. ...

  7. Java实习生常规技术面试题每日十题Java基础(六)

    目录 1.在Java语言,怎么理解goto. 2.请描述一下Java 5有哪些新特性? 3.Java 6新特性有哪些. 4.Java 7 新特性有哪些. 5.Java 8 新特性有哪些. 6.描述Ja ...

  8. 01.Java基础语法

    目录 01.Java基础语法 一,环境搭建 1,Java体系与特点 2,Java跨平台原理 2.1 Java虚拟机(JVM) 2.2 垃圾回收器(GC) 2.3 Java SE组成概念图 2.4 JD ...

  9. Java基础语法(九)——String类

    文章目录 Java基础语法(九)--String类 一.定义方式 二.内存 三.字符串比较相等 四.字符串常量池 (1) 直接赋值 (2)采用构造方法 (3)intern 的使用 五.理解字符串不可变 ...

  10. Java 基础语法(自用)

    Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...

最新文章

  1. 使用 Go module 后 VScode 智能提示不生效解决方案
  2. python中的变量、Debug和数据类型
  3. ROS学习汇总(3D摄像头)
  4. Java之通过Collections.synchronizedMap创建线程安全的HashMap
  5. 关于Unity中UI中的Image节点以及它的Image组件
  6. php前端介绍,Web前端的开发前景介绍
  7. Oracle笔记-使用sql命令插入clob数据(大于4000,适用于18c)
  8. 讯飞智能语音先锋者:等到人机交互与人类交流一样自然时,真正的智能时代就来了!...
  9. android背景颜色动态修改,Android自定义TextView带圆角及背景颜色(动态改变圆角背景颜色)...
  10. OP和DBA相关的一些有用资源
  11. c语言程序设计教程 郭浩志,C语言程序设计教程答案杨路明郭浩志.doc
  12. webpack配置路径问题 1
  13. if函数多个条件怎么用,excel求和函数
  14. 史上最简单的matlab的CRC库函数使用(无繁杂参数)
  15. Java学习 --- HTML
  16. Ceres库运行,模板内报内存冲突问题。(已解决)
  17. tf.roll:tensorflow 中对多维Tensor移位
  18. SQLSERVER时间函数
  19. 自动化测试--25接口测试脚本开发
  20. Corel Paintshop pro 2020安装教程和中文设置教程

热门文章

  1. 服务器上搭shinyApp:shiny-server配置及报错解决
  2. 随机过程(二):更新过程的详细理解
  3. linux edi esi eax 汇编指令,汇编指令lodsb和stosb、lodsd和stosd
  4. 简单的解决idea tomcat run正常debug报错
  5. java 从_java-从查询字符串中过滤参数(使用番石榴?...
  6. 1537 学生干部虚基类
  7. 0514JS函数练习
  8. SpaceNet 数据集
  9. memcached服务安装与卸载
  10. UIScrollView 遇到的小坑