Java构造函数未定义?

时间:2010-09-11 05:22:34

标签: java methods constructor

好的,我正在为学校做作业,我设置了我的主类,还有另一个名为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对象的位置,它仍然表示未定义。有人请帮忙!

4 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:5)

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

如果根本没有定义构造函数,则会有一个默认构造函数,不会自动为您定义任何参数。

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

答案 2 :(得分:4)

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

答案 3 :(得分:-5)

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