<aside> 📢 Página dedicada para explicar como funciona o paradigma de orientado ao objeto aplicado pela sintaxe do Python
</aside>
É um paradigma de programação, ou seja, um estilo de arquitetura/estrutura de projeto que permite encapsular dados e métodos em estruturas, ela surgiu como alternativa para segurança de sistemas, pois permite que os dados sejam privados, os dados não são facilmente acessados, eliminando a necessidade de variáveis globais.
O intuito de sua criação também foi trazer o manuseio das estruturas de um programa para manuseio das coisas do mundo real, com isso temos o OBJETO, qual é moldado por uma CLASSE, portanto o objeto é moldado por uma classe, qual constrói os seus atributos.
Objeto é uma abstração do mundo real levada á uma estrutura de código.
Cada objeto possui seus atributos (dados/características), qual possui suas funções (métodos), contudo percebe-se que por mais único que cada objeto possa ser ele possui coisas em comuns com outros objetos.
Por exemplo, dois carros, por mais diferentes que estes possam ser, possuem modelo, ano, marca, cor — atributos/características em comum — Além disso todo carro possui funções como acelerar, buzinar ou acender faróis.
Esse conjunto de características são definidas pelas classes.
Uma classe é um conceito abstrato, é uma estrutura, um molde que é usado para definir objetos, ou seja, a partir dela temos algo palpável, vindo de uma abstração temos um objeto.
#Definindo uma classe
class Carro:
#Aqui é onde fazemos a definição dos atributos daquele objeto
def __init__(self, modelo, ano, marca):
self.modelo = modelo
self.ano = ano
self.marca = marca
#Método função do objeto
def acelerar():
return print('vrum vrum....')
#Instanciando um objeto a uma classe - criando um objeto
carro_do_dede = Carro('Honda Fit', 2011, 'Honda')
carro_do_enzo = Carro('UNO', 1997, 'Fiat')
#Chamando um método de um objeto
carro_do_enzo.acelerar()
Encapsulamento é a proteção dos atributos ou métodos de uma classe, é um recurso da programação orientada a objetos, qual permite agrupar métodos e atributos em diferentes formas de acesso. Métodos e atributos públicos podem ser acessados por qualquer classe, enquanto privados vão ter restrição no seu acesso
class ContaBancaria:
def __init__(self, nome, saldo):
#No python ao colocar '_' em frente ao atributo o torna privado
self._nome = nome
self._saldo = saldo
Herança está relacionada à capacidade de criar novas classes reutilizando ou estendendo o comportamento de classes existentes, com isso mantemos uma linha de raciocínio para todas as outras classes, ou seja, herança pode ser usada para compartilhar funcionalidades, atributos e comportamentos entre diferentes classes.
Para isso, as linguagens usam da função super().
class ItemCardapio:
def __init__(self, nome, preco):
self._nome = nome
self._preco = preco
# Com isso fazemos com que a classe Prato herde os atributos
# e métodos da classe ItemCardapio - Classe mãe
# Mantemos uma linha de raciocínio para todos os outras classes
class Prato(ItemCardapio):
def __init__(self, nome, preco, descricao):
self._descricao = descricao
# Com super() é permitido acessar as informações,
# métodos e atributos da classe mãe
super().__init__(nome, preco)
class Bebida(ItemCardapio):
def __init__(self, nome, preco, tamanho):
self._tamanho = tamanho
super().__init__(nome, preco)
Uma classe abstrata é um tipo especial de classe em programação orientada a objetos que serve como um modelo ou base para outras classes. Ela é definida com a intenção de ser herdada por outras classes, mas não pode ser instanciada diretamente.