文章目录
- 1. 重载的概念
1. 重载的概念
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
重载的特点:
与返回值类型无关,只看参数列表,且参数列表必须不同。 ( 参数个数或参数类型 ) 。调用时,根据方法参数列表的不同来区别。
重载示例:
// 返回两个整数的和
int add(int x,int y){return x+y;}
// 返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
// 返回两个小数的和
double add(double x,double y){return x+y;}
package default_package;
public class Test4 {
public static void main(String[] args) {
}
//多个同名称的方法如果想在一个类中共存,那么这些同名的方法一定是参数的个数或者参数的数据类型不一样
//这样的同名方法就叫做重载
public int add(int x, int y) {
return x + y;
}
public double add(int x, double y) {
return x + y;
}
public int add(int x, int y, int z) {
return x + y + z;
}
}
练习题1:
判断与 void show(int a,char b,double c){}
构成重载的有:
a) void show(int x,char y,double z){} //no
b) int show(int a,double c,char b){} //yes 顺序不同也是重载
c) void show(int a,double c,char b){} //yes 顺序不同也是重载
d) boolean show(int c,char b){} //yes
e) void show(double c){} //yes
f) double show(int x,char y,double z){} //no
g) void shows(){double c} //no
练习题2:
编程:编写程序,定义三个重载方法并调用。方法名为 mOL 。
(1) 三个方法分别接收一个 int 参数、两个 int 参数、一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。
(2) 在主类的 main () 方法中分别用参数区别调用三个方法。
答案:
package default_package;
public class Test4 {
public static void main(String[] args) {
Test4 t4 = new Test4();
t4.mOL(2);
t4.mOL(2, 3);
t4.mOL("重载方法mOL");
}
public void mOL(int i) {
System.out.println(i * i);
}
public void mOL(int x, int y) {
System.out.println(x * y);
}
public void mOL(String s) {
System.out.println(s);
}
}
运行结果:
练习3:
定义三个重载方法 max() ,第一个方法求两个 int 值中的最大值,第二个方法求两个 double 值中的最大值,第三个方法求三个 double 值中的最大值,并分别调用三个方法。
答案:
package default_package;
public class Test4 {
public static void main(String[] args) {
Test4 t4 = new Test4();
t4.max(0, 1);
t4.max(0.2, 1.5);
t4.max(9.1, 2, 4.5);
}
public void max(int x, int y) {
if(x > y) {
System.out.println("最大值是:" + x);
}else {
System.out.println("最大值是:" + y);
}
}
public void max(double x, double y) {
double res = 0;
if(x > y) {
res = x;
}else {
res = y;
}
System.out.println("最大值是:" + res);
}
public void max(double a, double b, double c) {
double res = 0;
if(a > b) {
if(a > c) {
res = a;
}else {
res = c;
}
}else {
if(b > c) {
res = b;
}else {
res = c;
}
}
System.out.println("最大值是:" + res);
}
}
运行结果: