PauloRB.dev

Desenvolvedor de Software

Rascunho para estudo de programação orientada a objetos em Python | PauloRB.dev Rascunho para estudo de programação orientada a objetos em Python - PauloRB.dev
Rascunho para estudo de programação orientada a objetos em Python

Rascunho para estudo de programação orientada a objetos em Python

A orientação a objetos (OO) é um paradigma de programação central em Python, que facilita a organização e estruturação do código de maneira modular e reutilizável. Aqui estão os conceitos fundamentais da orientação a objetos em Python:

  1. Classes e Objetos: Uma classe é um modelo ou blueprint para criar objetos. Um objeto é uma instância de uma classe, contendo dados (atributos) e comportamentos (métodos). Por exemplo, você pode ter uma classe Carro com atributos como marca e modelo, e métodos como acelerar() e frear().
    
    
    class Carro:
        def __init__(self, marca, modelo):
            self.marca = marca
            self.modelo = modelo
    
        def acelerar(self):
            print(f"{self.marca} {self.modelo} está acelerando!")
    
    # Criando um objeto da classe Carro
    meu_carro = Carro("Toyota", "Corolla")
    meu_carro.acelerar()  # Saída: Toyota Corolla está acelerando!
    

  2. Encapsulamento: Encapsulamento é o princípio de esconder os detalhes internos de implementação de uma classe e expor apenas os métodos e atributos necessários para o uso externo. Isso é feito através do uso de métodos acessores (getters) e modificadores (setters) e, em Python, controlando o acesso a atributos com prefixos como _ (protegido) e __ (privado).
    
    
    class ContaBancaria:
        def __init__(self, saldo=0):
            self.__saldo = saldo  # Atributo privado
    
        def depositar(self, valor):
            if valor > 0:
                self.__saldo += valor
                print("Depósito realizado com sucesso!")
            else:
                print("O valor do depósito deve ser positivo!")
    
        def ver_saldo(self):
            return self.__saldo
    
    # Criando e utilizando um objeto da classe ContaBancaria
    conta = ContaBancaria()
    conta.depositar(100)
    print(conta.ver_saldo())  # Saída: 100
    

  3. Herança: Herança permite criar uma nova classe (chamada de classe filha) baseada em uma classe existente (chamada de classe mãe), herdando seus atributos e métodos e podendo adicionar novos ou modificar os existentes. A herança facilita a reutilização de código e a implementação de hierarquias.
    
    
    class Veiculo:
        def __init__(self, marca):
            self.marca = marca
    
        def buzinar(self):
            print("Beep beep!")
    
    class Carro(Veiculo):  # Carro herda de Veículo
        def __init__(self, marca, modelo):
            super().__init__(marca)  # Chamada ao construtor da classe mãe
            self.modelo = modelo
    
    # Criando um objeto da classe Carro
    meu_carro = Carro("Ford", "Mustang")
    meu_carro.buzinar()  # Saída: Beep beep!
    

  4. Polimorfismo: Polimorfismo refere-se à capacidade de um método ter várias formas. Isso pode ser conseguido através de sobreposição (quando métodos de classes derivadas têm o mesmo nome que os da classe base) ou sobrecarga de métodos (não suportada diretamente em Python como em outras linguagens, mas pode ser simulada).
    
    
    class Animal:
        def falar(self):
            pass
    
    class Cachorro(Animal):
        def falar(self):
            return "Au au!"
    
    class Gato(Animal):
        def falar(self):
            return "Miau!"
    
    # Utilizando polimorfismo
    animais = [Cachorro(), Gato()]
    for animal in animais:
        print(animal.falar())  # Saída: Au au! seguido por Miau!

  5. Abstração: Abstração é o conceito de esconder a complexidade e mostrar apenas o essencial para o usuário. Classes abstratas em Python, que não podem ser instanciadas diretamente e são destinadas a ser subclasses, são definidas através do módulo abc (Abstract Base Classes).
    
    
    from abc import ABC, abstractmethod
    
    class FormaGeometrica(ABC):
        @abstractmethod
        def area(self):
            pass
    
    class Circulo(FormaGeometrica):
        def __init__(self, raio):
            self.raio = raio
    
        def area(self):
            return 3.14 * self.raio * self.raio
    
    # Criando um objeto da classe Circulo
    circulo = Circulo(5)
    print(circulo.area())  # Saída: 78.5
    

A orientação a objetos em Python é implementada de maneira flexível, permitindo aos programadores escolher entre um estilo de programação estruturada ou orientada a objetos, dependendo do problema a ser resolvido. Isso faz do Python uma linguagem muito versátil e popular para uma ampla gama de aplicações, desde scripts simples até sistemas complexos.

 

Mais Posts

Como atualizar multiplos registros com o método whereIn no Laravel 9 ?

Como atualizar multiplos registros com o método whereIn no Laravel 9 ?

O Laravel 9 é um framework PHP moderno e poderoso que oferece muitas ferramentas úteis para desenvolvedores web. Uma das... Leia mais

Como acessar o entity Manager(Doctrine) dentro de comandos no Symfony 5

Como acessar o entity Manager(Doctrine) dentro de comandos no Symfony 5

Ao termos de criar comandos personalizados no Symfony na maioria das vezes se faz necessário o uso de alguma interação... Leia mais

Script para automatizar as instalações de extensões do php em distribuições LINUX

Script para automatizar as instalações de extensões do php em distribuições LINUX

Publiquei neste artigo https://paulorb.dev/alternar-entre-multiplas-versoes-no-php/ formas de como instalar diversas versões do PHP em distros Linux mas surgiu um problema que... Leia mais

Como instalar o Docker no Linux(Ubuntu)

Como instalar o Docker no Linux(Ubuntu)

Para instalar o docker no ubuntu basta seguir os passos abaixo: Abra o terminal do Linux copie e cole os... Leia mais