1
resposta

[Projeto] Criando classes, construtores e métodos

class ContaBancaria:
    
    def __init__(self, titular='', saldo=0.0):
        self._titular = titular
        self._saldo = saldo
        self._ativo = False

    def __str__(self):
        return f'Titular da conta: {self._titular} | Saldo: R${self._saldo}'
    
    @classmethod
    def ativar_conta(cls, conta):
        conta._ativo = True
    
    @property
    def titular(self):
        return self._titular
    
    @property
    def saldo(self):
        return self._saldo
    
    @property
    def ativo(self):
        return self._ativo
    
cliente1 = ContaBancaria(
titular='João Silva',
saldo=2600,
)

cliente2 = ContaBancaria(
titular='Maria Oliveira',
saldo=17500,
)

print(cliente1)
print(cliente2)
ContaBancaria.ativar_conta(cliente1)
print(cliente1._ativo)
print(cliente1.titular)

class ClienteBanco:

    quantidade_clientes = 0

    def __init__(self, nome='', cpf='', email='', telefone='', endereco=''):
        self._nome = nome
        self._cpf = cpf
        self._email = email
        self._telefone = telefone
        self._endereco = endereco
        ClienteBanco.quantidade_clientes += 1

    @classmethod
    def mostrar_total_clientes(cls):
        return f'Total de clientes cadastrados: {cls.quantidade_clientes}'

cliente_banco1 = ClienteBanco(
nome='João Silva',
cpf='111.222.333-44',
email='joao.silva@email.com',
telefone='(11) 91234-5678',
endereco='Rua das Flores, 123 - São Paulo'
)

cliente_banco2 = ClienteBanco(
nome='Maria Oliveira',
cpf='555.666.777-88',
email='maria.oliveira@email.com',
telefone='(21) 99876-5432',
endereco='Av. Atlântica, 987 - Rio de Janeiro'
)

cliente_banco3 = ClienteBanco(
nome='Carlos Souza',
cpf='999.888.777-66',
email='carlos.souza@email.com',
telefone='(31) 97777-1234',
endereco='Rua Minas Gerais, 45 - Belo Horizonte'
)

print(ClienteBanco.mostrar_total_clientes())
1 resposta

Oi, Matheus! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei bastante da forma como você estruturou as classes ContaBancaria e ClienteBanco. Você utilizou bem o conceito de método de classe e o uso de property para proteger os atributos — ótima aplicação dos princípios de encapsulamento da Orientação a Objetos.

Uma dica interessante para o futuro é testar a criação de um método que atualize o saldo da conta de forma controlada. Veja este exemplo:


class ContaBancaria:
    def __init__(self, titular='', saldo=0.0):
        self._titular = titular
        self._saldo = saldo

    def depositar(self, valor):
        self._saldo += valor
        print(f"Novo saldo: R${self._saldo}")

conta = ContaBancaria('Ana', 100)
conta.depositar(50)

Esse código adiciona um valor ao saldo e mostra o resultado no console, reforçando o encapsulamento e o uso de métodos específicos para manipular os dados.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!