DEV Community

José Henrique Pinheiro Sampaio
José Henrique Pinheiro Sampaio

Posted on • Originally published at josee.com

Programação Orientada a Objeto

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!")
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)