Лучший способ отображения Java

#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