0

Programação orientada a objetos e programação estruturada

Marcos Bruno
Marcos Bruno

Programação Estruturada:


A característica principal é que na programação estruturada, um programa é tipicamente escrito em uma única rotina pode até ser quebrado em sub-rotinas, mas o fluxo do programa continua o mesmo, de tal forma que, no final, só haja uma grande rotina que execute todo o programa. Além disso, o acesso às variáveis não possui. Restringir o acesso à uma variável se limita a dizer se ela é visível ou não dentro de uma função, mas não se consegue dizer de forma nativa que uma variável pode ser acessada por apenas algumas rotinas do programa.

Na programação estruturada, um programa é composto por três tipos básicos de estruturas:

  • sequências: são os comandos a serem executados
  • condições: sequências que só devem ser executadas se uma condição for satisfeita (exemplos: if-else, switch e comandos parecidos)
  • repetições: sequências que devem ser executadas repetidamente até uma condição for satisfeita (for, while, do-while etc).

Programação Orientada a Objetos:


A programação orientada a objetos surgiu como uma alternativa a essas características da programação estruturada. O intuito da sua criação também foi o de aproximar o manuseio das estruturas de um programa ao manuseio das coisas do mundo real, daí o nome "objeto" como algo genérico, que pode representar qualquer coisa tangível. A Orientação a Objetos usa o termo abstração para designar a técnica de análise de um contexto do mundo real para criar representações no desenvolvimento de soluções informatizadas.

Esse paradigma se baseia principalmente em dois conceitos chave: classe e objetos. Todos os outros conceitos, igualmente importantes, são construídos em cima desses dois.


O que são classes e objetos:

Classes:

Classe é um conjunto de objetos distintos, porém com as mesmas características e comportamentos. A classe é uma abstração de um elemento existentes no mundo real. Por exemplo:

·        pessoa

·        animal

·        carro

Desta forma, a primeira coisa que se deve fazer em uma análise orientado a objetos e identificar os elementos que se pretende considerar no sistema e imediatamente transformá-las em classes.

Objetos:

O objeto sempre será uma instância ou um elemento de uma classe. Exemplos:

·        pessoa -> João

·        pessoa -> Maria

·        pesoa -> José

No exemplo acima pessoa é a classe e João, Maria e José são instâncias desta classe e, portanto, objetos. Outros exemplos:

·        animal -> Rex

·        animal -> Pingo

 

·        automóvel -> Gol

·        automóvel -> Uno

·        automóvel -> Fusca

Para entendermos melhor o conceito de classes e objetos é necessário compreender os elementos que compõe uma classe, como o nome, os atributos ou propriedades , métodos ou comportamentos e a visibilidade.


Propriedades:


Também chamados de características, forma ou atributo. São características do objeto e identificam o objeto em si. Elas podem mudar com o tempo. As propriedades formam a parte estrutural do objeto.


Métodos:


Também chamados de funções, operações ou comportamentos. São ações realizadas ou sofridas por um objeto. Os métodos formam a parte comportamental do objeto.

Exemplos:

 


Encapsulamento, herança e polimorfismo: as principais características da POO:


As duas bases da POO são os conceitos de classe e objeto. Desses conceitos, derivam alguns outros conceitos extremamente importantes ao paradigma, que não só o definem como são as soluções de alguns problemas da programação estruturada que são o  encapsulamento, a herança, as interfaces e o polimorfismo.

 

Encapsulamento:


Usando o exemplo da classe carro, sabemos que possui métodos, ou seja, características e comportamentos. No entanto, se alguns desses atributos ou métodos forem facilmente visíveis e modificáveis pode dar liberdade para que alterações sejam feitas, podendo resultar em efeitos colaterais imprevisíveis. Na POO, um atributo ou método que não é visível de fora do próprio objeto é chamado de "privado" e quando é visível, é chamado de "público".    

Esse encapsulamento de atributos e métodos impede o chamado vazamento de escopo, onde um atributo ou método é visível por alguém que não deveria vê-lo, como outro objeto ou classe. Isso evita a confusão do uso de variáveis globais no programa, deixando mais fácil de identificar em qual estado cada variável vai estar a cada momento do programa, já que a restrição de acesso nos permite identificar quem consegue modificá-la.

 

Herança:

 

As classes podem ser dividas em subclasses que herdam algumas características da classe principal. Por exemplo:


           

A classe Animal pode ter uma subclasse Mamífero que por sua vez as subclasses cachorro e homem. Diz-se que a classe a classe Animal é mãe da classe Mamífero que por sua vez é mãe da classe cachorro. Elas herdam características de suas respectivas classes mãe.


Interface:

 

Seguindo o exemplo da classe automóvel podemos dizer que vários métodos são comuns em vários tipos de automóveis. Tanto um carro quanto uma motocicleta são classes cujos objetos podem acelerar, parar, acender o farol etc., pois são coisas comuns a automóveis. Podemos dizer, então, que ambas as classes "carro" e "motocicleta" são "automóveis". Quando duas (ou mais) classes possuem comportamentos comuns que podem ser separados em uma outra classe, dizemos que a "classe comum" é uma interface.


Polimorfismo:

 

Ainda no exemplo de carros podemos dizer que diferentes tipos possuem métodos o som. Um tipo pode reproduzir por bluetooth, enquanto que em outro, pode ser feita apenas via cartão SD e pendrive. Em ambos os tipos de carros está presente o método "tocar música”, mas, como o sistema de som deles é diferente, a forma como o carro toca as músicas é diferente. Dizemos que o método "tocar música" é uma forma de polimorfismo, pois dois objetos, de duas classes diferentes, têm um mesmo método que é implementado de formas diferentes, ou seja, um método possui várias formas, várias implementações diferentes em classes diferentes, mas que possuem o mesmo efeito ("polimorfismo" vem do grego poli = muitas,  morphos = formas).


0
0

Comentários (1)

0
M

Marcelo Mora

14/10/2021 14:50

Marcos, obrigado por compartilhar, adorei o seu post, muito explicativo.

Experiência de 10 anos na área de Telecomunicações e 20 em TI exercidas no DECEA (Departamento de Controle do Espaço Aéreo). Iniciando como programador C# , .NET , JAVA

Brasil