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

Manipulando Strings em GOLANG

Manipulando Strings em GOLANG

Resolvi retormar meus estudo em Go Lang e assim vamos ao primeiro post dessa série de estudos onde vamos aprender... Leia mais

Como instalar o RabbitVCS no ubuntu 18.04

Como instalar o RabbitVCS no ubuntu 18.04

Caso você sendo usuário Linux e precise instalar um gerenciador de SVN temos como alternativa o RABBITVCS. São apenas dois... Leia mais

Função para fazer a tecla ENTER funcionar como a tecla TAB em formulários web.

Função para fazer a tecla ENTER funcionar como a tecla TAB em formulários web.

Segue função em Jquery que utilizei muito em projetos para permitir o comportamento da tecla TAB(pular campos do formulários) utilizando... Leia mais

Laravel: Trabalhando com whereHas e with de forma simples

Laravel: Trabalhando com whereHas e with de forma simples

Quando trabalhamos com Eloquent no Laravel, frequentemente precisamos realizar consultas baseadas em relacionamentos entre modelos. Para isso, o Laravel oferece... Leia mais