Impot java.util.date

Boa noite, sou novo aqui espero não estar postando em lugar errado.
Fiz uma classe Professor.java aonde tem os atributos nome, idMatricula, dataNascimento
Minha duvida é a seguinte, há uma forma de implementar a forma de impressão da data de nascimento convertida fora do toString ?
Segue o código

package br.org.luiz.almeida.junior.aplicativo;

import java.text.SimpleDateFormat;
import java.time.Instant;
import java.util.Date;

/**
 *
 * @author Luiz Almeida Júnior
 */
public class Professor {

    // Variavel Endereços de memória
    // Encapsulamento, limita a visibilidade para os usuarios
    private String nome;
    private int idMatricula;
    private Date dataNascimento;

    // Construtor é uma operação que cria um objeto e / ou inicializa o seu estado.
    public Professor(String nome, int idMatricula, Date dataNascimento) {
        this.nome = nome;
        this.idMatricula = idMatricula;
        this.dataNascimento = dataNascimento;
    }
    // Getter && Setter  obter e ajustar os valores de um determinado atributo do encapsulamento 

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;

    }

    public int getIdMatricula() {
        return idMatricula;
    }

    public void setIdMatricula(int idMatricula) {
        this.idMatricula = idMatricula;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;

    }

    @Override
    public String toString() {
        return "Nome.......: " + nome
                + "\nMatricula..: " + idMatricula
                + "\nNascimento.: " + new SimpleDateFormat("dd/MM/yyyy").format(dataNascimento);
    }
}

O que eu quero é que não precise ser chamado no toString o format, é possivel ?

@Override
    public String toString() {
        return "Nome.......: " + nome
                + "\nMatricula..: " + idMatricula
                + "\nNascimento.: " + new SimpleDateFormat("dd/MM/yyyy").format(dataNascimento);
    }

Segue a classe teste

package br.org.luiz.almeida.junior.programa;

import br.org.luiz.almeida.junior.aplicativo.Professor;
import java.util.Date;

/**
 *
 * @author Luiz Almeida Júnior
 */
public class ProfessorTeste {

    public static void main(String[] args) {

        Professor newProf = new Professor("Maria", 2, new Date(94, 05, 16));
        
        System.out.println(newProf.toString());
    }
}

Grato desde já

Infelizmente não tem como evitar isso não.

Se você quiser a data formatada vai precisar de um formatador.

Você pode imprimir direto o objeto Date, mas raramente o formato padrão é o que nós queremos. Eu escrevi uns exemplos sobre como formatar datas, tem umas outras maneiras de fazer o que você quer caso se interesse, mas não vai evitar o formatador.

http://www.guj.com.br/26-como-formatar-meu-objeto-date-

EDIT: Ah, só pra constar, você postou no lugar correto sim, mas o título do tópico poderia ser melhorado :slight_smile:

[quote=Rodrigo Sasaki]Infelizmente não tem como evitar isso não.

Se você quiser a data formatada vai precisar de um formatador.

Você pode imprimir direto o objeto Date, mas raramente o formato padrão é o que nós queremos. Eu escrevi uns exemplos sobre como formatar datas, tem umas outras maneiras de fazer o que você quer caso se interesse, mas não vai evitar o formatador.

http://www.guj.com.br/26-como-formatar-meu-objeto-date-

EDIT: Ah, só pra constar, você postou no lugar correto sim, mas o título do tópico poderia ser melhorado :)[/quote]
Obrigado pela dica, acho que intendeu errado minha duvida, gostaria de saber se posso por o formatador em outra linha para evitar aquele trecho enorme, grato pela sua resposta.

Ah, nesse caso. Pode sim :slight_smile: Você pode fazer em quantas linhas quiser, concatenando Strings ou até usando um StringBuilder. Segue um exemplo:[code]@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(“Nome…: " + nome);
sb.append(”\nMatricula…: " + idMatricula);

String dataFormatada = new SimpleDateFormat("dd/MM/yyyy").format(dataNascimento);  
sb.append("\nNascimento.: " + dataFormatada);
return sb.toString();

}[/code]

[quote=Rodrigo Sasaki]Ah, nesse caso. Pode sim :slight_smile: Você pode fazer em quantas linhas quiser, concatenando Strings ou até usando um StringBuilder. Segue um exemplo:[code]@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(“Nome…: " + nome);
sb.append(”\nMatricula…: " + idMatricula);

String dataFormatada = new SimpleDateFormat("dd/MM/yyyy").format(dataNascimento);  
sb.append("\nNascimento.: " + dataFormatada);
return sb.toString();

}[/code]
[/quote]

Obrigado pela dica, usei outro método baseado na sua dica, segue a implementação

@Override public String toString() { String valueConvert = new SimpleDateFormat("dd/MM/yyyy").format(dataNascimento); return "Nome.......: " + nome + "\nMatricula..: " + idMatricula + "\nNascimento.: " + valueConvert; }