#class #constructor #accessor #mutators
#класс #конструктор #средство доступа #мутаторы
Вопрос:
Я в значительной степени новичок в Java. Меня попросили написать класс Java для очень простого класса Course с именем Course, в котором указаны имена элементов данных и зачетные часы (например, «Программирование и логика I», 4). Ваш класс должен включать методы аксессора (т.Е. get) и мутатора (т. Е. set) для каждого атрибута и, по крайней мере, один перегруженный конструктор, который инициализирует имя элемента данных и количество зачетных часов.
Это то, что у меня есть на данный момент, но я считаю, что я так далеко продвинулся, и мой мозг просто не хочет работать прямо сейчас.
public class Course {
public String courseName;
public int creditHours;
public Course(String courseName, int creditHours) {
this.courseName = courseName;
this.creditHours = creditHours;
public String getCourseName() {
return courseName;
}
public int getCreditHours(){
return creditHours
}
public void setCourse(String course)
{
this.course = course;
}
public void setHours(String hours)
{
this.hours = hours;
}
}
}
Комментарии:
1. Некоторые подсказки для вас, ваши атрибуты должны быть частными, иначе нет смысла в аксессорах и мутаторах, поскольку их можно установить напрямую. Ваш конструктор содержит ваши аксессоры и мутаторы и должен закончиться раньше. Ваши установленные методы неверны, откуда
this.course
берется?
Ответ №1:
Ваш синтаксис просто немного не в порядке. В Java конструкторы объявляются как методы класса почти так же, как и любые другие методы. Попробуйте
public Course {
private String courseName;
private int creditHours;
public Course() {
courseName = null;
creditHours = 0;
}
public Course(String courseName, int creditHours) {
this.courseName = courseName;
this.creditHours = creditHours;
}
// ... and your getters and setters, which look fine except for one missing semicolon
}
Комментарии:
1. Меня всегда раздражает, когда люди комментируют, что что-то сработало, но нет большой зеленой галочки…
Ответ №2:
Прежде всего, ваш конструктор должен завершиться после инициализации ваших переменных. После этого у вас есть реализации вашего метода в скобках class. Вам также следует сделать объявления ваших переменных закрытыми. Только методы будут общедоступными или доступными извне.
Во-вторых, ваши методы установки должны задавать имена ваших переменных. Другими словами
this.courseName = course;
вместо
this.course = course;
у вас нет this.course.
Надеюсь, это поможет.