<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 é um projeto que contém as 4 principais operações que podemos fazer em uma estrutura de dados ou em um banco de dados:</p>
<p>. <strong>CREATE</strong> - criação de novos registros;<br />. <strong>READ</strong> ou retrieve - leitura de um ou mais registros;<br />. <strong>UPDATE</strong> - atualização de um ou mais registros;<br />. <strong>DELETE</strong> - remoção de um ou mais registros.</p>
<p>O objetivo desse projeto é familiarizar novos alunos com recursos de programação orientada a objetos. A melhor forma de dominarmos uma linguagem de programação é exercitando o desenvolvimento apenas com os recursos da linguagem, no início de nosso aprendizado. Dessa forma, focamos em lógica de programação e algoritmos aplicados à codificaçã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ão, criar array;<br /><br />2) inserir elementos; se atingir o tamanho do array e ainda houver elementos, lançar exceção;</p>
<p><br /><strong>Inserir em array que já existe</strong> ( tamanho do array, varargs de objetos )<br />1) verificar se o array existe; se não existe, dá uma msg e não faz nada</p>
<p>2) se o array existe, percorre o array até achar posição vazia;<br />se achou, verifica se vai haver espaço para todas as inserções<br />se sim, insere...</p>
<p><strong>Listar Array</strong><br />1) verifica se é vazio, se não for, lista<br />se o conteúdo de uma posição for null, dá uma msg de espaço vazio</p>
<p><strong>Atualizar Pessoa</strong><br />1) verifica se é vazio<br /><br />2) percorre o array, comparando pelo id - se achou, atualiza e incrementa o "achado"<br />senão, dá a msg "pessoa não encontrada"</p>
<p><br /><strong>Remover Pessoa</strong></p>
<p>1)verifica se é vazio<br />2)percorre o array, comparando pelo id - se achou, remove e incrementa o "achado"<br />3)senão, dá a msg "pessoa não encontrada"</p>
<p>Depois de remover, precisa deslocar todos os outros registros para ocupar o espaço vazio; se o array estava cheio, precisa deslocar a última posição p/a penúltima e colocar a última como null, porque passou a ser espaço vazio</p>
<br>
</span>
<h4>
Estrutura do projeto depois de finalizado
</h4>

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