📋 Pré-requisito: Curso de Git e GitHub concluído. 🎒 Não é preciso saber nenhuma outra linguagem — o curso começa do zero em Java.
Ao final do curso, você será capaz de:
- Escrever, compilar e executar programas Java, com domínio de tipagem estática, estruturas de controle e métodos;
- Modelar problemas com classes e objetos, aplicando os quatro pilares da POO: abstração, encapsulamento, herança e polimorfismo;
- Guardar dados em coleções (
List,Map) e proteger seu programa com exceções; - Organizar um sistema em pacotes e camadas e comunicar o modelo com um diagrama de classes;
- Persistir dados em arquivos e gerar relatórios com lambdas e a Streams API;
- Trabalhar como um profissional: todo código versionado com Git e entregue via GitHub.
| Aula | Tema | Conteúdo |
|---|---|---|
| 01 | Introdução ao Java e à JVM | JDK e JVM, compilar × executar, main, primeiro programa |
| 02 | Variáveis e tipos | Tipagem estática, primitivos, String, casting, Scanner |
| 03 | Operadores e condicionais | Operadores, if/else, switch, == vs .equals() |
| 04 | Laços, arrays e métodos | while, for, for-each, arrays, métodos e sobrecarga |
| Aula | Tema | Conteúdo |
|---|---|---|
| 05 | Classes e objetos | Atributos, métodos, new, referência, construtores, this |
| 06 | Encapsulamento | private, getters/setters com validação, static, toString() |
| 07 | Herança | extends, super, @Override, equals(), composição |
| 08 | Polimorfismo e abstração | Ligação dinâmica, classes abstratas, interfaces |
| Aula | Tema | Conteúdo |
|---|---|---|
| 09 | Coleções | ArrayList, generics, busca e remoção, HashMap |
| 10 | Exceções | try/catch, checked × unchecked, exceção personalizada |
| 11 | Organização do código | Pacotes, camadas, enum, record, diagrama de classes |
| 12 | Projeto guiado | Sistema de biblioteca em console, em 6 etapas |
| Aula | Tema | Conteúdo |
|---|---|---|
| 13 | Arquivos e persistência | Path e Files, CSV, salvar e carregar objetos |
| 14 | Lambdas e Streams | Interfaces funcionais, Comparator, filter/map/collect |
| 15 | Laboratório: do requisito ao sistema | Escolher tema, modelar, commitar com história e revisar em par |
| 16 | Revisão e próximos passos | Mapa do curso, degustação de JUnit, o que estudar depois |
Todo laboratório começa e termina com Git. Sem exceção:
# ── Início da aula ──
cd exercicios-java-poo
git pull # atualiza (se você usa mais de um PC)
# ── Durante a aula ──
mkdir aula-XX-tema && cd aula-XX-tema # uma pasta por aula
# ... escreve, compila, erra, lê o compilador, conserta ...
java Ex01.java # roda direto, sem javac (JDK 11+)
git add .
git commit -m "Resolve exercícios da aula XX" # commit por exercício concluído
# ── Fim da aula (OBRIGATÓRIO) ──
git push # sem push = sem entrega!
⚠️ Nunca versione.class. O.gitignorede Java resolve isso — copie o modelo do curso para o seu repositório de exercícios.
Consulte o guia de preparação do ambiente: JDK, IntelliJ IDEA e o primeiro programa rodando.
- 📅 Cronograma da turma 2026/2 — as datas dos encontros, se você está cursando isto numa turma
- 🧯 Erros comuns de Java — do
cannot find symbolaoNullPointerException - 📐 Diagrama de classes em 10 minutos
- 🔗 Links úteis
- 📚 Curso de Git e GitHub (pré-requisito)
Livro-base:
- DEITEL, Paul; DEITEL, Harvey. Java: como programar. 10. ed. São Paulo: Pearson, 2017.
Bibliografia de apoio:
| Obra | Onde ela ajuda mais |
|---|---|
| SIERRA, Kathy; BATES, Bert. Use a cabeça! Java. 2. ed. Rio de Janeiro: Alta Books, 2007. | Blocos 1 e 2 — a linguagem e os pilares explicados devagar; é o livro para ler junto com as aulas |
| SANTOS, Rafael. Introdução à programação orientada a objetos usando Java. 2. ed. Rio de Janeiro: Elsevier, 2013. | Bloco 2 — POO escrita em português e com olhar acadêmico, do encapsulamento ao polimorfismo |
| BLOCH, Joshua. Java efetivo: as melhores práticas para a plataforma Java. 3. ed. Rio de Janeiro: Alta Books, 2019. | Blocos 2 e 4 — por que sobrescrever equals() junto com hashCode(), e o capítulo de lambdas e streams |
| FOWLER, Martin. UML essencial. 3. ed. Porto Alegre: Bookman, 2005. | Aula 11 — diagrama de classes: o que cada seta significa e o que não vale a pena desenhar |
| ORACLE. The Java® language specification. Edição corrente. | a norma da linguagem: a resposta final quando duas fontes discordam |
O que é gratuito e vale abrir agora: os Java Tutorials da Oracle, a documentação da API — que você vai consultar em quase toda aula — e a própria especificação da linguagem.
O curso é autocontido — os livros são o passo seguinte, não um pré-requisito. As referências de consulta diária, as ferramentas e os sites de prática estão em Links úteis.
Este repositório continua evoluindo — exemplos e materiais novos são commitados aqui. Primeiro passo de toda sessão de estudo: git pull. 🙂