Java 创建此对象时遇到问题

Java 创建此对象时遇到问题,java,Java,我对java非常陌生,并试图掌握如何使用两个不同的值创建对象。 我试图创建一个名为Customer的Customer对象,初始值为1和cust1,然后使用toString()将Customer对象显示到输出中 提前谢谢你的帮助 这是我目前拥有的 public class Customer { private int id; private String name; public Customer(int id, String name) { this.id = id;

我对java非常陌生,并试图掌握如何使用两个不同的值创建对象。 我试图创建一个名为Customer的Customer对象,初始值为1和cust1,然后使用toString()将Customer对象显示到输出中

提前谢谢你的帮助

这是我目前拥有的

public class Customer {

private int id;
private String name;





public Customer(int id, String name) {
    this.id = id;
    this.name = name;
    Customer customer = new Customer(1, "cust1");
}

不要在类构造函数中创建新的对象实例-这将导致
StackoverFlowException

public class Customer {

    private final int id;
    private final String name;

    public Customer(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}
在一个单独的类中,您可以使用

Customer customer = new Customer(1, "Name");

你的程序没有入口点,在你的课堂上应该是这样的

public static void main(String[] args)
{
 //objects created here
}
您还可以创建一个
Customer
对象作为
Customer
类的成员,这意味着每个
Customer
对象都包含另一个

您不能像这样设置
Customer
成员

Customer customer = new Customer(); //you also don't have a no argument constructor
customer = 1; //how would it know where to put this 1?
customer = cust1; //same as above
就像这样(如果他们在正确的地方,如上所述)

还是像这样

new Customer(1,"cust1");
总之

  • 你需要一个入口
  • 您正在使用无参数构造函数创建
    Customer
    ,但您只有一个有两个参数的构造函数
  • 出于某种原因,您正在每个
    客户
    内部创建一个
    客户
  • 您没有以正确(甚至有效)的方式设置
    客户
    对象的成员

有什么问题吗?我没有入口点,因为这是一个单独的类,我有一个主类。我应该像这样把我的客户对象放在构造函数中吗?我编辑了我的主要帖子。你不应该在你的
Customer
类中创建你的
Customer
(不是为了你的目的)。它应该由另一个类或在您的入口点方法中创建。您希望在何处使用Customer对象?这就是您应该创建Customer对象的地方。可能在你们的主课上。这节课是关于不可变类的,我不确定我是否真的理解它们,但这就是它所说的要做的。它说1)创建一个名为Customer的Customer对象,初始值分别为1和“Cust1”。2) 使用toString()方法在屏幕上显示customer对象。3) 创建一个名为name的字符串对象引用,并为其指定客户的名称。4) 将值“Bo Beep”指定给对象引用名称。5) 使用toString()方法在屏幕上显示customer对象。最大的问题之一是,每次创建
customer
对象时,都会用它创建另一个
customer
,然后再创建另一个。这就好比每个刚出生的婴儿都已经怀孕,你只会得到无限的
Customer
s,你的构造器永远不会回来。
new Customer(1,"cust1");