1. Introdução a Orientação a Objetos

O paradigma de Programação Orientada a Objetos

Paradigmas são formas de enxergar o mundo (os problemas, a vida, um código de um programa). O paradigma de Orientação a Objetos pode ser encarado como uma forma de pensar o seu projeto, desde a arquitetura até a implementação. Outros exemplos de paradigmas de programação são a programação imperativa e a orientada a procedimentos

Paradigma Orientado a Objetos vs Paradigma Orientado a Procedimentos

Orientado a Procedimentos

Orientado a Objetos

  • Baseado em chamada de funções ou sub-rotinas que operam sobre elas

  • O fluxo de dados concentra todas as variáveis

  • Uma função recebe um conjunto de variáveis como argumento e retorna o resultado para o fluxo de dados, que pode ser utilizado por outras funções ou simplesmente ser exibido para o usuário

  • Baseia-se na utilização de componentes individuais (objetos) que colaboram para construir sistemas mais complexos

  • A colaboração entre os objetos é feita através do envio de mensagens

Vantagens da Orientação a Objetos

  • Facilita a reutilização de código;

  • Os modelos refletem o mundo real de maneira mais aproximada:

  • Descrevem de maneira mais precisa os dados;

  • Mais fáceis de entender e manter.

  • Pequenas mudanças nos requisitos não implicam em grandes alterações no sistema em desenvolvimento.

Os quatro pilares da Orientação a Objetos

Quatro pilares da Orientação a Objetos (autoria própria)

Abstração

Classes: estrutura fundamental para definir novos objetos.

Uma classe é apenas a estrutura que especifica os objetos, mas não pode ser utilizada diretamente. Uma instância representa o objeto concretizado a partir de uma classe.

Diferença entre classe (estrutura) e objeto (instância)
  • Exemplo de uma classe Carro com a definição de dois atributos (modelo e cor):

Instância: objeto criado com base em uma classe definida

  • Exemplo de uma instância de carro com o preenchimento dos atributos especificados na classe:

Instâncias possum um ciclo de vida definido pelas seguintes fases:

Ciclo de vida de uma instância de classe

Criada: instância acabou de ser criada e está pronta para uso. Nesta fase os atributos possuem os valores padrões (atribuídos no método __init__)

Manipulada: instância está sendo utilizada no momento para alguma ação (escrita de atributos, chamadas de métodos)

Destruída: instância não é mais necessária e será desalocada da memória.

Métodos

  • Representam os comportamentos de uma classe;

  • Permitem acesso a atributos, tanto para recuperar os valores, como para alterá-los caso necessário;

  • Podem retornam ou não algum valor; e

  • Podem possuir ou não parâmetros.

Estrutura de um método:

def nomeDoMetodo(parametros) -> retorno: corpo

Desde a versão 3.5, a linguagem Python suporta tipagem explícita. O uso de tipos é altamente recomendado para facilitar o entendimento sobre os tipos de dados que se espera como entrada ou saída de determinados métodos. Para mais detalhes, veja: https://docs.python.org/3/library/typing.html

Método Construtor

  • Determina que ações devem ser executadas quando da criação de um objeto; e

  • Pode possuir ou não parâmetros.

  • Pode atribuir valores padrões para atributos opcionais

Estrutura:

Last updated

Was this helpful?