A Programação Orientada a Objeto (POO) é um dos modelos mais utilizados para o desenvolvimento de softwares na atualidade. Ela ajuda a organizar o código de forma que aproxime a lógica da programação do mundo real. As classes fundamentais de POO são: classes, métodos, atributos, objetos, herança e encapsulamento.
Na POO tudo gira em torno de objetos, que são instâncias de classes.
As classes são como plantas arquitetônicas, um molde que define as características e comportamentos do objeto.
Já atributos são informações (ou propriedades) que o objeto possui.
Os métodos são as ações que o objeto pode executar.
Exemplo de todos juntos:
class Carro:
def init(self, cor, modelo):
self.cor = cor
self.modelo = modelo
def acelerar(self):
print(f"O {self.modelo} está acelerando!")
meu_carro = Carro("vermelho", "Fiat Uno")
meu_carro.acelerar()
Nesse exemplo, Carro é a classe, cor e modelo são atributos, e acelerar() é um método.
Encapsulamento
O encapsulamento é o princípio da POO que consiste em proteger os dados de um objeto, permitindo o acesso de forma controlada. Isso evita que informações sejam manipuladas de maneira indesejada.
Na prática é assim, como exemplo de saldo:
saldo: Público
_saldo: Protegido por convenção (um underline)
__saldo: Protegido com name mangling (dois underlines)
Sem underline o saldo é público, com apenas um é protegido mas não totalmente, e com dois é o mais protegido.
Na prática de um saldo totalmente protegido, ficaria assim:
class ContaBancaria:
def init(self, saldo):
self.__saldo = saldo
def depositar(self, valor):
self.__saldo += valor
def get_saldo(self):
return self.__saldo
conta = ContaBancaria(1000)
print(conta.get_saldo())
print(conta.ContaBancaria_saldo)
É importante lembrar que __saldo não é 100% privado, mas fica protegido contra acessos acidentais.
Ou seja, o encapsulamento em Python é mais uma convenção do que uma proibição absoluta.
Herança
A herança nada mais é do que uma classe que herda atributos ou métodos de outra, facilitando a reutilização de código e criando hierarquias de classes.
Exemplo:
class Animal:
def falar(self):
print("O animal fez um som.")
class Cachorro(Animal):
def falar(self):
print("O cachorro latiu: Au au!")
class Gato(Animal):
def falar(self):
print("O gato miou: Miau!")
dog = Cachorro()
cat = Gato()
dog.falar()
cat.falar()
Nesse exemplo, tanto Cachorro quanto Gato herdaram da classe Animal, mas cada um sobrescreveu o método falar() com seu próprio comportamento.
Conclusão
A Programação Orientada a Objeto é o pilar da programação moderna e está presente em linguagens como Python, C++ e muitas outras.
Em resumo:
Classe: Organiza os objetos
Encapsulamento: Protege os dados
Herança: Facilita a reutilização de código
Top comments (0)