Uma classe Carro (o molde) dá origem a três objetos: fusca, uno e gol

// módulo poo com java · aula 01

Lógica, projeto
e pilares da POO

Do if ao objeto: a base de tudo que vem pela frente.

// roteiro de hoje

Cinco paradas até o primeiro objeto

🔁

Revisão

variáveis, if e laços

🗺️

Projeto

o que vamos construir

💡

Por que POO

o problema que ela resolve

🧱

Classes

molde e objetos

🏛️

Pilares

visão geral dos quatro

// parte 1

Revisão de lógica

Variáveis, condicionais e laços: as peças que vamos usar dentro dos objetos.

// variáveis

Toda variável tem tipo, nome e valor


String  nome     = "Ana";    // texto
int     idade    = 20;       // número inteiro
double  nota     = 8.5;      // número com casas decimais
boolean aprovado = true;     // verdadeiro ou falso

O tipo diz o que cabe na variável. Em Java, ele não muda depois.

// condicionais

O programa toma decisões com if


double nota = 6.0;

if (nota >= 7) {
    System.out.println("Aprovado");
} else if (nota >= 5) {
    System.out.println("Recuperação");
} else {
    System.out.println("Reprovado");
}
nota ≥ 7?não
nota ≥ 5?sim → Recuperação

// laços

O for repete sem copiar e colar


double[] notas = {8.5, 6.0, 9.5};
double soma = 0;
for (int i = 0; i < notas.length; i++) {
    soma += notas[i];
}
double media = soma / notas.length;
System.out.println("Média: " + media);
java Media Média: 8.0

// aquecimento · vale XP

O que este código imprime?


for (int i = 0; i < 3; i++) System.out.print(i);

Começa em 0 e para antes de chegar a 3: imprime 0, 1 e 2.

// parte 2

O projeto do curso

Um sistema completo, construído aos poucos, do banco de dados até a API.

// o caminho

Vocês já têm a base. Agora, o sistema

Lógicade programação
→
SQLbanco de dados
→
POO com Javamodelar as classes
→
Spring BootAPI REST + banco

A API que vamos construir guarda os dados no banco que vocês já conhecem do SQL e depois será consumida por um front-end em React.

// parte 3

Por que Orientação a Objetos?

Antes da solução, o problema.

// o problema

Guardar dados de vários carros só com variáveis…


String modelo1 = "Fusca";
String cor1    = "laranja";
int velocidade1 = 0;

String modelo2 = "Uno";
String cor2    = "verde";
int velocidade2 = 0;
// ... e se forem 100 carros? 😵

Dados do mesmo carro ficam espalhados: nada liga cor1 a modelo1.

// a ideia

Juntar dados e comportamento num só lugar

📦

Atributos

O que o objeto tem: modelo, cor, velocidade.

⚙️

Métodos

O que o objeto faz: acelerar, frear, buzinar.

Programação Orientada a Objetos é modelar o sistema como objetos que conversam entre si.

// parte 4

Classes e objetos

A diferença entre o molde e as coisas feitas com ele.

// imagem mental

Classe é a planta; objeto é a casa construída

A classe Carro gera três objetos: fusca, uno e gol, cada um com sua cor
um molde, vários objetos
  • A classe descreve: quais dados e ações existem.
  • O objeto é uma cópia concreta, com valores próprios.
  • Criamos objetos com new.
  • Cada objeto guarda seu próprio estado.

// escrevendo a classe

A classe Carro


public class Carro {
    String modelo;
    String cor;
    int velocidade;

    void acelerar() {
        velocidade += 10;
    }
}
Carroclass
  • modelo: String
  • cor: String
  • velocidade: int
  • acelerar()

// criando objetos

Com new, o molde vira objeto

Carroclass
  • modelo: String
  • cor: String
  • velocidade: int
  • acelerar()
fusca : Carrocor = "laranja"
uno : Carrocor = "verde"
gol : Carrocor = "roxo"

// usando objetos

Cada objeto tem seu próprio estado


Carro fusca = new Carro();
fusca.modelo = "Fusca";
fusca.cor = "laranja";

Carro uno = new Carro();
uno.modelo = "Uno";

fusca.acelerar();
fusca.acelerar();
java Main fusca: 20 km/h uno: 0 km/h

Acelerar o fusca não mexe no uno: são objetos diferentes.

// vamos testar · vale XP

Qual frase descreve melhor a relação entre classe e objeto?

Uma classe pode gerar quantos objetos quisermos, cada um com seus próprios valores.

// parte 5

Os quatro pilares

A visão geral de hoje. Cada pilar ganha uma aula própria.

// clique nas cartas

Os quatro pilares da POO

🧩

Abstração

Modelar só o que importa. O Carro do sistema não precisa da marca do pneu.

hoje e aula 4

💊

Encapsula­mento

Proteger os dados: ninguém põe velocidade negativa.

aula 2

🌳

Herança

Moto e Carro herdam de Veiculo.

aula 3

🎭

Polimor­fismo

Mesma chamada, comportamentos diferentes.

aula 4

// última pergunta · combo!

Qual pilar impede que alguém coloque velocidade = -50 no carro?

Encapsulamento protege os dados do objeto. É o tema da próxima aula.

// resumo

O que levamos de hoje

// desafios para casa

Agora é com você 🚀

próxima aula · Classes, objetos e encapsulamento

Dúvidas?