如何在Java中定义构造函数?

如何在Java中定义构造函数?,java,object,constructor,compiler-errors,undefined,Java,Object,Constructor,Compiler Errors,Undefined,我是Java新手,所以我不确定我的代码到底有什么问题。我一直遇到一个未解决的编译问题:构造函数Student()未定义。我已经做了几个小时了,但我不确定问题出在哪里。我将非常感谢你的帮助。谢谢 您正确创建了构造函数: public Student (String n, char g, Date b, Preference p){ name = n; gender = g; birthDay = b; pref = p; } 但是,此构造函数仅适用于给定的

我是Java新手,所以我不确定我的代码到底有什么问题。我一直遇到一个未解决的编译问题:构造函数Student()未定义。我已经做了几个小时了,但我不确定问题出在哪里。我将非常感谢你的帮助。谢谢
您正确创建了构造函数:

public Student (String n, char g, Date b, Preference p){
     name = n;
     gender = g;
     birthDay = b;
     pref = p;
}
但是,此构造函数仅适用于给定的所有参数。您试图将一个没有参数的学生对象放入构造函数中。这种情况称为默认构造函数

要创建这样的构造函数,您需要执行以下操作:

public Student (){
     //some default initializations
}

您正在无参数调用new Student()。这称为默认构造函数。如果没有其他构造函数,则不必指定默认构造函数。但是如果您有另一个接受参数的构造函数,那么您必须指定它

你只需要把这个添加到你的学生课堂上

public Student(){
}

您需要为
n
g
b
p
传递一个值


所以
newstudent(“hi”、'a',newdate(),myPreference)

在学生类中添加另一个名为a的构造函数。因为在
for
循环中,您使用的是一个没有任何参数的循环。你还没有在学生课堂上定义它

public Student(){
}
只需添加以下行

public Student() {
}

在Student()中初始化变量时,它们应该有修饰符:

私有字符串名称
private char性别
私有布尔匹配


等等,;这可能是您出错的原因。

您正在使用

new Student()
这是错误的,因为您还没有定义一个不带参数的构造函数

您可以通过定义一个新的构造函数来修复它

public Student(){
   //Set default values here
}
或者使用已有的构造函数

Student bestStudent = new Student("Bryan", 'm', ...);

当您没有定义一个类(在本例中为Student())时,Java为该类提供了一个默认构造函数。但是,由于定义了构造函数Student(字符串s、字符c、日期d、首选项p),因此不会自动提供此默认构造函数

现在必须使用指定的构造函数。或者在Student类中实现一个不接受任何参数的构造函数

public Student() { }
您可以使用它来调用另一个具有默认变量的构造函数

public Student() {

     this("", '', null, null); //Assuming you code is made to handle such a situation
}

示例:如果您有名为Main的类 因此,您可以为此类定义构造函数,如下所示:

Main(){

}

有关构造函数的更多详细信息,请参阅。

您的构造函数定义正确,但需要参数。主类没有向构造函数传递任何参数。(另外,最好将代码作为文本,而不是图像)谢谢!我将把参数放在哪里?学生最佳学生=新学生(在这里?);Jorge,请看下面的问题,并标出解决您问题的问题,他们已经回答了这个问题:)Oracle的教程已经包含了您需要的所有基本信息:您是否与您链接的站点有关联?您似乎也在其他帐户下的中链接到了它。如果你有附属关系,你必须披露附属关系。如果你不透露隶属关系,这被认为是垃圾邮件。见:、和。