一、什么是函数
- 函数又称方法,是一段代码的封装。函数的好处是模块化、可重用性。创建一个函数后就可以重复调用。
- 函数包括修饰符、返回值、函数名、函数参数、函数体等部分。
- 例如下面一个计算圆面积的函数:
static
修饰符表明这是一个静态方法,double
表示返回值的类型,circle_area
是函数名,括号
里的是函数的参数,表示要传进来一个double类型的数(半径),{ }
里的是函数体,即函数具体要实现的功能。
定义函数
static double circle_area(double r){
double area = 3.14*r*r;
return area;
}
调用函数
public static void main(String[] args) {
double area = circle_area(9);
}
二、函数重载
- 当函数名相同,而函数参数(类型、个数、顺序)不同时构成函数重载。
- 函数参数名(形参)不同时不构成函数重载
- 函数(返回值)不同时也不构成函数重载
- 函数重载例子:下面定义了6个名字都为
add
的函数,求几个数的和,根据传进来的参数不同java会调用不同的函数,这就是函数重载
。
public class 函数重载 {
public static void main(String[] args) {
int sum = add(100,200); //执行第1个add函数,参数都为整型
System.out.println(sum);
double sum2 = add(100.1, 200); //执行的是第2个add函数,第1个参数为double,第2个int
System.out.println(sum2);
sum2 = add(90,80.5); //执行的是第3人add函数,第1个参数是int型,第2个参数是double型
System.out.println(sum2);
sum2 = add(98.5, 80, 100.8); //执行的是最后一个add函数,有3个参数
System.out.println(sum2);
}
public static int add(int n1, int n2){
return n1+n2;
}
public static double add(double n1, int n2){
return n1+n2;
}
public static double add(int n1, double n2){
return n1+n2;
}
public static double add(double n1, double n2){
return n1+n2;
}
public static double add(float n1, int n2){
return n1+n2;
}
public static double add(double n1, double n2, double n3){
return n1+n2+n3;
}
}
三、函数重载的错误
- 函数参数名(形参)不同时不构成函数重载。
public static int add(int n1, int n2){
return n1+n2;
}
public static int add(int num1, int num2){
return num1+num2;
}
IntelliJ IDEA提示错误:‘add(int int)’ is already defined。函数已经定义了
- 函数(返回值)不同时也不构成函数重载
//如下两个函数,函数名相同,只是返回值类型不同,不构成重载,IntelliJ IDEA提示错误
public static void show(){
System.out.println("我是没有返回值的函数!");
}
public static int show(){
System.out.println("我是没有返回值的函数!");
return 20;
}