Aula 2: Classes e Objetos

Construindo o mundo da Programação Orientada a Objetos.

O Que Você Vai Aprender

Nesta aula, você mergulhará nos conceitos centrais da Programação Orientada a Objetos: Classes e Objetos. Você aprenderá a definir classes como "moldes" para objetos e a criar instâncias desses moldes, trazendo suas abstrações à vida no código.

🏗️ Definir Classes

Compreender como criar um "molde" ou "planta" para um objeto, usando a sintaxe `class NomeDaClasse:`.

✨ Criar Objetos (Instâncias)

Aprender a criar objetos concretos a partir de uma classe, utilizando a sintaxe `objeto = NomeDaClasse()`.

Classes: O Molde ou a Planta

Uma classe é essencialmente um blueprint, um projeto ou um molde para criar objetos. Ela define as características (o que o objeto "tem") e os comportamentos (o que o objeto "faz") que todos os objetos criados a partir dela possuirão.

Sintaxe para Definir uma Classe

Em Python, usamos a palavra-chave `class` seguida do nome da classe (convenção: nomes de classes começam com letra maiúscula).

class NomeDaClasse:
    # Atributos da classe (características)
    # Métodos da classe (comportamentos/funções)
    pass # 'pass' é usado quando o corpo da classe está vazio

Exemplo de uma classe simples `Carro`:

class Carro:
    cor = "preta" # Um atributo simples (característica)
    def ligar(self): # Um método (comportamento)
        print("Carro ligado!")

Simulador: Definição de Classe

Crie uma classe Python simples. Digite o nome da classe e um atributo.

Objetos (Instâncias): A Concretização do Molde

Enquanto a classe é a planta, um objeto é uma concretização dessa planta. É uma instância da classe, uma entidade real que existe na memória do seu programa e que possui as características e comportamentos definidos pela sua classe.

Relação entre Classe e Objeto

Figura: Relação entre Classe (molde) e Objeto (instância concreta)

Sintaxe para Criar um Objeto

Para criar um objeto (instanciar uma classe), você "chama" a classe como se fosse uma função, adicionando parênteses `()` após o nome da classe.

# Definição da Classe (exemplo da Aula 1)
class Carro:
    def __init__(self, cor, portas):
        self.cor = cor
        self.portas = portas
    def acelerar(self):
        return f"O carro {self.cor} está acelerando!"

# Criando Objetos (Instâncias)
carro_azul = Carro("azul", 4)     # Criando um objeto 'carro_azul'
carro_vermelho = Carro("vermelho", 2) # Criando outro objeto 'carro_vermelho'

print(carro_azul.cor)          # Acessando atributo: "azul"
print(carro_vermelho.portas)   # Acessando atributo: 2
print(carro_azul.acelerar())   # Chamando método: "O carro azul está acelerando!"

Simulador: Criar e Usar Objetos Simples

Vamos criar instâncias da classe `Pessoa` e acessar seus atributos.

# CLASSE DE EXEMPLO PARA O SIMULADOR
class Pessoa:
    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade
    def saudar(self):
        return f"Olá, meu nome é {self.nome} e tenho {self.idade} anos."

Desafios para Continuar

Agora que você entendeu a base de Classes e Objetos, é hora de praticar! Resolva estes problemas no seu ambiente de desenvolvimento Python para solidificar seu aprendizado.

  • Crie uma Classe `Livro`

    Defina uma classe `Livro` com um atributo `titulo` e um método `ler()` que imprima "Lendo [titulo do livro]".

  • Instancie e Use Objetos `Livro`

    Crie dois objetos diferentes da classe `Livro`, um para "O Pequeno Príncipe" e outro para "Dom Casmurro". Chame o método `ler()` para cada um deles.