Orientacao a Objetos (POO) em Python
O que e POO?
POO (Programacao Orientada a Objetos) e um paradigma de programacao que usa objetos para
representar dados e funcionalidades. Um objeto tem atributos (caracteristicas) e metodos (acoes).
Conceitos Principais
- Classe: molde para criar objetos
- Objeto: uma instancia da classe
- Atributos: caracteristicas do objeto (variaveis na classe)
- Metodos: funcoes da classe
- Encapsulamento: esconder dados internos
- Heranca: classes que herdam outras
- Polimorfismo: metodos com mesmo nome, comportamentos diferentes
Como criar uma classe?
class Pessoa:
def __init__(self, nome, idade):
[Link] = nome
[Link] = idade
def falar(self):
print(f"Oi, meu nome e {[Link]} e tenho {[Link]} anos.")
Criando e usando um objeto
p1 = Pessoa("Maria", 25)
[Link]()
Resultado:
Oi, meu nome e Maria e tenho 25 anos.
Mais sobre atributos e metodos
class ContaBancaria:
def __init__(self, titular, saldo=0):
[Link] = titular
[Link] = saldo
def depositar(self, valor):
[Link] += valor
print(f"Deposito de R${valor} realizado. Saldo atual: R${[Link]}")
def sacar(self, valor):
if valor <= [Link]:
[Link] -= valor
Orientacao a Objetos (POO) em Python
print(f"Saque de R${valor} realizado. Saldo atual: R${[Link]}")
else:
print("Saldo insuficiente.")
conta1 = ContaBancaria("Joao", 100)
[Link](50)
[Link](30)
[Link](150)
Heranca e Polimorfismo
class Animal:
def __init__(self, nome):
[Link] = nome
def falar(self):
print("Animal fazendo barulho")
class Cachorro(Animal):
def falar(self):
print(f"{[Link]} diz: Au Au!")
class Gato(Animal):
def falar(self):
print(f"{[Link]} diz: Miau")
c = Cachorro("Rex")
g = Gato("Mimi")
[Link]()
[Link]()
Encapsulamento
class Pessoa:
def __init__(self, nome):
self.__nome = nome
def mostrar_nome(self):
print(self.__nome)
O uso de '__' indica que o atributo e considerado privado e nao deve ser acessado diretamente.
Resumo Rapido
Conceito | O que e? | Exemplo
----------------|--------------------------------------|-----------------------------
Classe | Molde para criar objetos | class Pessoa:
Orientacao a Objetos (POO) em Python
Objeto | Instancia da classe | p = Pessoa('Ana', 30)
Atributo | Caracteristica do objeto | [Link]
Metodo | Funcao dentro da classe | def falar(self):
Heranca | Classe que herda de outra | class Cachorro(Animal):
Polimorfismo | Mesmo metodo, diferentes comportamentos | [Link](), [Link]()
Encapsulamento | Esconder dados (privados) | self.__nome