Java Projetos
Nas aulas, cada página ensina um assunto. Nos projetos, você junta vários assuntos para construir um programa de verdade, do arquivo vazio até a versão final. É aqui que o que você estudou "encaixa": o Scanner da aula de entrada conversa com o switch, que chama um método, que lança uma exceção que você mesmo criou.
- Como os seis projetos do guia estão organizados (em etapas pequenas).
- Que aulas cada projeto pratica e em que ordem fazê-los.
- Como rodar cada etapa: no editor do guia ou no terminal do seu computador.
- O que fazer quando o seu código não bate com o da etapa.
A ideia: construir como um pedreiro, não como um mágico
Ninguém escreve um programa inteiro de uma vez. Um pedreiro não levanta a casa num dia: primeiro a fundação, depois uma parede, confere se está no prumo, depois a outra. Programar é igual. Cada projeto deste guia é dividido em etapas, e cada etapa acrescenta uma coisa nova ao programa da etapa anterior. No fim de toda etapa, o programa compila e roda. Você nunca fica com um monte de código "que ainda não funciona".
Toda página de projeto segue o mesmo roteiro:
- O que vamos construir. Uma sessão real do programa pronto, para você ver aonde vai chegar.
- Antes de começar. As aulas que você precisa ter visto (com links) e a pasta onde o projeto vai morar.
- As etapas. Cada uma mostra o código novo, explica linha a linha o que mudou, mostra a saída real (rodada num JDK 25 de verdade) e termina com uma caixa Experimente em que você faz a etapa.
- Quando dá errado. Os erros que aparecem de verdade nesse projeto, com a mensagem completa e a correção.
- O código completo e os desafios. A versão final, inteira, e ideias para você continuar sozinho.
Os seis projetos
Os projetos estão em ordem de dificuldade. Os três primeiros usam só o Nível 1 e um pouco de métodos; os três últimos pedem orientação a objetos, coleções e ferramentas do Nível 3.
| Projeto | O que é | Aulas que ele pratica | Faça depois de |
|---|---|---|---|
| Calculadora | Calculadora no terminal: lê dois números e uma operação, repete até você digitar sair. | Scanner, double, switch com setas, Métodos, while, break e continue | Nível 1 + Métodos |
| Jogo da Adivinhação | O computador sorteia um número e você tenta adivinhar, com dicas "maior/menor", níveis de dificuldade e recorde. | Números Aleatórios, while e do-while, if/else, Enums, final | Nível 1 + Enums |
| Agenda de Contatos | Cadastra, lista, busca e remove contatos, e guarda tudo num arquivo para a próxima vez. | Records, ArrayList, Métodos de String, Arquivos, try e catch | Nível 2 + ArrayList |
| Sistema de Biblioteca | Livros, usuários e empréstimos como objetos que conversam entre si, com regras e exceções próprias. | Classes, Encapsulamento, Herança, Interfaces, HashMap, Criar suas Exceções | Nível 2 + HashMap |
| Conta Bancária com Testes | Depósito, saque e transferência com dinheiro exato, e testes automáticos que conferem tudo com um comando. | BigDecimal, Criar suas Exceções, throw, Maven, JUnit | Testes com JUnit |
| Tarefas com Maven | Um programa de linha de comando de verdade: java -jar tarefas.jar add "Comprar pão", salvando num arquivo. | args, Records, Arquivos, Streams, Maven, JAR | Nível 3 (Streams e Maven) |
A coluna "Faça depois de" é o mínimo. Se alguma etapa usar algo que você ainda não viu, o texto tem o link para a aula. Abra numa aba nova, leia, e volte.
Onde rodar: duas formas
1. No editor do guia (mais fácil)
Toda etapa tem uma caixa Experimente com o código da etapa anterior. Você edita, clica em Rodar e vê a saída. Quando o programa lê o teclado, aparece um campo para você digitar (ou o guia já preenche a entrada da missão). Se travar, o botão de solução mostra a resposta. Veja como o editor funciona em O Editor do Guia.
Experimente agora. Este é o "esqueleto" de todo projeto do guia: uma classe com o método main que mostra o título do programa.
Missão: troque o título para === Meu Primeiro Projeto === e clique em Rodar.
public class Main {
public static void main(String[] args) {
System.out.println("=== Título ===");
}
}
public class Main {
public static void main(String[] args) {
System.out.println("=== Meu Primeiro Projeto ===");
}
}
2. No terminal do seu computador (o jeito "de verdade")
Para guardar o seu trabalho, crie uma pasta para cada projeto dentro de ~/java e escreva o arquivo num editor (Editores e IDEs mostra as opções). Depois rode com java NomeDoArquivo.java. Esta é a máquina da Ana fazendo a primeira etapa da calculadora:
$ mkdir -p java/calculadora « cria a pasta do projeto (e a java, se não existir) $ cd java/calculadora $ ls Calculadora.java « o arquivo que a Ana escreveu no editor $ java Calculadora.java === Calculadora da Ana === Primeiro número: 10 « 10 e 5 foram digitados pela Ana Segundo número: 5 10.0 + 5.0 = 15.0
O comando java Calculadora.java (com o .java no fim) compila o arquivo na memória e já executa, sem deixar arquivos .class na pasta. É o jeito mais rápido para projetos de um arquivo. A outra forma, em dois passos, é a que você aprendeu em javac e java:
$ javac Calculadora.java « compila: gera o Calculadora.class $ ls Calculadora.class Calculadora.java $ java Calculadora « executa a classe (sem .java no fim) === Calculadora da Ana === Primeiro número: 7 Segundo número: 3 7.0 + 3.0 = 10.0
Os projetos com vários arquivos, como a biblioteca, também rodam com java Main.java: desde o Java 22, o lançador encontra sozinho as outras classes na mesma pasta. Os dois últimos projetos (banco e tarefas) usam o Maven, e a página explica cada comando.
| Forma | Comando | Quando usar |
|---|---|---|
| Editor do guia | botão Rodar | Para fazer as etapas rapidamente, em qualquer computador ou celular. |
| Arquivo-fonte | java Calculadora.java | No seu computador, projetos de um ou poucos arquivos. |
| Compilar e executar | javac *.java e java Calculadora | Quando quiser ver os .class ou rodar várias vezes sem recompilar. |
| Maven | mvn package, mvn test | Projetos com testes ou bibliotecas: banco e tarefas. |
Como estudar um projeto
- Leia a etapa inteira antes de digitar. Entenda o que muda e por quê.
- Digite o código, não copie e cole. Parece mais lento, mas é digitando que você erra, lê a mensagem do
javace aprende a consertar. Os erros mais comuns estão em Erros do Compilador. - Rode depois de cada etapa e compare com a saída mostrada. Se for diferente, procure a diferença no código antes de seguir.
- Mude alguma coisa. Troque uma mensagem, um número, uma condição. Rode de novo. Prever o que vai acontecer e conferir é o melhor exercício que existe.
- Só então vá para a próxima etapa.
Quase sempre é um destes: uma letra maiúscula diferente (string em vez de String), um ; esquecido, uma chave } a mais ou a menos, ou o nome do arquivo diferente do nome da classe pública. Leia a primeira linha do erro: ela diz o arquivo e o número da linha (Calculadora.java:9: error: …). Veja como ler essas mensagens em Lendo Erros do javac e, se aparecer uma exceção na hora de rodar, em Exceções Comuns.
Para aquecer, um programa que lê do teclado, como quase todos os projetos fazem. A entrada Ana já vem preenchida na missão.
Missão: complete o programa para que, depois de ler o nome, ele mostre Olá, Ana! Vamos programar. (use a variável nome, não escreva "Ana" no código). Se precisar, revise Ler do Teclado (Scanner) e Concatenação.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.print("Seu nome: ");
String nome = entrada.nextLine();
// escreva aqui a saudação
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.print("Seu nome: ");
String nome = entrada.nextLine();
System.out.println("Olá, " + nome + "! Vamos programar.");
}
}
Exercícios
1. A Ana terminou a etapa 2 de um projeto, mas o programa não compila. O que ela deve fazer?
2. Qual comando compila na memória e executa Agenda.java, sem criar .class na pasta?
3. Qual projeto pratica testes automáticos com JUnit?
Complete o comando que cria a pasta do projeto da agenda (e a pasta java, se ela ainda não existir):
Resumo
- Cada projeto é construído em etapas; no fim de cada uma, o programa compila e roda.
- Toda etapa tem a explicação do código novo, a saída real e uma caixa Experimente para você fazer.
- Rode no editor do guia ou no seu computador com
java Arquivo.java(oujavac+java); banco e tarefas usam Maven. - Comece pela Calculadora e siga a ordem da tabela.