Java基础(08)——函数


版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

一、函数的理解

  这一篇,我们将要学习Java中特别重要的一部分 —— 函数(又称方法),那么,什么是函数呢?从开始学习java到现在,我们见的最多的就是它了吧:

public static void main(String[] args){
}

  它的名字叫做main函数,也称为java程序的主函数,main虽然不是关键字,但它特别特殊,如果说一个程序是一间房子的话,那么main函数就是这间房子的门,是一个程序的入口

  那么,既然它叫函数,那么样式跟他类似的是否也叫函数呢?我们为什么要去创建函数呢?创建函数的时候需要考虑什么问题呢?带着这些问题,我们来认真学习一下函数吧。


二、函数

1、概念

  为了提高代码的复用性,就把该功能封装成一段独立的小程序,当下次需要执行运算的时候,就可以直接调用这段小程序即可,那么这种封装形式的具体表现形式则称作函数

例如,我们可以将两个数相加封装成一个函数,当我们需要将两个数相加的时候直接调就可以了,代码如下:

public class Demo{
	/*
	原创作者:清风不渡
	博客地址:https://blog.csdn.net/WXKKang
	*/
	public static void main(String[] args){
		int a = 4;
		int b = 5;
		int c = a+b;
		System.out.println("c="+c);

		int num = add(4,5);
		System.out.println("num="+num);
	}
	public static int add(int a,int b){
		return a+b;
	}
}

运行结果:
函数图片
  我们可以看到,输出的结果是相同的,并且我们在多次我们需要将两个数相加的时候,就可以连续的调这个方法,就体现出了代码的复用性,减少了工作量。那么,函数应该以什么来写呢?请看下一部分:


2、创建函数

  首先,我们在什么时候需要创建函数呢?这时候我们需要考虑两个问题:

  1. 是否有未知内容参与运算
  2. 是否有运算结果(返回值)

  当我们确认需要创建一个函数的时候,一般来说,我们创建一个函数的格式是下面这样的:

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数二...{
	执行语句;
	[return 返回值;]
}

注:

  • 返回值类型: 运行这段程序得出的一个运算结果的结果类型,如果没有返回值则用函数表示这个函数没有返回值
  • 函数名: 仅仅是一个标识符,命名时遵循驼峰命名规则即可
  • 形式变量: 是一个变量,用于储存调用函数时传进来的实际参数
  • 实际参数: 储存在形式参数里的具体数值
  • 返回值: 返回给调用者的值
  • static: 有的函数是有static的,有的则没有,怎么知道我们需不需要static呢?在后面的面向对象中会详细讲解的

3、函数的使用

  有了这些基础之后,下面我们就来通过一个例子,详细的学习一下函数吧

例: 求两个数的最大值

  就这一道题,我们来完整的进行一次函数从创建到使用的过程:

首先,我们得考虑一下上面的两个创建函数时需要考虑的问题:
  1、是否有未知内容参与运算:我们需要求两个数的最大值,但是我们不知道这两个数是谁,可能是1和3,也可能是4和9,又可能是其他的。
  2、是否有运算结果:求两个数的最大值,我们的结果即为这个最大值,并需要将它返回给调用者。

  了解了需求之后,我们来创建函数,如下:

public class Demo{
	/*
	原创作者:清风不渡
	博客地址:https://blog.csdn.net/WXKKang
	*/
	public static void main(String[] args){
		int max = getMax(2, 5);
		System.out.println("max="+max);
		
	}
	public static int getMax(int a,int b){
		if(a>b) {
			return a;
		}else {
			return b;
		}
	}
}

解析getMax函数:

  1. 函数名为getMax,遵循驼峰命名规则
  2. 参数a,b;返回两个数中较大的一个
  3. public 和 static 是函数的修饰符
  4. 花括号{}内是方法的执行语句,也叫方法体

调用函数:
  我们创建好函数后,需要在main函数里调用getMax()函数,2和5就是给该函数传递的实际参数,并且需要创建一个变量来接收函数的返回值,变脸类型必须和返回值类型一致,本例中通过int类型变量max来接收getMax()函数的返回值。

注意: main方法是程序的入口,由虚拟机调用,并且方法和方法之间不能嵌套,方法之间通过调用来使用

  那么一个函数什么时候执行结束呢?

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


4、函数的特点

1、特点:

  (1)定义函数可以将功能代码进行封装
  (2)便于对该功能进行复用
  (3)函数只有在被调用时才会执行
  (4)函数的出现提升了代码的复用性
  (5)对于函数没有具体返回值的情况,返回值类型用void关键字表示

2、在编写函数时需注意:

  (1)函数不调用不执行,换句话来说,函数之后再被调用后才会执行
  (2)函数与函数之间是平级关系,不能嵌套定义;即不可在函数中再定义函数
  (3)函数定义时参数之间需用逗号隔开
  (4)函数调用的时候不用再传递数据类型
  (5)如果函数有明确的返回值,一定要有return关键字带回一个返回值
  (6)函数的结果应该交回调用者,由调用者进行处理
  (7)return语句执行后,将终止函数的执行,即函数执行完成


5、函数的应用

  函数可以应用在很多地方,现在我们来列举几个例子感受一下函数的应用:

例: 根据学生成绩划分成绩等级,80-100分为A,70-80分为B,60-70分为C,60分以下为D,建议参数类型为double。

  首先,我们考虑一下参数(即学生成绩)传入函数后将要发生的情况,除了A,B,C,D四种情况外,应该还有一种情况,那就是当参数大于100或小于0是应提示输入错误,现在我们就来将它写出来吧,代码如下:

public class Demo{
	/*
	原创作者:清风不渡
	博客地址:https://blog.csdn.net/WXKKang
	*/
	public static void main(String[] args){
		double score = 120;
		printGrade(score);
	}
	public static void printGrade(double score){
		if(score>=90&&score<=100) {
			System.out.println("该生成绩等级为A");
		}else if(score>=70&&score<80){
			System.out.println("该生成绩等级为B");
		}else if(score>=60&&score<70) {
			System.out.println("该生成绩等级为C");
		}else if(score<60&&score>=0) {
			System.out.println("该生成绩等级为D");
		}else {
			System.out.println("输入有误,请再次检查");
		}
	}
}

运行结果:
函数例1


6、函数的重载

  在一个类中,可以有一个以上的函数使用相同的函数名,但是这些函数的参数必须不同,或是参数类型不同,或是参数个数不同,这些方法称之为函数重载

例如: 需要打印不同类型的数据

public class Demo {
	/*
	原创作者:清风不渡
	博客地址:https://blog.csdn.net/WXKKang
	*/
	public static void main(String[] args) {
		int number1 = 1;
		print(number1);
		float number2 = 3.4f;
		print(number2);
		double number3 = 4.8;
		print(number3);

	}
	public static void print(int a) {
		System.out.println("int类型数:"+a);
	}

	public static void print(float a) {
		System.out.println("float类型数:"+a);
	}

	public static void print(double a) {
		System.out.println("double类型数:"+a);
	}
}

  判断两个函数是否重载,这和函数的返回类型无关,也和抛出的异常类型无关,只和函数的参数有关

  好啦,今天的学习就到这里吧!记录学习,记录生活,我还是那个java界的小学生,一起努力吧!!
  欢迎各位看官评论探讨哟 ~ ~ 小生在此谢过了 ~ ~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值