package com.github.lucasdevrj.exercicios.identificandooestudante;
public class Aluno {
private String nome;
private TipoDeAluno tipoDeAluno;
private boolean alunoDoTipoJaDefinido = false;
public Aluno(String nome, TipoDeAluno tipoDeAluno) {
this.nome = nome;
this.tipoDeAluno = tipoDeAluno;
alunoDoTipoJaDefinido = true;
}
public Aluno(String nome) {
this.nome = nome;
}
public void setTipoDeAluno(TipoDeAluno tipoDeAluno) {
if (!alunoDoTipoJaDefinido) {
this.tipoDeAluno = tipoDeAluno;
alunoDoTipoJaDefinido = true;
} else {
System.out.println("O tipo do aluno já foi definido.");
}
}
public void identificar() {
System.out.printf("Aluno: %s - Tipo: %s\n", nome, tipoDeAluno);
}
}
package com.github.lucasdevrj.exercicios.identificandooestudante;
public enum TipoDeAluno {
REGULAR("Regular"),
BOLSISTA("Bolsista");
private final String tipo;
TipoDeAluno(String tipo) {
this.tipo = tipo;
}
@Override
public String toString() {
return tipo;
}
}
package com.github.lucasdevrj.exercicios.identificandooestudante;
public class Bolsista extends Aluno {
public Bolsista(String nome) {
super(nome);
setTipoDeAluno(TipoDeAluno.BOLSISTA);
}
}
/**
* Você está construindo um sistema acadêmico para uma escola. Cada aluno possui um nome e pode
* ser identificado no sistema com uma mensagem padrão. A escola também possui alunos bolsistas.
* Para deixar o sistema mais informativo, queremos exibir o tipo do aluno no momento da
* identificação, como "bolsista" ou "regular".
*
* Crie um programa que:
*
* Defina uma classe Aluno com nome e tipo.
* Crie um método identificar() que que imprime: "Aluno: [nome] - Tipo: [tipo]".
* Crie uma classe Bolsista que herda de Aluno e define o tipo automaticamente como "bolsista".
* Crie um objeto Aluno regular e um Bolsista, e chame o método identificar() de cada um.
* Exemplo de entrada:
*
*
* Aluno aluno1 = new Aluno("Fernanda", "regular");
* Bolsista aluno2 = new Bolsista("Lucas");
*
* aluno1.identificar();
* aluno2.identificar();
*
* Saída esperada:
*
* Aluno: Fernanda - Tipo: regular
* Aluno: Lucas - Tipo: bolsista
*/
package com.github.lucasdevrj.exercicios.identificandooestudante;
public class Principal {
public static void main(String[] args) {
Aluno alunoRegular = new Aluno("João", TipoDeAluno.REGULAR);
Aluno alunoBolsista = new Bolsista("Marcelo");
alunoRegular.identificar();
alunoBolsista.identificar();
alunoBolsista.setTipoDeAluno(TipoDeAluno.REGULAR);
alunoBolsista.identificar();
alunoRegular.setTipoDeAluno(TipoDeAluno.BOLSISTA);
alunoRegular.identificar();
}
}

Beleza?