4 Pilares Da Orientação A Objetos em Python - DEV Community
4 Pilares Da Orientação A Objetos em Python - DEV Community
Armando
Posted on 5 de nov. de 2021
Tadeu
6 1 1
Systems Analyst,
4 pilares
programmer, reading
and writing lover.
da
LOCATION
Brasil
JOINED
A programação orientada a
objetos é um dos
paradigmas mais utilizados
atualmente, porque através
dela é possível organizar a
arquitetura do programa
trazendo uma perspectiva
mais perto do mundo real,
considerando as coisas
(abstratas ou concretas) do
mundo real como objetos no
sistema, que interagem entre
si e dão vida ao fluxo do
programa.
1º Pilar: Abstração
Na programação orientada a
objetos, a construção dos
objetos é baseada em uma
Classe que representa as
características daquele
objeto.
Abstração é o princípio de
criar uma classe que
contenha atributos e
métodos que são comuns a
outras classes e que podem
servir como base para serem
herdados.
class Conta(metaclass=ABCMeta):
_numero = "00000"
_titular = "root"
saldo = 0
@abstractmethod
def __init__(self, numero: str, titular: str, saldo:
self._numero = numero
self._titular = titular
self.saldo = saldo
@abstractmethod
def sacar(self, value: float):
pass
@abstractmethod
def depositar(self, value: float):
pass
@abstractmethod
def exibir_saldo(self):
pass
2º Pilar:
Encapsulamento
O princípio de
encapsulamento consiste
em "esconder" a parte
funcional dos objetos de
forma que quem estiver
utilizando não tenha que
conhecer mais do que o
necessário para utiliza-lo.
Na orientação a objetos,
estruturamos as classes de
forma a encapsular toda
regra de negócio e parte
funcional relacionada a
classe dentro de métodos e A data
atributos, de forma que pipeline of
quem utilize, apenas diga helpful info
oque quer fazer.
Fluent in SQL? This
show’s for you.
Por exemplo:
Do you have
questions about
class Biblioteca:
def exibir_livros(self):
for livro in self.livros_disponiveis:
print(livro)
3º Pilar: Herança
A herança consiste em
determinar que uma classe
existe por si mesma, porém,
ela é uma outra classe em
sua essência... Por exemplo,
uma ContaCorrente existe
mas ela é uma Conta.
Quando a herança é
utilizada, a classe que herda,
automaticamente, possui os
atributos e métodos
definidos na classe da qual
herdou.
class Conta():
_numero = "00000"
_titular = "root"
saldo = 0
def exibir_saldo(self):
# Exiba o saldo...
return False
def titular(self):
return self._titular
def numero(self):
return self._numero
A classe ContaPoupaca
herda tudo de Conta, ou
seja, possui os métodos
depositar e exibir_saldo e os
atributos _numero, _titular e
saldo e ainda pode
implementar outros métodos
e definir outros atributos que
sejam só dela.
4º Pilar:
Polimorfismo
O conceito do polimorfismo
é permitir que
comportamentos comuns a
N tipos de classes possam
ser definidos de forma
especifica para cada classe.
A questão é, possuem
comportamentos diferentes
mas devem possuir os
comportamentos porque
ambas são Contas.
class Conta(metaclass=ABCMeta):
_numero = "00000"
_titular = "root"
_saldo = 0
@abstractmethod
def __init__(self, numero: str, titular: str, saldo:
self._numero = numero
self._titular = titular
self._saldo = saldo
@abstractmethod
def sacar(self, value: float):
pass
@abstractmethod
def depositar(self, value: float):
pass
@abstractmethod
def exibir_saldo(self):
pass
class ContaPoupanca(Conta):
return False
return False
def exibir_saldo(self):
return self._saldo
def titular(self):
return self._titular
def numero(self):
return self._numero
class BankingSystem:
__contas = []
def __gerar_numero_conta(self):
numero = len(self.__contas) + 1
return f"{numero:05}"
return True
conta = Savingsconta(self.__gerar_numero_conta()
self.__contas.append(conta)
print("Conta criada com sucesso!")
print("Titular: ", conta.titular())
print("Número da conta: ", conta.numero())
print("Saldo: ", conta.exibir_saldo())
def total_of_contas(self):
print("contas: ", str(len(self.__contas)))
conta = contas[0]
print("Digite 1 para sacar")
print("Digite 2 para depositar")
print("Digite 3 para exibir saldo")
escolha_usuario = (int(input()))
if escolha_usuario == 1:
print("sacar")
print("Digite o valor a sacar")
value = float(input())
if conta.sacar(value):
print("Saque realizado com sucesso!")
else:
print("Problema ao sacar, verifique o sa
elif escolha_usuario == 2:
print("DEPOSITAR")
print("Digite o valor do depósito")
value = float(input())
if conta.depositar(value):
print("Deposito realizado com sucesso!")
else:
print("Problema ao depositar, valor não
elif escolha_usuario == 3:
print(conta.exibir_saldo())
else:
print("Escolha inválida!")
banking_system = BankingSystem()
while True:
print("Digite 1 para criar uma conta poupança")
print("Digite 2 para acessar a conta")
print("Digite 3 para exibir o total de contas")
print("Digite 0 para sair")
escolha_usuario = (int(input()))
if escolha_usuario == 1:
print("CREATE")
print("Digite o nome do titular da conta")
nome_titular = input()
print("Digite o deposito inicial")
initial_deposit = float(input())
banking_system.criar_conta_poupanca(initial_depo
elif escolha_usuario == 2:
print("ACCESS")
print("Digite o name do titular da conta")
nome_titular = input()
print("Digite o conta numero")
conta_numero = input()
banking_system.access_conta(nome_titular, conta_
elif escolha_usuario == 3:
banking_system.total_of_contas()
elif escolha_usuario == 0:
quit()
else:
print("Escolha inválida!")
Before you go
Happy coding
Top comments (0)
Sentry PROMOTED
Try Sentry