函数(方法)以及方法(函数)的重载

一.函数

1.函数的定义:

如果一个功能的代码被复用起来,那么这时候可以把这里的功能代码封装起来,当下次要执行这个功能时,直接调用封装起来的代码,在Java中把功能代码封装起来是以函数的形式体现的。函数也叫方法

2.举例:

case1:在现实生活中,以前去银行取钱的时候,银行都会有专门的工作人员负责,但是银行发现取钱的步骤都是一致的,后来银行为了解决这个问题,就把取钱的功能封装到一个柜员机中,以后我们再取钱的时候,只需要调用柜员机的取钱功能即可。

case2:地铁自动售票机,接收纸币或硬币,返回车票,该售票机具有独立功能,可以理解为函数。有未知内容参与运算(要投币,纸币还是硬币,要投多少钱),也有返回值(返回车票)。

case3:手机具备打电话的功能,有未知的内容(电话号码),键盘是(形参),输入的号码是实际参数。

3.函数的作用:

提高功能代码的复用性

4.函数的定义格式:

修饰符  返回值类型  函数名(参数类型 形式参数1,参数类型 形式参数2,……){
	需要被封装的功能代码(执行语句);
	return 结果(返回值);
}

(1)返回值类型:

返回值类型就是指函数运行完毕后,返回的结果的数据类型。

注意:某些函数是没有结果返回给调用者的,那么这时候返回值类型就是void

(2)函数名:

函数名的作用:如果需要调用该函数就需要使用的函数名,函数名只要符合标识符的命名规则即可。

函数名的命名规范:首单词全部小写,其他单词的首字母大写,其他小写

(3)形式参数:

如果一个函数在运行的时候,存在着数据是要调用者确定的,那么这时候就应该定义形式参数。

形式参数可以理解为一个局部变量,用于存储调用函数传递进来的实际参数。

(4)返回值return:

把一个结果返回给调用者。

5.如何定义一个函数:

(1)是否有未知参数参与运算(是否存在要由调用者确定的参数)——>形式参数。

(2)是否有返回值以及返回值的类型。

6.函数调用:

要想使用方法,就必须调用它。

7.函数的特点:

(1)函数的作用就是把一个功能代码给封装起来,以达到提高功能代码的复用性

(2)函数定义好之后,是需要被调用才会执行的。

注意:main函数是由JVM调用的,不需要我们手动调用。

(3)如果一个函数没有返回值返回给调用者,那么返回值类型必须是使用void表示。

8.函数中需要注意的事项:

(1)函数中只能调用函数,不可以在函数内部定义函数。因为函数之间是平级的,相互之间是调用关系。

(2)定义函数时,函数的结果应该返回给调用者,交由调用者处理。

(3)当函数的返回值类型是void时,函数中的return语句可以省略不写

(4)下图是函数的错误写法


9.实例:

(1)实例一:

需求:定义一个函数比较两个int类型的数据大小,把最大值返回给调用者。

分析:要比较的这两个数并没有确定,要把这两个数写在形参列表上。也有返回值。

class Demo1{
	public static void main(String[] args){
		int max = getMax(3,4);	//调用了函数,传递实际参数
		System.out.println("最大值是:"+max);	
	}

	public static int getMax(int a,int b){
		int max = 0;	//定义一个变量用于保存最大值
		if(a > b){
			max = a;
		}else{
			max = b;
		}
		return max;	//把结果返回给调用者
	}
}

运行结果如下图所示:


(2)实例二:

需求:定义一个函数比较两个int类型数据的大小,不需要把最大值返回给调用者,直接打印即可。

分析:此时仍然有两个未知的数据进行比较,但是没有返回值

class Demo2{
	public static void main(String[] args){
		getMax(3,5);	//调用了函数,传递实际参数
	}

	public static void getMax(int a,int b){
		int max = 0;	//定义一个变量用于保存最大值
		if(a > b){
			max = a;
		}else{
			max = b;
		}
		System.out.println("最大值是:"+max);	
	}
}

运行结果如下图所示:

(3)实例三:

需求:定义一个函数判断一个分数的等级,把分数的等级返回给调用者。

分析:未知的参数——>形式参数:分数;       返回值类型:String。

