Первый
public void date() //Default Constructor
- это неправильно . Имя конструктора должно совпадать с именем класса и составляет , а не void
.
public MonthDays() // <-- No-arg constructor, if you provide any constructor
// there is no default constructor.
Во-вторых, вы должны отделить лог c для определения названия месяца от установки значения , И я бы предпочел метод static
и Map
для этого. Например,
private static Map<Integer, String> monthMap = new HashMap<>();
static {
String[] names = { "January", "February", "March", "April", //
"June", "July", "August", "September", "October", //
"November", "December" };
for (int i = 0; i < names.length; i++) {
monthMap.put(i + 1, names[i]);
}
}
// Could be public, just a utility method
private static String getMonthName(int month) {
return monthMap.getOrDefault(month, "Unknown");
}
Затем используйте что-то вроде
public String getMonth() {
return getMonthName(this.month);
}