🚀 Capítulo 05: Vetores (Arrays)
🎯 Objetivo da Aula
Ao final desta aula, você será capaz de declarar, inicializar e manipular Vetores (Arrays) em Java, compreendendo como armazenar múltiplos dados do mesmo tipo em uma única estrutura indexada.
🏢 O Cenário Prático (Seu Desafio)
Finn, o Humano (de Hora da Aventura) está se preparando para explorar uma nova masmorra na Terra de Ooo. Ele precisa organizar sua mochila de aventuras. O seu desafio é criar um programa que simule os “slots” da mochila do Finn usando um vetor, permitindo listar os itens que ele está carregando e calcular o espaço ocupado.
🧠 Fundamentos: A Teoria Traduzida
Até agora, guardamos apenas um dado por variável. Mas e se precisarmos guardar uma lista de coisas?
Um Vetor (ou Array) é como a mochila do Finn: uma única estrutura dividida em vários compartimentos numerados (chamados de índices). Regra de Ouro: Em Java, a contagem dos compartimentos sempre começa no zero (0)! Se a mochila tem 4 slots, eles são numerados como 0, 1, 2 e 3.
Estrutura de um Vetor
flowchart LR A["Slot 0: Espada"] --- B["Slot 1: Flauta"] B --- C["Slot 2: Maçã"] C --- D["Slot 3: Enchiridion"]
📖 Exemplo Guiado
Vamos criar o programa MochilaDoFinn.java para ver como declarar e preencher um vetor de textos (Strings).
🛠️ Passo a Passo para Criar o Projeto no VS Code
- Abra o VS Code.
- Pressione as teclas
Ctrl + Shift + Ppara abrir a Paleta de Comandos. - Digite
Java: Create Java Projecte pressioneEnter. - Selecione a opção
No build tools. - Escolha uma pasta e digite o nome do projeto:
mochila-projetoe pressioneEnter.
📂 Estrutura Inicial de Pastas
mochila-projeto/
├── lib/
└── src/
└── App.java (pode apagar este arquivo)Siga os passos para criar o novo arquivo dentro da pasta src:
- Clique com o botão direito na pasta
srce crie o arquivoMochilaDoFinn.java:
public class MochilaDoFinn {
public static void main(String[] args) {
// Declaramos um vetor de Strings com 4 slots
String[] mochila = new String[4];
// Preenchendo os slots (lembrando que começa no 0)
mochila[0] = "Espada de Grama";
mochila[1] = "Flauta do Jake";
mochila[2] = "Maçã de Cristal";
mochila[3] = "Livro Enchiridion";
System.out.println("Itens na mochila:");
// Usamos o for para percorrer o vetor
for (int i = 0; i < mochila.length; i++) {
System.out.println("Slot " + i + ": " + mochila[i]);
}
}
}🕹️ Como Executar e Testar no VS Code
- Abra o arquivo
MochilaFinn.java. - Clique em Run logo acima do método
main.
Resultado Esperado:
Itens na mochila:
Slot 0: Espada de Grama
Slot 1: Flauta do Jake
Slot 2: Maçã de Cristal
Slot 3: Livro Enchiridion🛠️ Prática Obrigatória 1
Crie um programa chamado InventarioJake.java. Crie um vetor de números inteiros com 5 posições para guardar a quantidade de moedas de ouro que Jake encontrou em 5 baús diferentes. O programa deve ler os valores do teclado e, no final, exibir a quantidade de moedas que está no terceiro baú (lembre-se do índice correto!).
Resultado Esperado:
| Entrada | Saída Esperada |
|---|---|
| 10, 20, 30, 40, 50 | Moedas no terceiro baú: 30 |
🛠️ Prática Obrigatória 2
Crie um programa chamado TotalMoedas.java. Usando o mesmo vetor da Prática 1, utilize um laço for para somar a quantidade de moedas de todos os baús e exibir o total de moedas que Jake possui.
Resultado Esperado:
| Entrada | Saída Esperada |
|---|---|
| 10, 20, 30, 40, 50 | Total de moedas: 150 |
📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
Neste curso, você entregará suas atividades enviando o código para o seu repositório no GitHub usando o aplicativo GitHub Desktop. Siga o passo a passo detalhado:
- Verifique a estrutura: Certifique-se de que sua estrutura de pastas final está idêntica à mostrada abaixo.
- Abra o GitHub Desktop: Certifique-se de que o repositório do seu curso está selecionado no canto superior esquerdo.
- Visualize as alterações: Na aba Changes (à esquerda), você verá todos os arquivos que criou ou modificou nesta aula.
- Faça o Commit:
- No campo Summary (na parte inferior esquerda), digite uma mensagem curta descrevendo o que fez, ex:
Finaliza atividades do Capítulo 05. - Clique no botão azul Commit to main (ou o nome da sua branch).
- No campo Summary (na parte inferior esquerda), digite uma mensagem curta descrevendo o que fez, ex:
- Envie para a Nuvem (Push): No topo da tela, clique no botão Push origin. Isso enviará seu código do seu computador para o seu perfil no GitHub.
- ⚠️ IMPORTANTE (Repositório Público): Para que o professor consiga corrigir, o seu repositório no GitHub DEVE SER PÚBLICO. Repositórios privados não podem ser visualizados por quem não foi convidado.
- Como entregar no Microsoft Teams:
- Copie o link do seu repositório no GitHub (ex:
https://github.com/seu-usuario/seu-repositorio). - Abra a tarefa correspondente no Microsoft Teams.
- Clique no botão Adicionar trabalho (ou Add work).
- Selecione a opção Link no menu lateral.
- Cole o link do GitHub no campo “Endereço Web” e digite um texto (ex:
Meu Repositório) no campo “Texto a ser exibido”. - Clique em Anexar.
- MUITO IMPORTANTE: Clique no botão Entregar (ou Turn in) no canto superior direito para concluir o envio!
- Copie o link do seu repositório no GitHub (ex:
📂 Estrutura Final de Pastas
Após concluir o exemplo e as práticas, sua estrutura de pastas deve ficar assim:
mochila-projeto/
├── lib/
└── src/
├── MochilaDoFinn.java
├── InventarioJake.java
└── TotalMoedas.java💡 Checkpoint de Lógica
O que você acabou de fazer é a base das estruturas de dados. Em aplicativos como o Spotify ou Netflix, as suas playlists e listas de filmes são armazenadas e processadas exatamente como vetores e listas na memória do computador!
🔥 Desafio de Fixação (Opcional)
Crie um programa que busque se o item “Livro Enchiridion” está presente no vetor da mochila do Finn. Se estiver, exiba a mensagem “Item Lendário Encontrado!“.
🔑 Gabarito de Código/Fórmulas
Prática 1:
import java.util.Scanner;
public class InventarioJake {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] baus = new int[5];
for (int i = 0; i < 5; i++) {
System.out.print("Moedas no baú " + (i+1) + ": ");
baus[i] = sc.nextInt();
}
// O terceiro baú está no índice 2
System.out.println("Moedas no terceiro baú: " + baus[2]);
sc.close();
}
}Prática 2:
import java.util.Scanner;
public class TotalMoedas {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] baus = new int[5];
int soma = 0;
for (int i = 0; i < 5; i++) {
System.out.print("Moedas no baú " + (i+1) + ": ");
baus[i] = sc.nextInt();
soma += baus[i]; // Acumula a soma
}
System.out.println("Total de moedas: " + soma);
sc.close();
}
}Desafio:
public class BuscaItem {
public static void main(String[] args) {
String[] mochila = {"Espada de Grama", "Flauta do Jake", "Maçã de Cristal", "Livro Enchiridion"};
boolean encontrado = false;
for (int i = 0; i < mochila.length; i++) {
if (mochila[i].equals("Livro Enchiridion")) {
encontrado = true;
break; // Para a busca se encontrou
}
}
if (encontrado) {
System.out.println("Item Lendário Encontrado!");
}
}
}