class Demo3{
	public static void main(String[] args){
		String result = getGrade(78);//方法有返回值可以定义一个变量接收返回值。变量类型和返 						//回值类型要一致
		System.out.println("您分数的等级是:"+result);	
	}
	public static String getGrade(int score){
		String grade = "";	//定义一个变量存储等级
		if(score >= 90 && score <= 100){
			grade = "A等级";
		}else if(score >= 80 && score <= 89){
			grade = "B等级";
		}else if(score >= 70 && score <= 79){
			grade = "C等级";
		}else if(score >= 60 && score <= 69){
			grade = "D等级";
		}else{
			grade = "补考";
		}
		return grade;	//把等级返回给调用者
	}
}

运行结果如下图所示:


注意:当执行完return语句时,或者执行到方法末尾的方括号时该方法结束。

二.return关键字

1.return关键字的作用:

(1)返回数据给函数的调用者。

(2)函数一旦执行到了return关键字,那么该函数马上结束(能结束一个函数)。

2.注意事项:

(1)一个函数的返回值类型是void,那么也可以出现return关键字,但是return关键字的后面不能有数据。

(2)如果一个函数的返回值类型是具体的数据类型,那么该函数就必须要保证在任意的情况下都有返回值(除了返回值类型是void以外)。比如下面中的分数,如果分数不在0-100的范围以内,应该也有一个返回值。返回值是您输入的分数有误。如果不加else会报错,因为并没有保证在任何情况下都有返回值。

class Demo3{
	public static void main(String[] args){
		String result = getGrade(78);
		System.out.println("您分数的等级是:"+result);	
	}
	public static String getGrade(int score){
		String grade = "";	//定义一个变量存储等级
		if(score >= 90 && score <= 100){
			grade = "A等级";
		}else if(score >= 80 && score <= 89){
			grade = "B等级";
		}else if(score >= 70 && score <= 79){
			grade = "C等级";
		}else if(score >= 60 && score <= 69){
			grade = "D等级";
		}else if(score >= 0 && score <= 59){
			grade = "补考";
		}else{	//如果不加else会报错,因为并没有保证在任何情况下都有返回值。
			grade = "您输入的分数有误";
		}
		return grade;	//把等级返回给调用者
	}
}

3.break关键字与return关键字的区别:

(1)break关键字是结束一个循环

(2)return关键字是结束一个函数

class Demo4 {
	public static void main(String[] args){
		System.out.println("——————break结束一个循环——————");
		print1();
		System.out.println("——————return结束一个函数——————");
		print2();
	}
	public static void print1(){
		for(int i = 0;i < 5;i++){
			System.out.println("Hello Java");
			break;
		}
		System.out.println("我能执行吗?");//break结束循环后仍然可以执行
	}
	public static void print2(){
		for(int i = 0;i < 5;i++){
			System.out.println("Hello Java");
			return;
		}
		System.out.println("我能执行吗?");//return结束函数后不会执行
	}
}

运行结果如下图所示:

三.函数的重载

1.函数重载的定义:

函数的重载也叫方法的重载,在一个类中出现两个或者两个以上的同名函数,这个称作为函数的重载。

2.函数重载存在的原因:

为了增强方法的阅读性,优化了程序设计。

3.函数重载的作用:

同一个函数名可以出现不同的函数,以应对不同个数或者不同数据类型的参数。

4.函数重载的要求:

(1)函数名一致

(2)形参列表不一致。(形式参数的个数或者是对应的数据类型不一致)

(3)与函数的返回值类型是无关的

5.实例:

class Demo5{
	public static void main(String[] args){
		add(1,2);
		add(1,2.0);
		add(1,2,3);
		add(1,2,3,4);	
	}	
	public static double add(int a,int b){
		System.out.println("两个参数的总和:"+(a+b));
		return 3.14;
	}
	public static int add(int a,double b){
		System.out.println("double参数的总和:"+(a+b));
		return 12;
	}
	public static void add(int a,int b,int c){
		System.out.println("三个参数的总和:"+(a+b+c));
	}
	public static void add(int a,int b,int c,int d){
		System.out.println("四个参数的总和:"+(a+b+c+d));
	}
	
}

运行结果如下图所示:









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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

处女座的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值