2011-05-17 2 views
1

Я очень новичок в Java. Меня попросили написать класс java для очень простого класса курса под названием Course, который имеет имя членов данных и количество часов (например, «Программирование и логика I», 4). Ваш класс должен включать методы accessor (т.е. get) и mutator (т. Е. 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; 
    } 

} 
} 
+0

Некоторые подсказки для вас, ваши атрибуты должны быть конфиденциальными или нет смысла в аксессуарах и мутаторах, поскольку они могут быть установлены непосредственно. Ваш конструктор содержит ваши аксессоры и мутаторы и должен заканчиваться раньше. Ваши методы набора неправильные, откуда происходит «this.course»? –

ответ

1

Прежде всего, ваш конструктор должен закончиться после инициализации переменных. Затем у вас есть реализации вашего метода после этого, в скобках класса. Вы также должны сделать ваши объявления переменных частными. Только методы будут общедоступными или доступны снаружи.

Во-вторых, ваши методы setter должны устанавливать ваши имена переменных. Другими словами

this.courseName = course; 

вместо

this.course = course; 

вы не имеете this.course.

Надеюсь, это поможет.

+0

Спасибо, решил! – Alex

3

Ваш синтаксис просто немного выключен. В 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 
} 
+0

Спасибо, решил! – Alex

+1

Мне всегда нахожу, что это раздражает, когда люди замечают, что что-то работает, но нет большой зеленой галочки ... – L0j1k