Definição de uma Classe

Uma classe em Python é um modelo ou "blueprint" a partir do qual objetos são criados. Cada objeto é uma instância dessa classe. Em termos simples, uma classe agrupa dados (atributos) e funcionalidades (métodos) que são relevantes para um determinado conceito ou entidade.

Sintaxe de Definição de uma Classe

Para definir uma classe em Python, utilizamos a palavra-chave class seguida do nome da classe e dois pontos. Dentro da definição da classe, colocamos os métodos e atributos associados.

class NomeDaClasse:
    def __init__(self, atributo1, atributo2):
        self.atributo1 = atributo1
        self.atributo2 = atributo2

    def metodo_exemplo(self):
        print(f"Este é um exemplo de método. Atributo1: {self.atributo1}")

Exemplo Prático: Classe Carro

Vamos criar um exemplo prático de uma classe Carro que possui atributos como marca, modelo, e ano, e um método para apresentar informações sobre o carro.

class Carro:
    def __init__(self, marca, modelo, ano):
        self.marca = marca
        self.modelo = modelo
        self.ano = ano

    def descrever_carro(self):
        print(f"Carro: {self.marca} {self.modelo}, Ano: {self.ano}")

# Instanciação de objetos da classe Carro
carro1 = Carro("Toyota", "Corolla", 2020)
carro2 = Carro("Honda", "Civic", 2018)

# Utilização do método da classe
carro1.descrever_carro()
carro2.descrever_carro()

Neste exemplo, a classe Carro tem três atributos: marca, modelo, e ano. O método descrever_carro imprime as informações sobre o carro.

O Método __init__

O método __init__ é um método especial chamado de "construtor". Ele é executado automaticamente sempre que uma nova instância da classe é criada. Este método inicializa os atributos da instância.

class Estudante:
    def __init__(self, nome, idade, curso):
        self.nome = nome
        self.idade = idade
        self.curso = curso

Adicionando Functionalidade

Além de atributos, podemos adicionar métodos que definem o comportamento da classe. Vamos melhorar a classe Estudante incluindo um método para apresentar uma mensagem de boas-vindas.

class Estudante:
    def __init__(self, nome, idade, curso):
        self.nome = nome
        self.idade = idade
        self.curso = curso

    def boas_vindas(self):
        print(f"Bem-vindo(a), {self.nome}! Felicidades nos seus estudos de {self.curso}.")

# Instanciação de um objeto da classe Estudante
estudante1 = Estudante("Ana", 20, "Engenharia Informática")
estudante1.boas_vindas()

A Importância do self

Em Python, self é uma referência à instância atual da classe. É através de self que podemos acessar atributos e métodos da classe dentro dos métodos.

class Animal:
    def __init__(self, tipo):
        self.tipo = tipo

    def fazer_som(self, som):
        print(f"O {self.tipo} faz '{som}'.")

# Instanciando um objeto da classe Animal
animal1 = Animal("Cão")
animal1.fazer_som("au au")

Resumo

  • Uma classe é um modelo para criar objetos.
  • O método __init__ inicializa os atributos de uma instância.
  • self refere-se à instância atual da classe e é utilizado para acessar atributos e métodos.
  • Métodos definem comportamentos que podem ser realizados pelos objetos da classe.

Quiz

Teste os seus conhecimentos com este quiz rápido:

  1. O que é uma classe em Python?
  2. O que faz o método __init__ numa classe?
  3. Para que serve o parâmetro self nos métodos da classe?
  4. Crie uma classe Livro com atributos título e autor e um método para imprimir essas informações.
  5. Qual é a saída do seguinte código?
    class Pessoa:
        def __init__(self, nome):
            self.nome = nome
        def cumprimentar(self):
            print(f"Olá, {self.nome}!")
    
    pessoa1 = Pessoa("João")
    pessoa1.cumprimentar()
    

Este capítulo forneceu uma introdução à definição de classes em Python. No próximo capítulo, aprenderemos como instanciar objetos dessas classes e explorar mais funcionalidades.

<< Introdução a Classes e Ob... Índice Instanciação de Objetos >>