Java:从类创建对象

Java:从类创建对象,java,class,object,new-operator,Java,Class,Object,New Operator,我们刚刚进入对象,我遇到了一个问题。给定我创建的以下类 public class employee{ String name; int waiting_time; int retaining_time; public employee(String name) { this.name=name; } public void setWaitingTime(int waitingtime) { wai

我们刚刚进入对象,我遇到了一个问题。给定我创建的以下类

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;
    }
}
我试图编写一个函数来创建这个类的一个实例,然后将
等待时间
保留时间
设置为
0
,这是它第一次被创建。这两个值稍后将在程序中进行加减,但它们在开始时必须为
0

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

我完全按照他们在我们的书中所做的那样去做,不知道我错在哪里。谢谢你的帮助

如果添加此构造函数

public employee(String name)
{
    this.name=name;
}
没有无参数的默认构造函数。只有您自己不编写任何构造函数时,才会为您生成默认构造函数。如果您想要一个除了这个构造函数之外没有参数的构造函数,那么必须添加它

public employee() { }

顺便说一下,Java中的类通常以大写字母开头。

如果添加此构造函数

public employee(String name)
{
    this.name=name;
}
没有无参数的默认构造函数。只有您自己不编写任何构造函数时,才会为您生成默认构造函数。如果您想要一个除了这个构造函数之外没有参数的构造函数,那么必须添加它

public employee() { }

顺便说一下,Java中的类通常以大写字母开头。

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

employee anEmployee = new employee(aName);

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

employee anEmployee = new employee(aName);

在类中添加以下构造函数

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

此错误是由于添加了另一个构造函数而缺少默认构造函数所致。因为您想将
等待时间
保留时间
设置为0;因此,我在这个构造函数中也做了同样的操作,在您的类中添加以下构造函数

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

此错误是由于添加了另一个构造函数而缺少默认构造函数所致。因为您想将
等待时间
保留时间
设置为0;所以我在这个构造函数中也做了同样的事情

.addEmployee()
方法在哪里?在哪个班?还有,你是如何编译这个项目的?使用
javac
?使用IDE(eclipse)?该
.addEmployee()
方法在哪里?在哪个班?还有,你是如何编译这个项目的?使用
javac
?在IDE(eclipse)中使用?好吧,那么使用默认构造函数
public employee(){}
,然后为名称创建
setName
getName
之类的内容,而不是我拥有的内容,这会更有意义吗?我通常会创建一个设置所有字段的构造函数,然后只提供get方法。有很多方法可以编写类,所以你可以选择你想要的方式。有道理,然后它的实例化调用就是
Employee-anEmployee=new-Employee()
然后
anEmployee.setName(“Bob”)
或者类似的东西?好的,因此,使用默认构造函数
public employee(){}
,然后为名称创建
setName
getName
之类的内容,而不是我所拥有的内容,这会更有意义。我通常会创建一个设置所有字段的构造函数,然后只提供get方法。编写类的方法有很多种,因此您可以选择想要的方式。有意义的话,那么它的实例化调用就是
Employee-anEmployee=new-Employee()
然后
anEmployee.setName(“Bob”)
或类似性质的东西?这是我认为可行的,但它给了我一个错误--没有可访问的类型库的封闭实例。这是我认为可行的,但它给了我一个错误--没有可访问的类型库的封闭实例。然后我是否只需要创建一个setName和getName?@user38254您可以这样做,也可以这样做只需使用通过传递字符串对象创建的构造函数创建对象,并在其中设置
等待时间
保留时间
,然后我只需创建一个setName和getName?@user38254您可以这样做,或者您可以使用通过传递字符串对象创建的构造函数创建对象,并设置
等待时间
保留时间
public employee(String name)
{
    this.name=name;
}