阿里云【名师课堂】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循环的操作都可以使用递归实现。之所以使用递归是因为方法可以执行的操作很多,且代码结构较好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值