什么是函数?
函数是一段可以完成某个独立功能的代码,我们只需要写一次,就可以被多次调用,提高了代码的复用性。
为什么需要函数呢?
将大的、复杂的问题分解为若干个小的、简单的问题去求解,能有有效地帮助我们轻松解决复杂问题。
函数设计三要素:
(1)函数名:见名思议,也就是根据功能定名字,按照驼峰写法xxxYyyZzz
(2)参数:调用者传递过来的数据的接收方式,参数可以有多个,也可以没有
(3)返回值类型[void]:返回值类型就是函数执行后要给调用者的数据类型,如果指定了数据类型就必须要有return,如果是void就可以不指定return。
return结果:就要看是否有返回值,如果有返回值的类型,就必须要有一个return被执行,return后面的代码不被执行
函数(方法)的语法:
<public> <static> 返回值类型[void] 方法名([数据类型 参数名,数据类型 参数名,....]){
方法体
[return 结果]
}
<>表示有的时候可以不写
[ ]表示的是定义函数的另外一种情况下的语法
例子:
public class E201_06_01_输出100以内的素数 {
public static void main(String[] args) {
for (int n = 2; n <= 100; n++) {
if (isPrime(n)) {
System.out.printf("%5d", n);
}
}
}
/**
* 判断素数
* @param n 待判断的数
* @return true-是素数,false-不是素
*/
private static boolean isPrime(int n) {
for (int sun = 2; sun <= Math.sqrt(n); sun++) {
if (n % sun == 0) {
return false;
}
}
return true;
}
}
形式参数:在定义函数时给的参数叫做形式参数(形参),参数叫什么名字与功能无关,当然需要遵循见名思议的原则。
实际参数:在调用函数时给的参数叫做实际参数(实参),实参在调用时必须具有实际的值。
我们调用方法是通过值传递的方式把实参的值传递给方法的形参,而且Java语言中只有值传递
方法的重载
重载(overload):在一个类中有两个或者两个以上同名的方法,但是参数不同(两个方法的参数的个数不同,参数的类型不同),跟返回值无关
重载的目的:在于提高代码的可读性和节省命名的词
例如:
public class OverloadDemo {
public static void main(String[] args) {
test();
int a = test(5);
int b = test(7, 8);
double c = test(7.5,5);
}
public static void test(){
System.out.println("第一个方法");
}
public static int test(int a){
System.out.println("第一次重载");
int c = a+1;
return c;
}
public static int test(int a,int b){
System.out.println("第二次重载");
int c = a+b;
return c;
}
public static double test(double a,int b){
System.out.println("第三次重载");
double c = a-b;
return c;
}
}