java中方法的定义
所谓的方法(将方法称为函数)指的就是一段可以被重复调用的代码块。
对于方法的返回值类型有两种使用形式:
· 有数据返回:返回值类型就使用 Java 中定义的数据类型;
· 无数据返回:使用 void 表示;
在 Java 之中如果要定义方法,其命名规则:第一个单词字母全部小写,而后每个单词的首字母大写。
对于什么时候定义方法有以下两点建议:
· 根据你的经验,把可能会被重复执行的操作定义为一个方法;
· 为了保证主方法里的代码量少
定义有参数无返回值的方法:
public class TestDemo { public static void main(String args[]) { printInfo(100.0) ; } public static void printInfo(double score) { if (score == 100.0) { System.out.println("第一名让人铭记!") ; } else { System.out.println("其他名次让人遗忘!") ; } } } |
定义一个有参数有返回值的方法
public class TestDemo { public static void main(String args[]) { int sum = add(10,20) ; System.out.println(sum) ; System.out.println(add(100,200)) ; } public static int add(int x,int y) { return x + y ; } } |
如果方法有返回值类型的声明(不是 void),那么此方法在方法体中必须要使用 return 进行数据的返回处理。对于方法的返回值可以进行接收,也可以直接输出。
在定义方法的时候,如果此方法没有返回值类型(void),那么也可以通过 return 来结束当前方法的调用,这一过程实际上和continue 或 break 类似,都表示结束调用的形式,并且这几种操作使用时都往往结合 if 分支语句完成。
public static void print(int x) { if (x == 3) { return ; // 表示此代码之后的程序都不执行,直接返回 } System.out.println("x = " + x) ; } |
方法重载(Overloading )
方法重载:指的是定义了若干个方法,并且这些方法的方法名称相同,但是这些方法的参数类型或个数不同。
如果现在假如说"add()"方法有可能产生了 100 个定义,那么按照"add1() ~ add100()"的形式调用的话,而使用方法重载的时候就没有必要再去对应参数的个数或类型与方法名称了,一个方法名称全部解决,这样在代码的编写上将会非常的方便。在进行方法重载定义的过程之中,没有一个要求是围绕着返回值来定义的,也就是说定义里面并没有强制性的要求方法的返回值是否会相同。但是从一个正常的方法重载来看:被重载的方法往往都要求其返回值类型保持一致(认为规范,不是语法定义。)
方法的递归调用(理解)
在以后的实际开发过程之中,你自己写的代码里面尽量不要出现递归。因为如果递归处置不当,则会产生堆栈溢出问题。、
所谓的递归操作指的就是一个方法自己调用自己的操作。但是如果要想进行递归操作则必须满足如下几点:
· 所有的递归操作必须有一个明确的结束条件;
· 每次执行递归操作时都必须明确的改变结束条件的内容。
实现递归
public class TestDemo { public static void main(String args[]) { System.out.println(sum(100)) ; } public static int sum(int x) { if (x == 1) { return 1 ; } return x + sum(x - 1) ; // 每次改变递归数据 } |