2015-12-12 3 views
-1

Я новичок в Java, поэтому не знаю, что именно представляет собой проблема с моим кодом. Я продолжаю получать проблему неразрешенной компиляции: конструктор Student() не определен. Я работаю над этим часами, но я не уверен, в чем проблема. Я был бы признателен за помощь. Благодаря! This is the main class Here is the Student classКак вы определяете конструктор в Java?

+0

Ваш конструктор определен правильно, но ожидает параметров. Ваш основной класс не передает никакие параметры конструктору. (Кроме того, лучше всего включить ваш код в виде текста, а не как изображение) – sstan

+0

Спасибо! где бы я поместил параметры? Студенческий beststudent = новый Студент (внутри здесь?); – Jorge

+1

Jorge, см. Вопросы ниже и отметьте тот, который решил вашу проблему, они уже ответили на этот вопрос :) –

ответ

1

Вы создали свой конструктор правильно:

public Student (String n, char g, Date b, Preference p){ 
    name = n; 
    gender = g; 
    birthDay = b; 
    pref = p; 
} 

Однако этот конструктор работает только со всеми этими аргументами. Вы пытаетесь создать объект-ученик без каких-либо параметров в конструкторе. Этот случай называется конструктором по умолчанию .

Чтобы сделать такой конструктор, вы могли бы сделать:

public Student(){ 
    //some default initializations 
} 
0

Вы вызываете новую Student() без аргументов. Это называется конструктором по умолчанию. Вам не нужно указывать конструктор по умолчанию, если нет других конструкторов. Но если у вас есть другой конструктор, который принимает аргументы, тогда вы должны указать его.

Вам просто нужно добавить это в свой класс учеников.

public Student(){ 
} 
0

Вам нужно передать значение для n, g, b, p.

Так new Student("hi", 'a', new Date(), myPreference)

0

Добавить еще один конструктор, который называется no-argument constructor к классу студентов. Потому что в цикле for вы используете один без каких-либо аргументов. И вы не определили его в классе Студента.

Просто добавьте следующие строки.

public Student() { 
} 
0

при инициализации переменных в Student() они должны иметь модификаторы:

private String name; private char gender; private Boolean matched;

и т.д.; это может быть причиной вашей ошибки.

1

Вы инстанцирование студента, используя

new Student() 

Что это неправильно, потому что вы еще не определили конструктор, который не принимает никаких параметров.

Вы можете это исправить, либо определяя новый конструктор

public Student(){ 
    //Set default values here 
} 

Или с помощью конструктора у вас уже есть.

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

Java предоставляет конструктор по умолчанию для класса, если вы его не определяете (в данном случае Student()).Однако, поскольку определенный конструктор Student (String s, char c, Date d, Preference p), этот конструктор по умолчанию не предоставляется автоматически.

Теперь вам нужно либо использовать указанный вами конструктор. Или реализовать конструктор в классе Student, который не принимает никаких параметров

public Student() { } 

Вы можете использовать это, чтобы вызвать другой конструктор с переменными по умолчанию.

public Student() { 

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

Пример: Если у вас есть класс с именем Main Таким образом, вы можете определить конструктор для этого класса, как:

Main(){ 

} 

Для получения более подробной информации о конструкторах, пожалуйста, обратитесь к this link.

Смежные вопросы