2015-11-03 44 views
1

的对象,我们刚刚进入的对象和我碰到一个问题就来了。考虑下面的类我创建...的Java:创建从

public class employee{ 
    String name; 
    int waiting_time; 
    int retaining_time; 

    public employee(String name) 
    { 
     this.name=name; 
    } 

    public void setWaitingTime(int waitingtime) 
    { 
     waiting_time = waitingtime; 
    } 

    public int getWaitingTime() 
    { 
     return waiting_time; 
    } 

    public void setRetainingTime(int retainingtime) 
    { 
     retaining_time = retainingtime; 
    } 

    public int getRetainingTime() 
    { 
     return retaining_time; 
    } 
} 

我想要编写创建该类的实例,然后设置waiting_timeretaining_time0只有它创造了第一时间的函数。这两个值将在稍后的程序中添加/减少,但在开始时它们必须为0

public static void addEmployee(String aName) 
{ 
    employee anEmployee = new employee(); //error here says library.employee() is undefined? 
} 

我究竟做了他们是如何在我们的书做了,不知道我要去哪里错了。谢谢您的帮助!

+0

那是哪里'.addEmployee()'方法一样吗?在什么课上?另外,你是如何编译这个项目的?使用'javac'?使用IDE(日食)? – acdcjunior

回答

4

如果添加此构造

public employee(String name) 
{ 
    this.name=name; 
} 

有没有参数没有默认构造函数。如果你自己不写任何构造函数,那么只会为你生成一个默认的构造函数。如果你想除了这个其他一个没有参数的构造函数,你必须将它添加

public employee() { } 

顺便说一句,在Java类通常与一个大写字母开头。

+0

好了,所以它会更有意义有一个默认的构造函数'公务员(){}',再创造的东西,如'setName'和'getName'的名称,而不是我了? – Bob

+0

我通常会设置一个构造函数来设置所有的字段,然后只提供get方法。有很多写作课程的方式,所以你可以选择你想要的方式。 –

+0

是有道理的,然后它的实例调用也只是'员工anEmployee =新员工()''然后anEmployee.setName(“鲍勃”)'或类似这种事情? – Bob

0

您的类唯一的构造函数需要一个字符串作为参数。您需要将字符串作为参数传递:

employee anEmployee = new employee(aName); 
+0

这就是我认为会工作,但它给了我一个错误 - 没有封闭的类型库的实例可访问。 – Bob

1

添加下面的构造函数在类

public employee() 
{ 
    this.waiting_time=0; 
    this.retaining_time=0; 
} 

的错误是由于没有默认构造函数为你添加另一个构造。由于您想将waiting_timeretaining_time设置为0;所以我刚才做的这个构造

+0

然后我只需创建一个setName和getName? – Bob

+0

@ user38254你能做到这一点,或者你可以使用你通过传递字符串对象创建的构造简单地创建你的对象,并设置'waiting_time'和'retaining_time'在它 –