好的,我正在为学校做作业,我设置了我的主类,还有另一个名为Transaction的类。在我的主要课程中,我有:
Transaction t = new Transaction();
并且Transaction有下划线:它表示构造函数未定义。为什么?!
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中创建新Transaction对象的位置,它仍然表示未定义。有人请帮忙!
答案 0 :(得分:8)
您的类中没有默认的构造函数定义。
当您提供至少一个参数化构造函数的定义时,编译器不再为您提供默认构造函数。
答案 1 :(得分:5)
这是因为你没有声明没有参数的构造函数。
如果根本没有定义构造函数,则会有一个默认构造函数,不会自动为您定义任何参数。
但是现在你已经声明了一个带参数的构造函数,你现在需要传递它们或声明另一个没有参数的构造函数。
答案 2 :(得分:4)
您需要创建一个默认构造函数(不带参数的构造函数)。
答案 3 :(得分:-5)
那些说你没有默认构造函数的人,因为你用参数编写了一个构造函数,他们正在思考C ++。这对C ++来说是正确的,但对Java则不然。没有默认构造函数这样的东西。您必须为您的类编写任何构造函数。如果您不打算构造任何对象,则不必具有构造函数。