Sumário
0) Introdução ao Java, Compilação, VS Code e Criação de Projeto
Resumo rápido para preparar o ambiente e rodar seu primeiro programa.
Plataforma Java em 1 minuto
- JDK (Java Development Kit): ferramentas de desenvolvimento (inclui
javacejava). - JRE (Runtime): execução de aplicações Java.
- JVM (Máquina Virtual): executa o bytecode gerado pelo compilador.
Baixar e Instalar JDK
Hello, World (arquivo único)
// Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}javac Hello.java
java HelloProjeto mínimo (estrutura)
meu-projeto/
└─ src/
└─ Main.java// src/Main.java
public class Main {
public static void main(String[] args) {
System.out.println("Projeto mínimo");
}
}javac src/Main.java
java -cp src MainVS Code – criando projeto Java
- Instale o JDK (versão LTS recomendada) e o pacote Java Extension Pack no VS Code.
- Abra o Command Palette (Ctrl/⌘+Shift+P) → Java: Create Java Project → No build tools (ou Maven/Gradle, se preferir).
- Escolha a pasta do projeto e o nome. O VS Code criará
srce uma classeMaincompublic static void main. - Para executar, use o botão Run acima do método
mainou o menu Run → Start Debugging.
Hello.java no terminal?1) Paradigma Orientado a Objetos
POO modela o software como objetos que combinam estado (atributos) e comportamento (métodos). Benefícios: modularização, reuso, manutenção e legibilidade.
- Abstração: foque no essencial, oculte detalhes.
- Encapsulamento: proteja dados com interface pública.
- Herança e Polimorfismo: reuso e variação de comportamento.
2) Classes e Objetos
Classe é o molde; objeto é a instância concreta. Uma classe reúne atributos e métodos que definem um tipo.
class Pessoa {
String nome;
int idade;
void falar() {
System.out.println(nome + " está falando");
}
}
Pessoa p1 = new Pessoa();
p1.nome = "Ana";
p1.idade = 25;
p1.falar(); // Ana está falando3) Atributos e Métodos
Atributos guardam estado; métodos realizam ações. Métodos podem retornar valores ou ser void.
class Calculadora {
int somar(int a, int b) {
return a + b;
}
}4) Encapsulamento
Restringe acesso direto aos dados. Preferir atributos private e métodos get/set para controlar regras.
class Conta {
private double saldo;
public void depositar(double v) { saldo += v; }
public double getSaldo() { return saldo; }
}private permite acesso…5) Construtores & Sobrecarga
Construtor tem o mesmo nome da classe e inicializa o objeto. Sobrecarga = múltiplas assinaturas.
class Produto {
String nome; double preco;
Produto(String n) { nome = n; preco = 0; }
Produto(String n, double p) { nome = n; preco = p; }
}class Exemplo {
Exemplo(){ this(0); }
Exemplo(int x){ /* ... */ }
}6) Membros static
Pertencem à classe (compartilhados). Não acessam this e podem ser chamados via Classe.método().
class Contador {
static int total = 0;
Contador(){ total++; }
}
System.out.println(Contador.total);7) Constantes final
final torna o valor imutável após a primeira atribuição. Use convenção MAIÚSCULAS_COM_UNDERSCORE.
class Circulo {
public static final double PI = 3.141592653589793;
}final define uma
(valor
).”
8) Associação × Agregação × Composição
Todos são relações has-a, diferindo pela dependência entre parte e todo.
- Associação: vínculo simples (Professor–Turma).
- Agregação: partes independentes (Time–Jogador).
- Composição: parte depende do todo (Pedido–Item).
class Item { String nome; Item(String n){ nome=n; } }
class Pedido {
private java.util.List < Item > itens = new java.util.ArrayList<>();
void adicionarItem(String nome){ itens.add(new Item(nome)); }
}9) Modificadores de Acesso
- public: visível em qualquer lugar.
- private: apenas na própria classe.
- protected: subclasses e mesmo pacote.
- (sem modificador): mesmo pacote.
public class Exemplo {
private int x;
protected void m(){ /* ... */ }
}10) Boas Práticas
- Prefira composição à herança quando possível.
- Evite
staticmutável compartilhado (concorrência). - Use constantes
public static finalnomeadas em MAIÚSCULAS. - Encapsule: atributos privados +
get/setcom validação. - Nomeie classes em PascalCase e métodos/variáveis em camelCase.