Aula 11 - Java e Orientação a Objetos ☕
Objetivo
Objetivo: Entender como organizar sistemas grandes e complexos usando Classes, Objetos e Herança.
1. O Mundo dos Objetos 🌍
Na programação estruturada (C, Pascal), focamos em ações (funções). Na Orientação a Objetos (OO), focamos em coisas (objetos).
- Classe: A forma, o molde (ex: Planta da Casa).
- Objeto: A coisa concreta (ex: A Casa construída).
Visualizando Classes (Mermaid UML)
classDiagram
class Animal {
+String nome
+int idade
+fazerSom()
}
class Cachorro {
+latir()
}
class Gato {
+miar()
}
Animal <|-- Cachorro : Herança
Animal <|-- Gato : Herança
2. Java: "Escreva uma vez, rode em qualquer lugar" ♻️
Java usa uma Máquina Virtual (JVM).
3. Encapsulamento, Herança e Polimorfismo 🛡️
Os 3 pilares da OO em Java:
1. Encapsulamento: Proteger os dados (private) e dar acesso controlado (get/set).
2. Herança: Cachorro é um Animal. Reaproveita código.
3. Polimorfismo: Animal faz som, mas o Cachorro late e o Gato mia.
Código Java
public class Animal {
private String nome; // Encapsulado
public void fazerSom() {
System.out.println("Som genérico...");
}
}
public class Cachorro extends Animal {
@Override
public void fazerSom() {
System.out.println("Au Au!");
}
}
3.5 O Poder do Spring Boot (Web Moderno) 🍃
Java não é só "tela preta". Com Spring Boot, criamos APIs em segundos.
@RestController
public class OlaController {
@GetMapping("/ola")
public String dizerOla() {
return "Olá, Mundo Spring Boot!";
}
}
4. Mini-Projeto: Mini Petshop OO 🚀
A Orientação a Objetos brilha quando temos diferentes categorias de coisas que compartilham comportamentos.
Desafio do Projeto
Crie uma estrutura em Java que represente um Petshop.
1. Crie uma classe base Animal (nome, especie).
2. Crie subclasses Cachorro e Gato.
3. Implemente um método emitirSom() que seja diferente para cada um.
4. No seu programa principal, crie uma lista (ArrayList) de animais e mande todos emitirem seus sons.
5. Exercícios de Fixação 📝
- Fácil: Crie uma classe
Pessoacomnomeeidade. Crie um métodoapresentar(). - Médio: Crie uma classe
ContaBancariacomsaldoprivado. Crie métodosdepositar(valor)esacar(valor). Não deixe o saldo ficar negativo! - Desafio (Herança): Crie uma classe
Funcionarioe uma subclasseGerente. O gerente tem um método extraautorizarPagamento().
Próxima Aula: O ecossistema da Microsoft. Vamos ver como C# e .NET facilitam a vida do desenvolvedor: C# e .NET.