Java方法的定义和使用
方法最大的优点是可以重复调用,但是对于形成方法的那些操作,这些要根据自己的实际项目经验自行总结。
##方法的基本定义
限制:定义在主类中方法,由主方法直接调用的方法形式。
方法是可以重复调用的一组方法。要在 Java 中定义方法,可以使用以下语法。
public static 返回类型 方法名称([参数类型 变量, ......]) {
方法体代码;
[return [返回值];]
}
定义方法时,方法返回值有两种:
示例:定义一个没有返回值也没有参数的方法
public class TestDemo {
public static void main(String[] args) {
print(); //主方法里面直接调用方法
}
public static void print() {
System.out.println("Hello World!"); //定义方法
}
}
示例:定义一个有参数但没有返回值的方法
public class TestDemo {
public static void main(String[] args) {
print("Hello"); //主方法里面直接调用方法
print(" world");
print("!");
}
public static void print(String msg) { //定义方法
System.out.print(msg);
}
}
示例:带参数和返回值的方法
public class TestDemo {
public static void main(String[] args) {
int result = add(10, 20);
System.out.println(result);
//既然方法有返回值,那么这些返回值也可以直接输出
System.out.println(add(100, 200));
}
public static int add(int x, int y) { //定义方法
return x + y;
}
}
但是在定义方法的时候有一点需要注意。如果在方法上使用了 void 定义,则可以直接使用该方法来结束调用。一般来说,这种处理往往需要结合if判断来实现。
public class TestDemo {
public static void main(String[] args) {
print(10);
print(20);
}
public static void print(int x) { //定义方法
if(x == 20) //表示的是方法结束的判断
return; //此语句之后的代码不再执行
System.out.println("x = " + x);
}
}
对于第一次接触该方法的人方法,首先要记住语法。至于怎么用,还需要时间去消化。
##方法重载(强调)
方法重载是指方法名相同,但参数的类型和个数不同。
示例:实现方法重载
public class TestDemo {
public static void main(String[] args) {
//此时将根据参数的类型和个数的不同执行不同的方法体
System.out.println(add(10, 20));
System.out.println(add(30, 40, 50));
System.out.println(add(1.1, 2.1));
}
public static int add(int x, int y) {
return x + y;
}
//此时方法名称相同,参数的个数不同
public static int add(int x, int y, int z) {
return x + y + z;
}
public static double add(double x, double y) {
return x + y;
}
}
方法重载有一个重要原则:方法的返回值类型必须相同。
示例:观察以下程序
public class TestDemo {
public static void main(String[] args) {
//此时将根据参数的类型和个数的不同执行不同的方法体
System.out.println("hello"); //输出字符串
System.out.println(1); //输出整形
System.out.println(1.1); //输出浮点型
System.out.println('A'); //输出字符
System.out.println(true); //输出布尔
}
}
证明:.out.() 是一个重载方法
方法递归调用
方法的递归调用是指方法调用自身的形式。一般来说,如果要对方法进行递归操作,通常具有以下特点:
示例:累积 1 ~ 100
public class TestDemo {
public static void main(String[] args) {
System.out.println(sum(100));
}
public static int sum(int num) {
if(num == 1)
return 1;
return num + sum(--num);
}
}
[main() call] sum() 方法的第一次执行 100 + sum(99); [sum() ] sum() 方法的第二次执行 99 + sum(98) ;[sum() 递归] sum() 方法的第三次执行 98 + sum(97);…[sum() 递归] sum() 方法的第二次最后执行 + sum(1); [sum()递归] sum()方法倒数第二次执行;
示例:实现 60!,这个结果太大,应该使用。
public class TestDemo {
public static void main(String[] args) {
System.out.println(mul(60));
}
public static double mul(int num) {
if(num == 1)
return 1;
return num * mul(--num);
}
}
从代码中可以看出,大部分使用while循环的操作都可以用递归来代替。之所以使用递归,是因为一种方法可以执行的操作很多,而且结构更好。
tags:
递归