Olá gente, o código funciona perfeitamente, mas eu quero deixá-lo mais legível em relação a organização. Então, eu estou tentando mover o método cadastrar() e listarCadastros() para a classe Aluno e assim chamar na função main somente. Nesse sentido, como poderia proceder? (já fiz algumas tentativas mas nada)
package projeto;
import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class Principal {
private Scanner l;
private boolean execute;
private List<Aluno> alunos;
public static void main(String[] args) {
new Principal();
}
private Principal() {
l = new Scanner(System.in);
execute = true;
alunos = new ArrayList<Aluno>();
System.out.println("=============================\\nBEM VINDO AO CADASTRO DE USUÁRIOS\\n=============================");
while (execute) {
String opcao = menu();
if (opcao.equalsIgnoreCase("n")) {
cadastrar();
} else if (opcao.equalsIgnoreCase("l")) {
listarCadastros();
} else if (opcao.equalsIgnoreCase("x")) {
execute = false;
} else {
System.out.println("\\nOpção Inválida seu noob !!! \\n");
}
}
}
private String menu() {
System.out.println("Selecione a opção:\\n");
System.out.println("N - Novo cadastro");
System.out.println("L - Listar cadastros");
System.out.println("X - Sair\\n");
return l.nextLine();
}
private void cadastrar() {
boolean cadastrando = true;
while (cadastrando) {
System.out.println("=============================\\nCadastro de Usuários\\n");
Aluno aluno = new Aluno();
aluno.setNome(textInput(" --> Nome:"));
aluno.setCpf(textInput(" --> CPF: "));
aluno.setNascimento(textInput(" --> Data de Nascimento: "));
System.out.println("=============================\\n");
String cadastrar = textInput("==================\\nCONFIRMAR CADASTRO (S/N)?\\n==================");
if (cadastrar.equalsIgnoreCase("s")) {
System.out.println("==================\\n STATUS: Adicionado com sucesso \\n==================\\n");
alunos.add(aluno);
} else if (cadastrar.equalsIgnoreCase("n")){
System.out.println("==================\\n STATUS: Cadastro Ignorado\\n==================\\n");
} else {
System.out.println("\\nOpção inválida seu noob, vou ignorar o cadastro só pra você ter que digitar denovo !!! \\n");
}
String continua = textInput("Continuar cadastrando (S/N) ?");
if (continua.equalsIgnoreCase("N")) {
cadastrando = false;
} else if (continua.equalsIgnoreCase("s")){
} else {
System.out.println("\\nOpção inválida seu noob, eu vou sair só porque você não colabora !!! \\n");
cadastrando = false;
}
}
}
private void listarCadastros() {
if (alunos.size() == 0) {
System.out.println("\\nNão existem cadastros !!!\\n");
} else {
System.out.println("==================================\\nLista de Cadastros\\n");
for (int i = 0; i < alunos.size(); i++) {
Aluno d = alunos.get(i);
System.out.println("Cadastro número: " + i);
System.out.println("\\tNome: " + d.getNome());
System.out.println("\\tCPF: " + d.getCpf());
System.out.println("\\tData de Nascimento: " + d.getNascimento() + "\\n");
}
System.out.println("\\nLista Finalizada\\n==================================\\n");
}
}
private String textInput(String label) {
System.out.println(label);
return l.nextLine();
}
}
_________________________
package projeto;
public class Aluno {
private String nome;
private String cpf;
private String nascimento;
public Aluno(){
}
public String getNome(){
return nome;
}
public void setNome(String name){
this.nome = name;
}
public String getCpf(){
return cpf;
}
public void setCpf(String cpf){
this.cpf = cpf;
}
public String getNascimento(){
return nascimento;
}
public void setNascimento(String nascimento){
this.nascimento = nascimento;
}
}