阿里云【名师课堂】Java零基础入门24 ~ 26:方法的定义与使用
24:方法的基本定义
使用方法的好处:可以进行重复调用
注意:这次课讲解的方法指的是在主类中定义,并且由主方法直接调用的方法形式。
简单来说。方法就是一段可以被重复调用的代码块。
public static 方法返回值 方法名称(参数类型 变量 ······){
方法体代码;
[return 返回值 ;]
}
在定义方法时对于方法的返回值有以下两类:
- void:没有返回值;
- 数据类型(基本数据类型、引用数据类型)。
无返回值无参数
- 范例:定义一个没有返回值、没有参数的方法
public class TestDemo { // 定义一个程序类
public static void main(String args[]) {
print(); // 在主方法里面可以直接调用方法
print(); // 在主方法里面可以直接调用方法
}
public static void print() { // 定义一个方法print
System.out.println("****************") ;
System.out.println("* Hello World! *") ;
System.out.println("****************") ;
}
}
一个没有返回值的方法(void)可以直接使用return来结束调用,一般而言这种操作需要结合if进行条件判断来实现。
- 范例:观察return结束调用
public class TestDemo { // 定义一个程序类
public static void main(String args[]) {
print(10);
print(20);
}
public static void print(int x) {
if (x > 10){ // 此语句是方法结束条件的判断
return ; // 此语句之后的代码不再执行
}
System.out.println(x) ;
}
}
输出只有10
无返回值有参数
- 范例:定义一个没有返回值、有参数的方法
public class TestDemo { // 定义一个程序类
public static void main(String args[]) {
print("hello"); // 在主方法里面可以直接调用方法
print("world"); // 在主方法里面可以直接调用方法
}
public static void print(String msg) { // 定义一个有参数的方法print
System.out.println(msg) ;
}
}
有返回值有参数
- 范例:定义一个有返回值、有参数的方法
public class TestDemo { // 定义一个程序类
public static void main(String args[]) {
int result = add(10 , 20) ;
System.out.println(result) ;
// 既然方法有返回值,那么这些返回值也可以直接输出
System.out.println(add(10 , 20)) ;
}
public static int add(int x , int y) {
return x + y ;
}
}
25:方法重载(重点)
方法名称相同,参数的类型或个数不同。
System.out.print就是一个被重载的方法。
- 范例:实现方法重载
public class TestDemo { // 定义一个程序类
public static void main(String args[]) {
// 将根据参数的数量以及类型的不同执行不同的方法体
System.out.println(add(10 , 20)) ;
System.out.println(add(10 , 20 , 30)) ;
System.out.println(add(10.0 , 20.0)) ;
}
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) { // 定义一个有参数的方法print
return x + y ;
}
}
因此在进行方法重载时有一个重要原则:方法的返回值类型一定要相同。
26:方法递归调用
一个方法自己调用自己。当需要进行方法的递归调用时往往具有以下特点:
- 方法必须有一个递归的结束条件;
- 方法在每次递归处理的时候一定要做出一些变更。
- 范例:实现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 - 1) ; // 做出变更
}
}
理解:
- 第1次执行sum()方法:main()调用,return 100 + sum(99) ;
- 第2次执行sum()方法:sum()调用,return 99 + sum(98) ;
- 倒数第2次执行sum()方法:sum()调用,return 2 + sum(1) ;
- 倒数第1次执行sum()方法:sum()调用,满足num == 1,return 1 。
- 范例:实现10!
public class TestDemo { // 定义一个程序类
public static void main(String args[]) {
System.out.println(mul(10)) ;
}
public static int mul(int num) {
if(num == 1) {
return 1;
}
return num * mul(num - 1) ; // 做出变更
}
}
使用while循环的操作都可以使用递归实现。之所以使用递归是因为方法可以执行的操作很多,且代码结构较好。
目前还是不适应博客园的界面,等学成了再回归吧,对我来说当下还是csdn比较方便快捷:https://blog.csdn.net/weixin_43624945