Java构造函数未定义?

Java构造函数未定义?,java,methods,constructor,Java,Methods,Constructor,好的,我正在为学校做作业,我开设了我的主课和另一个叫做Transaction的课。在我的主要课程中,我有: Transaction t = new Transaction(); 事务加下划线:表示构造函数未定义。为什么 事务类如下所示: public class Transaction { private String customerNumber, fName, lName, custAddress, custCity; private int custZip, custPhone; /

好的,我正在为学校做作业,我开设了我的主课和另一个叫做Transaction的课。在我的主要课程中,我有:

Transaction t = new Transaction();
事务加下划线:表示构造函数未定义。为什么

事务类如下所示:

public class Transaction {

private String customerNumber, fName, lName, custAddress, custCity;
private int custZip, custPhone;

/** Constructor*/
public Transaction(String a, String b, String c, String d, String e, int f, int g){
    this.customerNumber = a;
this.fName = b;
this.lName =c;
this.custAddress = d;
this.custCity = e;

}

看起来它应该能工作,但实际上不行。即使我在main中创建新事务对象的地方插入了一组变量,它仍然表示未定义。谁来帮忙

这是因为您没有声明没有参数的构造函数

当您根本没有定义构造函数时,会有一个默认构造函数,它不会自动为您定义参数


但是现在您已经用参数声明了一个构造函数,您现在需要传递它们或声明另一个没有参数的构造函数。

类中没有默认的构造函数定义


当您提供至少一个参数化构造函数的定义时,编译器不再提供默认构造函数。

您需要创建默认构造函数(不带参数的构造函数)

那些说你没有默认构造函数的人,因为你用一个参数来编码一个构造函数的人在思考C++。C++是这样,但不是java。没有默认构造函数这样的东西。您必须为类编写任何构造函数。如果不打算构造任何对象,则不必有构造函数

收缩肌。。。潜意识泄漏?:)看起来您至少需要阅读一些Java101才能开始。我建议您也检查一下变量名。另外,如果你没有全部使用,为什么要在构造函数中参数化
f
g
?在Java中,如果你没有指定构造函数,你会得到一个没有参数的默认构造函数。你是说myClass mc=newmyclass();如果尚未编写无参数构造函数,则可以使用?当我尝试它时,它不起作用。@JD Williams:只有当您不指定任何其他构造函数,而不仅仅是没有参数的构造函数时,默认构造函数才存在。请参阅,它定义了默认构造函数。感谢链接,Matthew。我回去看看我的实验做错了什么。我现在明白了,只有在没有定义构造函数的情况下,才会提供默认值。我的错误是对问题的草率解读……因为他有一个带参数的构造函数,所以他需要提供一个默认值。如果他没有编写任何构造函数,那么编译器将提供一个。顺便说一句,我在发表第一条评论前几分钟在网站上注册了。这不是一个很好的开始,但我很感激能让我的理解力得到提高。