Estou fazendo um exercício e quebrando a cabeça para concluir essa classe de teste. A intenção aqui seriam cadastros de cidades e estudantes, sendo que cada estudante teria que definir uma nova senha após feito o cadastro. Acredito que eu fiz um salseiro no código, e estou com muitas dúvidas sobre como fazer isso funcionar. Alguém poderia me ajudar? Desde já agradeço a paciência.
import staticorg.junit.jupiter.api.Assertions.*;importorg.junit.jupiter.api.AfterEach;importorg.junit.jupiter.api.BeforeEach;importorg.junit.jupiter.api.Test;importjava.io.*;publicclassTesteFun4Study{publicstaticvoidmain(String[]args){System.out.println("Cadastre a Cidade 1: ");Cidadec1=newCidade(Teclado.leInt("Informe o código: "),Teclado.leString("Informe a descrição: "),Teclado.leString("Informe a UF: "));System.out.println("Cadastre o Estudante 1: ");Estudantee1=newEstudante(Teclado.leInt("Informe o código: "),Teclado.leString("Informe o nome: "),Teclado.leString("Informe a data de nascimento: "),Teclado.leString("Informe o e-mail: "),Teclado.leString.Senha("Informe a senha: "),c1);StringsenhaAnterior=Teclado.leString("Digite a senha do Estudante 1: ");if((e1.getSenha()).equals(senhaAnterior)){e1.setSenha(novaSenha);}else{System.out.println("Não foi possível alterar a senha! As senhas digitadas não conferem!");}System.out.println("Cadastre o Estudante 2: ");Estudantee2=newEstudante(Teclado.leInt("Informe o código: "),Teclado.leString("Informe o nome: "),Teclado.leString("Informe a data de nascimento: "),Teclado.leString("Informe o e-mail: "),Teclado.leString("Informe a senha: "),c1);StringsenhaAnterior=Teclado.leString("Digite a senha do Estudante 2: ");if((e2.getSenha()).equals(senhaAnterior)){e2.setSenha(novaSenha);}else{System.out.println("Não foi possível alterar a senha! As senhas digitadas não conferem!");}c1.exibeDados();e1.exibeDados();e2.exibeDados();System.out.println("Cadastre a Cidade 2: ");Cidadec2=newCidade(Teclado.leInt("Informe o código: "),Teclado.leString("Informe a descrição: "),Teclado.leString("Informe a UF: "));System.out.println("Cadastre o Estudante 3: ");Estudantee3=newEstudante(Teclado.leInt("Informe o código: "),Teclado.leString("Informe o nome: "),Teclado.leString("Informe a data de nascimento: "),Teclado.leString("Informe o e-mail: "),Teclado.leString("Informe a senha: "),c2);StringsenhaAnterior=Teclado.leString("Digite a senha do Estudante 2: ");if((e3.getSenha()).equals(senhaAnterior)){e3.setSenha(novaSenha);}else{System.out.println("Não foi possível alterar a senha! As senhas digitadas não conferem!");}System.out.println("Cadastre o Estudante 4: ");Estudantee4=newEstudante(Teclado.leInt("Informe o código: "),Teclado.leString("Informe o nome: "),Teclado.leString("Informe a data de nascimento: "),Teclado.leString("Informe o e-mail: "),Teclado.leString("Informe a senha: "),c2);StringsenhaAnterior=Teclado.leString("Digite a senha do Estudante 2: ");if((e4.getSenha()).equals(senhaAnterior)){e4.setSenha(novaSenha);}else{System.out.println("Não foi possível alterar a senha! As senhas digitadas não conferem!");}c2.exibeDados();e3.exibeDados();e4.exibeDados();}}
Fala Victor, blz?
Não cheguei a rodar oq vc fez mas parece q esta do jeito q vc quer.
Qual Seria a sua duvida? e cada passagem d construtor, vc ja pega a senha digitada e set no atributo, certo?
Sua duvida seria no .equals? se a variavel senhaAnterior estiver vazia, vai dar sempre q a senha não confere
Espero ter ajudado
C
codethebasics
packageorg.jus.trf1.trf1webapi.temp;importjava.time.LocalDate;importjava.time.LocalDateTime;importjava.util.ArrayList;importjava.util.List;/** * ------------------------------ * Vamos reescrever a classe para * entender melhor os pontos * ------------------------------ * @author codethebasics */publicclassTesteFun4Study{/** * Você mencionou que sua intenção seriam realizar * cadastros de CIDADES e ESTUDANTES. * Logo, precisaremos de ações que realizem esse comportamento * além das classes Cidade e Pessoa. * Vamos supor que a relação entre esta classe, a classe Pessoa * e a classe Cidade seja uma composição. Sendo assim, vamos declarar * essas classes de forma interna (classe interna). *//** * ------------------------------------------ * Classe interna que representa um estudante * ------------------------------------------ */staticclassEstudante{privatefinalIntegercodigo;privatefinalStringnome;privatefinalStringdataNascimento;privatefinalStringsenha;publicEstudante(Integercodigo,Stringnome,StringdataNascimento,Stringsenha){this.codigo=codigo;this.nome=nome;this.dataNascimento=dataNascimento;this.senha=senha;}publicIntegergetCodigo(){returncodigo;}publicStringgetNome(){returnnome;}publicStringgetDataNascimento(){returndataNascimento;}publicStringgetSenha(){returnsenha;}}/** * ---------------------------------------- * Classe interna que representa uma cidade * ---------------------------------------- */staticclassCidade{privatefinalIntegercodigo;privatefinalStringdescricao;privatefinalStringuf;publicCidade(Integercodigo,Stringdescricao,Stringuf){this.codigo=codigo;this.descricao=descricao;this.uf=uf;}publicIntegergetCodigo(){returncodigo;}publicStringgetDescricao(){returndescricao;}publicStringgetUf(){returnuf;}}/** * Tudo pronto para declararmos nossas coleções que armazenarão * os objetos Estudante e Cidade */privatestaticfinalList<Estudante>estudantes=newArrayList<>();privatestaticfinalList<Cidade>cidades=newArrayList<>();/** * Agora que já temos os objetos os quais queremos trabalhar, * vamos criar as funções para realizar o cadastro. * As funções serão declaradas com o modificador static apenas * para ser mais fácil de exemplificar, visto que será rodado pelo * método main, o qual também é static. Fazendo isso não precisaremos * criar uma instância da própria classe dentro do método main com o fim * de utilizar os métodos. *//** * ------------------------------------------- * Adiciona um estudante à lista de estudantes * ------------------------------------------- * @param estudante Estudante a ser cadastrado * @return Estudante cadastrado */publicEstudantecadastrarEstudante(Estudanteestudante){try{this.estudantes.add(estudante);returnestudante;}catch(Exceptione){// Aqui você poderia incluir alguma lógica para se recuperar da exceptione.printStackTrace();}returnnull;}/** * ---------------------------------------- * Adiciona um estudante à lista de cidades * ---------------------------------------- * @param cidade Cidade a ser cadastrada * @return Cidade cadastrada */publicCidadecadastrarCidade(Cidadecidade){try{this.cidades.add(cidade);returncidade;}catch(Exceptione){// Aqui você poderia incluir alguma lógica para se recuperar da exceptione.printStackTrace();}returnnull;}/** * -------------------------------------------- * Vamos criar um método para exibir a lista de * Cidades e de Estudantes * -------------------------------------------- */publicstaticvoidexibirListaDeEstudantes(booleanexibirSenha){estudantes.forEach(estudante->{System.out.println("Código ...........................: "+estudante.getCodigo());System.out.println("Nome .............................: "+estudante.getNome());System.out.println("Data de nascimento ...............: "+estudante.getDataNascimento());if(exibirSenha)System.out.println("Senha ........................: "+estudante.getSenha());});}publicstaticvoidexibirListaDeCidades(){cidades.forEach(cidade->{System.out.println("Código ...........................: "+cidade.getCodigo());System.out.println("Descrição ........................: "+cidade.getDescricao());System.out.println("UF ...............................: "+cidade.getUf());});}/** * ------------------------------------------------------------- * Vamos criar mais 2 métodos para buscar um registro individual * de Estudante ou Cidade * ------------------------------------------------------------- */publicstaticEstudantebuscarEstudantePeloCodigo(Integercodigo){returnestudantes.stream().filter(estudante->estudante.getCodigo()==codigo).findFirst().orElseThrow(()->newRuntimeException("Não foi possível encontrar o registo com o código de número: "+codigo));}publicstaticCidadebuscarCidadePeloCodigo(Integercodigo){returncidades.stream().filter(cidade->cidade.getCodigo()==codigo).findFirst().orElseThrow(()->newRuntimeException("Não foi possível encontrar o registo com o código de número: "+codigo));}/** * --------------------------------------------- * Vamos isolar a lógica para exibir os detalhes * --------------------------------------------- */publicstaticvoidexibirDadosDoEstutante(Estudanteestudante){System.out.println("Código ......................: "+estudante.getCodigo());System.out.println("Nome ........................: "+estudante.getNome());System.out.println("Data de Nascimento ..........: "+estudante.getDataNascimento());}publicstaticvoidexibirDadosDaCidade(Cidadecidade){System.out.println("Código ......................: "+cidade.getCodigo());System.out.println("Descrição ...................: "+cidade.getDescricao());System.out.println("UF ..........................: "+cidade.getUf());}/** * ------------------------------------------ * Por fim vamos escrever o nosso método main * para executar o que foi desenvolvido * ------------------------------------------ */publicstaticvoidmain(String[]args){System.out.println("--------------------");System.out.println("Cadastre a Cidade 1 ");System.out.println("--------------------");System.out.println("Informe o código: ");IntegercodigoCidade=0;// <-- Pegue o que o usuário digitou no tecladoSystem.out.println("Informe a descricao: ");StringdescricaoCidade="";// <-- Pegue o que o usuário digitou no tecladoSystem.out.println("Informe a UF: ");StringufCidade="";// <-- Pegue o que o usuário digitou no teclado// Criando e cadastrando o objeto Cidade...Cidadecidade1=newCidade(codigoCidade,descricaoCidade,ufCidade);cidades.add(cidade1);// faça o mesmo para as demais cidadesSystem.out.println("----------------------");System.out.println("Cadastre o Estudante 1");System.out.println("----------------------");System.out.println("Informe o código: ");IntegercodigoEstudante=0;// <-- Pegue o que o usuário digitou no tecladoSystem.out.println("Informe o nome: ");StringnomeEstudante="";// <-- Pegue o que o usuário digitou no tecladoSystem.out.println("Informe a data de nascimento: ");StringdataNascimentoEstudante="";// <-- Pegue o que o usuário digitou no tecladoSystem.out.println("Informe o email: ");StringemailEstudante="";// <-- Pegue o que o usuário digitou no teclado;System.out.println("Informe senha: ");StringsenhaEstudante="";// <-- Pegue o que o usuário digitou no teclado// Criando o objeto EstudanteEstudanteestudante1=newEstudante(codigoEstudante,nomeEstudante,dataNascimentoEstudante,senhaEstudante);estudantes.add(estudante1);// faça o mesmo para os demais estudantes// Para listar:exibirListaDeEstudantes(false/* <- true para mostrar a senha */);exibirListaDeCidades();// Para buscar:exibirDadosDoEstutante(estudante1);exibirDadosDaCidade(cidade1);}}