重写父类方法equals
分数 10
全屏浏览
切换布局
作者 sunyu
单位 西南石油大学
在类Point中重写Object类的equals方法。使Point对象x和y坐标相同时判定为同一对象。
裁判测试程序样例:
import java.util.Scanner; class Point { private int xPos, yPos; public Point(int x, int y) { xPos = x; yPos = y; } @Override /* 请在这里填写答案 */ } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Object p1 = new Point(sc.nextInt(),sc.nextInt()); Object p2 = new Point(sc.nextInt(),sc.nextInt()); System.out.println(p1.equals(p2)); sc.close(); } }
输入样例:
10 20
10 20
输出样例:
true
代码长度限制
16 KB
时间限制
4000 ms
内存限制
64 MB
public boolean equals(Object obj) {
Point point = (Point) obj;
return this.xPos == point.xPos && this.yPos == point.yPos;
}
设计Worker类及其子类
分数 15
全屏浏览
切换布局
作者 殷伟凤
单位 浙江传媒学院
设计一个Worker类,有以下方法:
(1)构造方法:带两个输入参数:工人的姓名和小时工资。
(2)小时工资的get/set方法
(3)pay()方法:带一个工作时长输入参数,输出:"Not Implemented"。
接下来设计Worker的子类:HourlyWorker和SalariedWorker。两个子类都重写继承的方法pay()来计算工人的周薪。计时工按实际工时支付每小时工资,超过40小时的超出部分为双倍工资。计薪工人的工资是40小时的工资,不管工作时间是多少。因为与工作时长无关,故SalariedWorker的方法pay()可以不带参数调用。
###类框架定义:
设计的类如下框架所示,完成后将该三类提交。
class Worker {
……
}
class HourlyWorker extends Worker {
……
}
class SalariedWorker extends Worker {
……
}
裁判测试程序样例:
import java.util.Scanner;
//Main测试类
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Worker w1 = new Worker("Joe",15);
w1.pay(35);
SalariedWorker w2 = new SalariedWorker("Sue",14.5);
w2.pay();
w2.pay(60);
HourlyWorker w3 = new HourlyWorker("Dana", 20);
w3.pay(25);
w3.setRate(35);
int h = input.nextInt(); # 输入小时工的工作时长
w3.pay(h);
}
}
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
25
输出样例:
在这里给出相应的输出。例如:
Not Implemented
580.0
580.0
500.0
875.0
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
class Worker {
String name;
double hourlyRate;
public Worker(String name, double hourlyRate) {
this.name = name;
this.hourlyRate = hourlyRate;
}
public double getHourlyRate() {
return hourlyRate;
}
public void setRate(double hourlyRate) {
this.hourlyRate = hourlyRate;
}
public void pay() {
System.out.println("Not Implemented");
}
public void pay(double hourlyRate) {
System.out.println("Not Implemented");
}
}
class HourlyWorker extends Worker {
public HourlyWorker(String name, double hourlyRate) {
super(name, hourlyRate);
}
public void pay(double hour) {
if (hour > 40) {
System.out.println(getHourlyRate() * 40 + 2 * getHourlyRate() * (hour - 40));
} else {
System.out.println(getHourlyRate() * hour);
}
}
}
class SalariedWorker extends Worker {
public SalariedWorker(String name, double hourlyRate) {
super(name, hourlyRate);
}
public void pay() {
System.out.println(40 * getHourlyRate());
}
public void pay(double hourlyRate) {
System.out.println(40 * getHourlyRate());
}
}