#java
#java
Вопрос:
это мой 2-й класс, отображение, которое он мне выдает, равно «null», есть ли решение моей проблемы? Как я могу отобразить свою дату рождения, вызвав метод?
class studentInfo {
private String format;
public String date() {
LocalDate dob=LocalDate.of(1996, 9, 8);
DateTimeFormatter formatter=DateTimeFormatter.ofPattern("8 September,1996");
format=dob.format(formatter);
return format;
}
public void displayInfo() {
System.out.println("Date of Birth:" format);
}
}
Комментарии:
1.
System.out.println("Date of Birth:" date());
2. Или:
date(); System.out.println("Date of Birth:" format);
3. Имена классов НЕ должны начинаться со строчного символа. Следуйте соглашениям, используемым JDK.
4. Я рекомендую прочитать учебник по конструкторам, например, этот от Oracle .
5. Здравствуйте и добро пожаловать. Проблема в том, что вы, скорее всего, не вызываете date перед displayInfo. Я бы вызвал date из конструктора и сделал его закрытым, если вы используете его только из displayinfo.
Ответ №1:
Сначала вам нужно вызвать метод date(), поскольку этот метод устанавливает значение переменной экземпляра format , поэтому при вызове displayInfo() вы можете увидеть установленное значение.
Также обновлен шаблон.
Вот измененный код:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
class StudentInfo {
private String format;
public String date() {
LocalDate dob = LocalDate.of(1996, 9, 8);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
format = dob.format(formatter);
return format;
}
public void displayInfo() {
System.out.println("Date of Birth:" format);
}
}
public class Test {
public static void main(String[] args) {
StudentInfo studentInfo = new StudentInfo();
studentInfo.date();
studentInfo.displayInfo();
}
}
Комментарии:
1. Geezzz, большое вам спасибо.
Ответ №2:
Вы не вызывали метод date() .
Обновленный код :
class studentInfo {
public String date() {
LocalDate dob = LocalDate.of(1996, 9, 8);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM,YYYY", Locale.US);
String format = dob.format(formatter);
return format;
}
public void displayInfo() {
System.out.println("Date of Birth:" date());
}
}
public class Sample {
public static void main(String[] args) {
studentInfo info = new StudentInfo();
info.displayInfo();
}
}
Вывод :
Date of Birth:08 Sep,1996