我在下面通过打印一些员工详细信息以及每周/每月工资来产生预期结果。
但是我知道我不应该像我一样在构造函数中输入数据。
我只需要为“PartTimeEmployees”提示一小时工作价值,而不是我做的那样。
我已经使用For-Each循环,Enhanced For循环和使用instanceOf运算符进行了测试。
如果我可以获得一些指导/提示或示例,说明如何完成构造函数中当前正在完成的操作,但在TestEmployee类中,这将是很好的。
大多数情况下,我不确定如何描述我想要实现的目标。这有点妨碍谷歌搜索。 (帮助获得更好的头衔也会很棒)
提前致谢。
public class TestEmployee
{
public static void main(String[] args)
{
int size;
Employee[] employees = new Employee[4];
employees[0] = new FullTimeEmployee("Jane", 26000);
employees[1] = new PartTimeEmployee("Jack");
employees[2] = new FullTimeEmployee("Lucy", 52000);
employees[3] = new PartTimeEmployee("Lenny");
for(int i = 0; i < employees.length; i++)
{
employees[i].print();
}
}
}
类:PartTimeEmployee - 构造函数:
public PartTimeEmployee(String thisName)
{
super(thisName);
System.out.println("Please enter the number of hours worked by " + thisName + ": ");
numHours = keyboard.nextInt();
setHours(numHours);
}
答案 0 :(得分:0)
构造函数不适合用户输入。它的主要目的是初始化该类的对象。
而不是在构造函数中执行此操作,您可以尝试这样的
$('#toggle li:has(.dropdown-menu)').on('click', function (event) {
if ($(event.target).parents('.dropdown-menu').length > 0) {
event.stopPropagation();
} else {
event.preventDefault();
}
$(this).find('ul').slideToggle();
});
答案 1 :(得分:0)
您的程序中很可能会有一些逻辑主循环,例如
while(!quit) {
// 1. ask if you want to add part time or full time employee
// 2. ask proper questions
// 3. call correct constructor
}
写这么小的伪代码算法应该是自我解释的,让你去。
第一步:呈现可供用户使用的选项并阅读用户输入 第二步:根据步骤1的用户输入执行动作 第三步:根据步骤1和2的结果最终调用适当的构造函数
答案 2 :(得分:0)
如果我理解你的问题(我真的不确定),你想在主方法中提示员工数据。
在这种情况下,我会使用循环并查询以下内容:
然后使用该信息构造一个Employee
对象(我不认为这里需要子类)。
答案 3 :(得分:0)
如果我收到你的问题,下面可能符合你的需要 -
首先创建通用Employee
类 -
class Employee {
private String name;
private int workingHours;
private final boolean IS_PART_TIME_EMP;
public Employee(String name, int workingHours) {
this.name = name;
this.workingHours = workingHours;
this.IS_PART_TIME_EMP = false;
}
public Employee(String name) {
this.name = name;
this.IS_PART_TIME_EMP = true;
}
public String getName() {
return name;
}
public int getWorkingHours() {
return workingHours;
}
public void setWorkingHours(int workingHours) {
this.workingHours = workingHours;
}
public boolean isPartTimeEmployee() {
return IS_PART_TIME_EMP;
}
}
现在您可以根据自己的要求使用它。
Employee[] employees = new Employee[4];
employees[0] = new Employee("Jane", 26000);
employees[1] = new Employee("Jack");
employees[2] = new Employee("Lucy", 52000);
employees[3] = new Employee("Lenny");
Scanner sc = new Scanner(System.in);
for (Employee employee : employees) {
if(employee.isPartTimeEmployee()) {
System.out.println("Please enter working hours by " + employee.getName() + ": ");
int numHours = sc.nextInt();
employee.setWorkingHours(numHours);
}
}