CG系统网址:http://211.81.175.89
先来看下方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。 具体说明如下:
- 方法名相同
- 方法的参数类型,参数个不一样
- 方法的返回类型可以不相同
- 方法的修饰符可以不相同
- main 方法也可以被重载
方法可以重名,但是重名的方法,参数个数或者类型不能相同。
比如说有两个方法,都叫wangwei方法
但这个两个方法的参数个数或者参数类型不能相同,
public int wangwei(){ return 1; } public int wangwei(int a){ return a; }
这两个方法是可以同时存在的,因为他俩的参数个数不同,一个无参,一个有一个参数,
在调用时,可以通过参数的个数来分辨调用的是哪个方法
【问题描述】
定义Worker类,为该类添加计算工人年收入的重载方法。计算年收入有两个方法,第一个方法是保底工资+年工时*单价;第二种方法是固定月工资*12.
定义测试类,在main方法中分别使用两种方法计算工人的年收入。
main方法的写法如下:注意不要修改main方法除了注释之外的代码,否则会扣分!中文注释在提交作业的时候一定要删除!
要点提示:
(1)第一个方法参数有:保底工资、年工时、单价,三个参数。
(2)第二个方法参数有:月固定工资,一个参数
(3)在测试类中输入保底工资、年工时、单价和月固定工资,输出对应的年收入。
(4)保底工资、年工时、单价、月固定工资均为int类型
输入提示为:无
输入的数据值为:
10000
2000
40
6500
输出结果为:
way1:90000
way2:78000
若测试数据是:
12000
2000
35
7000
则输出结果是:
way1:82000
way2:84000
注意:必须使用方法的重载,否则会扣分!!!
import java.util.Scanner;
class Worker {
public int way(int x,int y,int z) {
return x+y*z;
}
public int way(int x) {
return x*12;
}
}
public class one {
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
int baodi = sc.nextInt();
int gongshi = sc.nextInt();
int danjia = sc.nextInt();
int guding = sc.nextInt();
Worker worker = new Worker();
System.out.println("way1:" + worker.way(baodi, gongshi, danjia));
System.out.println("way2:" + worker.way(guding));
}
}