一:函数

  1. 函数就是方法,函数是具有功能的小程序(代码块)
  2. 函数可以被调用
  3. 函数的格式:修饰符 返回值类型 函数名(参数类型, 形式参数1,参数类型,形式参数2…) { 执行语句; return返回值;} 形如:
1. public static int add(int a,int b){
 System.out.println(“a+b”);
 return a+b;
 }

修饰符:public 等
返回值类型:功能结果的数据类型(如int ,double,boolean等)
方法名:顾名思义起了一个名字,方便我们调用该方法。
(采用驼峰命名xxxYyyZzz 形如: getName testAdd testSum)
参数类型:参数的数据类型(如int ,double,boolean等)

public static int getSumN(int count);


参数名:就是变量
参数分类:
实参:实际参与运算的数据
形参:方法上定义的,用于接收实际参数的变量
方法体语句:就是完成功能的代码块
return:结束函数(方法)
返回值:就是功能的结果,由return带给调用者。

  1. 没有具体返回值时,返回值类型用void表示
  2. 若返回值类型为void,那么函数中的return可以省略不写
  3. 函数的作用就是提高程序复用性和可读性

二:函数(方法)的实例

/*
1.需求一:定义一个功能,完成两个整数和的获取
2.思路:1)既然为定义一个功能,则需用函数体现。
 		2)明确功能的结果为啥?是和,该功能返回值为int
 		3)明确功能实现过程需要未知参与运算?要,加数与被加数。这就是参数列表(参数个数与参数的类型)
		注意:返回值类型与参数类型没有直接关系
 */
 public class TestFunction{
	public static void main(String[] args){
		int c=add(3,4);
		System.out.println("c="+c);
	}
		public static int add(int a,int b){
			return a+b;
		}
}
/*
需求二:定义一个功能,画一个二矩形在控制台
思路:1)明确这功能有结果?没有,因为直接打印在控制台,并未返回调用者。用void
	2)此功能需要位置内容参与运算?有,行和列不确定,两个整数int
	
需求三:定义一个函数功能,获取两个整数是否相等
	思路:        明确功能的结果为啥?是否相等?Boolean类型
			两个整数int
	

需求四:定义一个函数功能,获取两个整数中最大的数
思路:1)明确这功能有结果?有,是最大值,该功能返回值为int
	2)明确功能实现过程需要未知参与运算?有,最大值与最小值,两个int
	
需求五:根据考试成绩获取学生分数对应的等级
90-100 A
80-89  B
70-79  C
60-69  D
60以下 E
*/
public class TestFuntion3{
	public static void main(String[] args){
		testAdd(5,6);
		System.out.println("---------------");
		testRectangle(9,8);
		System.out.println("---------------");

		System.out.println(" testEquals "+ testEquals(1,4));
		System.out.println("----------------");
		testMax(6,3);
		System.out.println("---------------");
		testGetLevel(86);
		System.out.println("---------------");
	}
	public static int testAdd(int a ,int b){
		int c=a+b;
		System.out.println("c="+(a+b)+"\n"+"a="+a+"\n"+"b="+b);
		return(c);
	}

	public static void testRectangle(int row ,int col){
		for(int a=1;a<=row;a++){//行数
			for(int b=1;b<=col;b++){//列数
				System.out.print("*");
			}
			System.out.println();
		}
	}
	public static boolean testEquals(int a,int b){
      	//return  a==b;
		if(a==b){
			return true;
		}
		//return true;
		//else 写不写都可以
			return false;
			/*
			if(a==b)
			returna==b?true:falsse;
			 */
			/*
			boolean x;
			if(a==b)
			x=true;
			else
			x=falsw;
			return x;
			 */
	}
	public static int testMax(int a,int b){
		if(a>b){
			System.out.println("max="+a);
			return a;
		}
		else {
			System.out.println("max="+b);
			return b;
		}
		//return a>b?a:b;
	}
	public static char testGetLevel(int num){
		char level;
		if(num>=90 && num<=100)
			level='A';
		else if(num>=80 && num<=89)
			level='B';
		else if(num>=70 && num<=79)
			level='C';
		else if(num>=60 && num<=69)
			level='D';
		else
			level='E';
		System.out.println("level="+level);
		return level;
	}
			
			
}

运行结果如下:

java 函数名 类名 java函数类型_参数类型

三:函数的重载

  1. 函数重载就是函数的重复调用
  2. 在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
  3. 函数重载与返回值没有关系
  4. 函数重载只与参数列表有关(参数类型, 参数个数, 参数顺序)
  5. 体感函数的利用率
  6. java编译是严谨的,若不确定函数返回值则会报错

函数重载的实例

/*
需求一:打印两整数的和
需求二:打印两小数的和
需求三:打印小数的和
需求四:打印三个整数的和
*/

public class TestFunctionDemo{
	public static void main(String[] args){
		add(9,8);
		System.out.println("-----------");
		add(9.0,8.0);
		System.out.println("-----------");
		add(9,8.0);
		System.out.println("-----------");
		add(9,8,9);
	}


public static int add(int a,int b){
	int c=a+b;
	System.out.println(c);
	return c;
	//可以直接写return a+b;

}


public static double add(double a,double b){
	double c=a+b;
	System.out.println(c);
	return c;
	//可以直接写return a+b;
	
}

public static double add(int  a,double b){
	double c=a+b;
	System.out.println(c);
	return c;
	//可以直接写return a+b;
}

public static int add(int a,int b,int c){
	int d=a+b+c;
	System.out.println(d);
	return d;
	//可以直接写return a+b+c;
	//通过调用另一个重载函数实现重载 return add(a,b)+c;
}

}

运行结果:

java 函数名 类名 java函数类型_java 函数名 类名_02