我在使用Employee age的值时遇到问题,而且我有primeagechecker。 员工具有年龄本身的价值。 Primeagechecker只是检查它是否是素数。然后只是打印一些命令“年龄是素数”。如果它是素数。我不是一个java人,我是Java的初学者。对于年龄检查,结果总是假的。 谢谢你的帮助。
这是我的代码。
public class Employee {
String name;
boolean check;
int age;
Department department;
public ArrayList<Employee> emplo;
static Employee emp1 = new Employee(Department.Accounting,"Counting Guru",55);
static Employee emp2 = new Employee(Department.Accounting,"Counting Pro", 45);
static Employee emp3 = new Employee(Department.Accounting,"Counting Savvy", 40);
static Employee emp4 = new Employee(Department.Accounting,"Counting Novice", 25);
static Employee emp5 = new Employee(Department.Marketing,"Sales Guru", 50);
static Employee emp6 = new Employee(Department.Marketing,"Sales Pro", 48);
static Employee emp7 = new Employee(Department.Marketing,"Sales Savvy", 38);
static Employee emp8 = new Employee(Department.Human_Resources,"Hiring Guru", 58);
static Employee emp9 = new Employee(Department.Human_Resources,"Hiring Pro", 47);
static Employee emp10 = new Employee(Department.Information_Systems,"Hacking Pro", 46);
static Employee emp11 = new Employee(Department.Information_Systems,"Hacking Guru", 51);
static Employee emp12 = new Employee(Department.Information_Systems,"Hacking Savvy", 38);
static Employee emp13 = new Employee(Department.Information_Systems,"Hacking Novice", 23);
Employee(Department department,String name, int age)
{
this.department = department;
this.name = name;
this.age = age;
}
public int getAge()
{
return age;
}
public String getName()
{
return name;
}
public boolean GetChecker()
{
return check;
}
public void addEmplo(Employee x){
if (emplo.isEmpty())
{
emplo.add(x);
}
else
{
int i;
for ( i = 0;i <emplo.size(); ++i){
if(emplo.get(i).getAge() > x.getAge()){
emplo.add(i,x);
break;
}
}
if ( i == emplo.size()){
emplo.add(x);
}
}
}
public ArrayList<Employee> getEmplo(){
return emplo;
}
public String toString(){
StringBuffer sb = new StringBuffer();
sb.append(getDept(department));
sb.append("\t");
sb.append(getName());
sb.append("\t");
sb.append(getAge());
sb.append("\t");
sb.append(GetChecker());
return sb.toString();
}
private Department getDept(Department department){
return department;
}
}
public class PrimeAgeChecker{
Employee age;
PrimeAgeChecker(Employee age)
{
this.age = age;
}
public boolean check(){
boolean status = false;
for (int a = 2; a < age; ++a){
if (age % a == 0)
{
status = true;
}
}
return status;
}
}
答案 0 :(得分:0)
在您的黄金年龄检查员中,您的年龄属于员工类型,这不是某种类型的数字。我甚至不确定a < age
是否应该编译。
无论发生什么,你都在试图看看一个员工是否可以被int整除,这是不会发生的。 PrimeAgeChecker中的年龄应定义为int,并使用employee.getAge()
进行设置答案 1 :(得分:0)
假设您没有遗漏任何内容,则永远不会唤起方法check()
,check
与check()
不同。实际上,您没有PrimeAgeChecker
的实例。
向static
添加PrimeAgeChecker
修饰符并调用PrimeAgeChecker.check()
,
或做一些像PrimeAgeChecker pac=new PrimeAgeChecker();pac.check();