[JAVA] Como mover os métodos da classe Principal para Aluno e que funcione ?

POO Java

12/09/2019

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;
}



}
Hermano

Hermano

Curtidas 0

Respostas

Hermano

Hermano

12/09/2019

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;
}



}




E essa foi uma das minhas tentativas:



package projeto;

import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;

public class Aluno {

private String nome;
private String cpf;
private String nascimento;
private List<Aluno> alunos
= new ArrayList<Aluno>();


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;
}

void cadastrar() {
boolean cadastrando = true;

while (cadastrando) {
System.out.println("=============================\\nCadastro de Usuários\\n");
Aluno aluno = new Aluno();
aluno.setNome(JOptionPane.showInputDialog(" --> Nome:"));
aluno.setCpf(JOptionPane.showInputDialog(" --> CPF: "));
aluno.setNascimento(JOptionPane.showInputDialog(" --> Data de Nascimento: "));
System.out.println("=============================\\n");

String cadastrar = JOptionPane.showInputDialog("==================\\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 = JOptionPane.showInputDialog("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;
}
}
}

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");
}
}



}
______________
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>();
Aluno aluno = new Aluno();

System.out.println("=============================\\nBEM VINDO AO CADASTRO DE USUÁRIOS\\n=============================");

while (execute) {
String opcao = menu();

if (opcao.equalsIgnoreCase("n")) {
aluno.cadastrar();
} else if (opcao.equalsIgnoreCase("l")) {
aluno.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();
}



privat
GOSTEI 0
Yan Santos

Yan Santos

12/09/2019

Olá Hermano,

Veja se isso lhe ajuda.

Abraço
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>();

		ConAluno conAluno = new ConAluno();
		Menu menu = new Menu();
		
		System.out.println("=============================\\\\\\\\nBEM VINDO AO CADASTRO DE USUÁRIOS\\\\\\\\n=============================");

		while (execute) {
			
			System.out.println(menu.menuPrincipal());
			String opcao = l.nextLine();

			if (opcao.equalsIgnoreCase("n")) {
				alunos = conAluno.cadastrar(alunos);
			} else if (opcao.equalsIgnoreCase("l")) {
				conAluno.listarCadastros(alunos);
			} else if (opcao.equalsIgnoreCase("x")) {
				execute = false;
			} else {
				System.out.println("\\\\\\\\nOpção Inválida seu noob !!! \\\\\\\\n");
			}
		}
	}	
}


public class ConAluno {
	
	private Scanner l;
	
	public ConAluno() {
		l = new Scanner(System.in);
	}
	
	public List<Aluno> cadastrar(List<Aluno> alunos) {
		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;
			}
		}
		
		return alunos;
	}
	
	public void listarCadastros(List<Aluno> alunos) {
		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();
	}
}

public class Menu {
	
	public String menuPrincipal() {
		
		StringBuffer mensagem = new StringBuffer();
		
		mensagem.append("Selecione a opção:\\\\n");
		mensagem.append("N - Novo cadastro\\\\n");
		mensagem.append("L - Listar cadastros\\\\n");
		mensagem.append("X - Sair\\\\n");
		
		return mensagem.toString();
	}
	
}

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;
	}

}
GOSTEI 0
POSTAR