<p><img src="https://i.imgur.com/D01Fpky.png" alt="" title="Entre no nosso site e veja nossos cursos"></p> <h1> <img class="emoji" alt=":coffee:" src="https://cdn.jsdelivr.net/npm/@hackmd/emojify.js@2.1.0/dist/images/basic/coffee.png"> Java OO Aulas 8 e 9 </h1> <p>O objetivo deste curso é abordar os principais conceitos, empregar as principais estruturas de dados, e trabalhar utilizando as principais boas práticas de Programação Orientada a Objetos [POO] em **Java**. <span></span></p> <blockquote style="border-left-color: red;"> <p><span class="color" data-color="red"></span><span> </span><small><i class="fa fa-user"></i> Prof Fernando Gomes - fernandojnr@gmail.com</small></p></blockquote> <h2 id="-Tema-da-aula" data-id="-Tema-da-aula"><a class="anchor hidden-xs" href="#-Tema-da-aula" title="-Tema-da-aula"><span class="octicon octicon-link"></span></a><img class="emoji" alt=":book:" src="https://cdn.jsdelivr.net/npm/@hackmd/emojify.js@2.1.0/dist/images/basic/book.png"> <span> Tema da aula:</span></h2><span> <p><br /><strong>CRUD completo com Array</strong></p> <p>Este projeto apresenta um CRUD completo utilizando Array. CRUD &eacute; um projeto que cont&eacute;m as 4 principais opera&ccedil;&otilde;es que podemos fazer em uma estrutura de dados ou em um banco de dados:</p> <p>. <strong>CREATE</strong> - cria&ccedil;&atilde;o de novos registros;<br />. <strong>READ</strong> ou retrieve - leitura de um ou mais registros;<br />. <strong>UPDATE</strong> - atualiza&ccedil;&atilde;o de um ou mais registros;<br />. <strong>DELETE</strong> - remo&ccedil;&atilde;o de um ou mais registros.</p> <p>O objetivo desse projeto &eacute; familiarizar novos alunos com recursos de programa&ccedil;&atilde;o orientada a objetos. A melhor forma de dominarmos uma linguagem de programa&ccedil;&atilde;o &eacute; exercitando o desenvolvimento apenas com os recursos da linguagem, no in&iacute;cio de nosso aprendizado. Dessa forma, focamos em l&oacute;gica de programa&ccedil;&atilde;o e algoritmos aplicados &agrave; codifica&ccedil;&atilde;o que estamos aprendendo.</p> <p><span style="text-decoration: underline;">REGRAS DO PROJETO:</span></p> <p><strong>Inserir em array vazio</strong> ( tamanho do array, varargs de objetos )<br />1) verificar se foi informado tamanho zero;<br />se n&atilde;o, criar array;<br /><br />2) inserir elementos; se atingir o tamanho do array e ainda houver elementos, lan&ccedil;ar exce&ccedil;&atilde;o;</p> <p><br /><strong>Inserir em array que j&aacute; existe</strong> ( tamanho do array, varargs de objetos )<br />1) verificar se o array existe; se n&atilde;o existe, d&aacute; uma msg e n&atilde;o faz nada</p> <p>2) se o array existe, percorre o array at&eacute; achar posi&ccedil;&atilde;o vazia;<br />se achou, verifica se vai haver espa&ccedil;o para todas as inser&ccedil;&otilde;es<br />se sim, insere...</p> <p><strong>Listar Array</strong><br />1) verifica se &eacute; vazio, se n&atilde;o for, lista<br />se o conte&uacute;do de uma posi&ccedil;&atilde;o for null, d&aacute; uma msg de espa&ccedil;o vazio</p> <p><strong>Atualizar Pessoa</strong><br />1) verifica se &eacute; vazio<br /><br />2) percorre o array, comparando pelo id - se achou, atualiza e incrementa o "achado"<br />sen&atilde;o, d&aacute; a msg "pessoa n&atilde;o encontrada"</p> <p><br /><strong>Remover Pessoa</strong></p> <p>1)verifica se &eacute; vazio<br />2)percorre o array, comparando pelo id - se achou, remove e incrementa o "achado"<br />3)sen&atilde;o, d&aacute; a msg "pessoa n&atilde;o encontrada"</p> <p>Depois de remover, precisa deslocar todos os outros registros para ocupar o espa&ccedil;o vazio; se o array estava cheio, precisa deslocar a &uacute;ltima posi&ccedil;&atilde;o p/a pen&uacute;ltima e colocar a &uacute;ltima como null, porque passou a ser espa&ccedil;o vazio</p> <br> </span> <h4> Estrutura do projeto depois de finalizado </h4> ![](https://i.imgur.com/6qhWuiC.jpg) <h3> Pessoa.java </h3> ```java= package entity; public class Pessoa { private Integer id; private String nome; private Integer idade; public Pessoa() { } public Pessoa(Integer id, String nome, Integer idade) { this.id = id; this.nome = nome; this.idade = idade; } @Override public String toString() { return "Pessoa [id=" + id + ", nome=" + nome + ", idade=" + idade + "]"; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public Integer getIdade() { return idade; } public void setIdade(Integer idade) { this.idade = idade; } } ``` <h3> ControlPessoaArray.java </h3> ```java= package controll; import java.util.Arrays; import entity.Pessoa; public class ControlPessoaArray { private Pessoa[] pessoas; public Pessoa[] getPessoas() { return pessoas; } public void setPessoas(Pessoa[] pessoas) { this.pessoas = pessoas; } public Boolean vetorVazio() { if (this.pessoas.length == 0) { System.out.println("Array Vazio!!!"); return true; } else { return false; } } public void adicionarPessoaVazio(Integer n, Pessoa... p) { if (n == 0) { System.out.println("Adicao invalida!!!"); } else { this.pessoas = new Pessoa[n]; int i = 0; for (Pessoa x : p) { if (i > (this.pessoas.length - 1)) { throw new ArrayIndexOutOfBoundsException ("Numero de registros " + "excede o tamanho do Array!!!"); } else { this.pessoas[i] = new Pessoa(x.getId(), x.getNome(), x.getIdade()); i++; } } } } public void adicionarPessoa(Integer n, Pessoa... p) { if (this.pessoas.length == 0) { System.out.println ("Necessario criar o Array primeiro!!!"); } else { int i = 0; while ((i < this.pessoas.length) && (this.pessoas[i] != null)) { i++; } if (i == (this.pessoas.length - 1)) { System.out.println("Array cheio!!!"); } else { if ((this.pessoas.length - i) < n) { System.out.println ("Numero de registros " + "excede o tamanho do Array!!!"); } else { for (Pessoa x : p) { this.pessoas[i] = new Pessoa (x.getId(), x.getNome(), x.getIdade()); i++; } } } } } public void listarPessoa() { if (!vetorVazio()) { for (int i = 0; i < this.pessoas.length; i++) { if (pessoas[i] != null) { System.out.println(i + " : " + pessoas[i]); } else { System.out.println(i + " : Espaco vazio"); } } } } public void atualizarPessoa(Pessoa p) { int achado = 0; if (!vetorVazio()) { for (int i = 0; i < this.pessoas.length; i++) { if ((this.pessoas[i] != null) && (this.pessoas[i] .getId() .equals(p.getId()))) { this.pessoas[i] = p; achado++; } } } if (achado == 0) { System.out.println ("Pessoa nao encontrada!!!"); } } public void removerPessoa(Pessoa p) { int achado = 0; if (!vetorVazio()) { for (int i = 0; i < this.pessoas.length; i++) { while ((achado == 0) && (this.pessoas[i] != null) && (this.pessoas[i]. getId(). equals(p.getId()))) { achado++; for (int j = i; j < this.pessoas.length; j++) { if ((this.pessoas[j] != null) && (j != this.pessoas.length - 1)) { this.pessoas[j] = this.pessoas[j + 1]; } else { this.pessoas[j] = null; } } } } } if (achado == 0) { System.out.println ("Pessoa nao encontrada!!!"); } } public static void main(String[] args) { Pessoa p1 = new Pessoa(10, "P1", 30); Pessoa p2 = new Pessoa(11, "P2", 31); Pessoa p3 = new Pessoa(12, "P3", 32); ControlPessoaArray cp = new ControlPessoaArray(); // cp.adicionarPessoaVazio(10, p1, p2, p3); cp.adicionarPessoaVazio(10, p1, p2, p3); cp.adicionarPessoa(2, p1, p2); cp.atualizarPessoa(new Pessoa (12, "atualizou", 50)); cp.removerPessoa(new Pessoa (12, null, null)); cp.listarPessoa(); System.out.println("* * *"); ControlPessoaArray cp2 = new ControlPessoaArray(); cp2.adicionarPessoaVazio (5, p1, p2, p3, p1, p2); cp2.removerPessoa(p2); cp2.listarPessoa(); System.out.println("* * *"); ControlPessoaArray cp3 = new ControlPessoaArray(); cp3.adicionarPessoaVazio (5, p1, p2, p3, p1, p2); cp3.adicionarPessoa(1, p3); cp3.listarPessoa(); System.out.println("* * *"); Arrays.asList(cp3.getPessoas()) .forEach(System.out::println); } } ``` <h5> Rodando o método main, temos: </h5> ```= 0 : Pessoa [id=10, nome=P1, idade=30] 1 : Pessoa [id=11, nome=P2, idade=31] 2 : Pessoa [id=10, nome=P1, idade=30] 3 : Pessoa [id=11, nome=P2, idade=31] 4 : Espaco vazio 5 : Espaco vazio 6 : Espaco vazio 7 : Espaco vazio 8 : Espaco vazio 9 : Espaco vazio * * * 0 : Pessoa [id=10, nome=P1, idade=30] 1 : Pessoa [id=12, nome=P3, idade=32] 2 : Pessoa [id=10, nome=P1, idade=30] 3 : Pessoa [id=11, nome=P2, idade=31] 4 : Espaco vazio * * * Numero de registros excede o tamanho do Array!!! 0 : Pessoa [id=10, nome=P1, idade=30] 1 : Pessoa [id=11, nome=P2, idade=31] 2 : Pessoa [id=12, nome=P3, idade=32] 3 : Pessoa [id=10, nome=P1, idade=30] 4 : Pessoa [id=11, nome=P2, idade=31] * * * Pessoa [id=10, nome=P1, idade=30] Pessoa [id=11, nome=P2, idade=31] Pessoa [id=12, nome=P3, idade=32] Pessoa [id=10, nome=P1, idade=30] Pessoa [id=11, nome=P2, idade=31] ``` <blockquote style="border-left-color: red;"> <p><span class="color" data-color="red"></span><span> </span><small><i class="fa fa-user"></i> Prof Fernando Gomes - fernandojnr@gmail.com</small></p></blockquote> <br> <div class="alert alert-info"> <blockquote style="border-left-color: blue;"> <p><span class="color" data-color="blue"></span><span> </span><small><i class="fa fa-user"></i> E.B. Cursos https://www.cursoseb.com.br/</small><br> <span class="color" data-color="blue"></span><span> </span><small><i class="fa fa-user"></i> E.B. Cursos EAD https://edsonbelemtreinamento.com.br/ead/</small></p> </blockquote> </div>