Article image
Regilene Silva
Regilene Silva03/02/2024 17:25
Compartilhe

POO - Como nascem os objetos? Um exercício de imaginação para iniciantes

  • #Python
  • #POO

Qual é a natureza fundamental da sua existência? É com essa pergunta um tanto metafísica que falamos hoje sobre o conceito de modelagem de objetos. 

Todo estudante de programação sabe que a Programação orientada a objetos surgiu para, em resumo, organizar o código em torno de entidades do mundo real e que através da abstração é possível destacar os aspectos mais importantes de uma entidade ou conceito. A modelagem do mundo real por sua vez cria representações no software que se assemelha a entidades e aos processos do mundo físico e conceitual. Enquanto a abstração permite criar modelos simplificados que capturam as características e comportamentos fundamentais, a modelagem do mundo real facilita a compreensão e interação com os conceitos familiares que refletem a realidade.

image

Ambos os conceitos são cruciais para a criação de objetos significativos e eficientes em POO. A abstração ajuda a definir a natureza essencial do objeto, enquanto a modelagem do mundo real torna o objeto mais intuitivo e fácil de entender, pois reflete conceitos familiares.

image

Mas, afinal, o que é abstrair?

É a capacidade de conceitualizar uma entidade de forma que a torne representável em código. Ao abstrair uma entidade, o programador vai imaginar quais são os atributos que caracterizam essa entidade.

Ex:

Modelando a classe Livro:

Atributos possíveis: Autor, título, números de página

Em POO a manifestação prática da abstração são as classes.

Então, como nascem os objetos?

Agora, o programador vai imaginar quais são ações e comportamentos associados à entidade Livro.

Ex:

Métodos da classe: Abri, fechar, ler

No entanto, nosso objeto ainda não nasceu. O programador já abstraiu a entidade (Livro), modelou a classe (atributos), agora a partir da instanciação da classe, podemos dizer que o objeto nasceu. Os objetos reais só são criados quando instanciamos a classe. A instanciação ocorre quando você cria um objeto específico com base na classe que você definiu.

ex:

class Livro:
  def __init__(self, titulo, autor, num_paginas):
      # Atributos essenciais
      self.titulo = titulo
      self.autor = autor
      self.num_paginas = num_paginas
      self.pagina_atual = 1  # Inicializa a leitura na primeira página


  def exibir_informacoes(self):
      # Método para exibir informações sobre o livro
      print(f"Título: {self.titulo}")
      print(f"Autor: {self.autor}")
      print(f"Número de Páginas: {self.num_paginas}")


  def ler_pagina(self):
      # Método para simular a leitura de uma página
      if self.pagina_atual <= self.num_paginas:
          print(f"Lendo página {self.pagina_atual}.")
          self.pagina_atual += 1
      else:
          print("Você já leu todas as páginas!")


# Criando um objeto (instância) da classe Livro
meu_livro = Livro(titulo="Python para iniciantes", autor="João da Silva", num_paginas=200)


# Chamando métodos da classe
meu_livro.exibir_informacoes()  # Exibe informações do livro
meu_livro.ler_pagina()          # Simula a leitura de uma página
meu_livro.ler_pagina()          # Simula a leitura de outra página


Em Python, o nascimento do Objeto está relacionado a um método especial chamando de método construtor __init __ que é onde você define quais atributos serão associados a uma instância específica da classe, e você pode passar valores específicos para esses atributos quando cria um objeto.

Tanto a criação de uma classe quanto a instanciação (criação de objetos) nascem do conceito de  Modelagem de objetos do mundo real. A criação de classes e instâncias é uma maneira de organizar e estruturar o código de maneira que reflita o mundo real ou o problema que está sendo resolvido.

É  entorno das Classes e Objetos que os pilares da Programação Orientada a Objetos se relacionam:

image

Na filosofia, Platão defendia o mundo das ideias, ou mundo das formas, onde existiam as formas eternas e perfeitas de todas as coisas. Para ele, o mundo que percebemos com nossos sentidos era apenas uma cópia imperfeita do mundo das ideias. Assim como como o mundo das ideias de Platão contém formas perfeitas e abstratas, a abstração em POO envolve criar modelos abstratos que representam entidades e conceitos. "Abstração e Modelagem do Mundo Real" na Programação Orientada a Objetos (POO) também refere-se à capacidade da POO de representar o mundo real de uma forma mais compreensível, por exemplo, se você tem uma classe "Carro" com métodos como "ligar" e "desligar", isso reflete diretamente o que esperamos de um carro no mundo real, e mais intuitiva, ao usar nomes de classes e métodos familiares.


Existe limite para a modelagem de objetos?

Somente se existir limites para o que pode existir.

Espero com esse conteúdo contribuir para quem está começando, assim como eu.

Compartilhe
Comentários (0)