Buscar

4 2-Requisitos básicos das linguagens orientadas a objetos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

- -1
Requisitos básicos das 
linguagens orientada a objetos
Georgia Maria Ferro Benetti
Introdução
Você já pensou sobre o modo como os sistemas computacionais trabalham para resolver problemas do mundo
real? A Programação Orientada a Objetos (POO) é um paradigma de programação que pretende desenvolver
representações fidedignas de situações do mundo real em sistemas computacionais. Assim, é um modo de
desenvolver programas e um conjunto de linguagens baseados em princípios e conceitos-chave característicos e
bem definidos. Diante disso, você sabe quais são eles?
Neste tema, vamos estudá-los e compreender como as ideias de abstração, polimorfismo, herança e
encapsulamento determinam diretrizes de programação. Ao conhecer os fundamentos básicos da POO, você
compreenderá como as linguagens de programação podem ser empregadas como recursos para a construção de
Sistemas de Informação (FOINA, 2012).
Abstração
A abstração é um ponto crucial em um projeto de software, por isso, os desenvolvedores podem investir muito
tempo das suas horas de trabalho elaborando abstrações (TUCKER; NOONAN, 2010).
Dessa maneira, o papel fundamental da abstração na POO está relacionado com o fato pelo qual, ao desenvolver
um software, não estamos lidando com objetos reais e, sim, com representações de objetos dos quais
precisaremos imaginar o comportamento dentro do sistema em questão.
Objeto é um conceito tão importante na POO que dá nome ao paradigma, sendo, então, antes da realidade
representados em ambiente de programação (DEITEL; DEITEL, 2011), os quais interagem entre si e têm estados
específicos (informações) e acessam um conjunto de operações (comportamentos), podendo ou não ser
alterados nessa interação.
Em computação, as abstrações podem ser do tipo procedural ou de dados e são particularmente úteis na
reutilização de código.
- -2
A abstração procedural é um elemento do paradigma de programação imperativa que determina o uso de
funções matemáticas pré-definidas, no qual o desenvolvedor de foco, para trabalhar na interface entre a função e
o que calcula, não se preocupar com os detalhes do cálculo (TUCKER; NOONAN, 2010).
Já a é um conceito anterior a POO, uma extensão da abstração procedural, fundamentalabstração de dados
para o desenvolvimento no paradigma orientado a objetos. Sua finalidade é reunir tipos de dados e suas funções
em um módulo único, para que provenham uma interface pública (TUCKER; NOONAN, 2010). 
De acordo com Sebesta (2011, p. 506-507), tipos de dados são:
[...] declarações do tipo e os protocolos das operações em objetos do tipo, que fornecem sua
interface, são contidos em uma única unidade sintática. A interface do tipo não depende da
representação dos objetos ou da implementação das operações. A implementação do tipo e de suas
operações podem estar na mesma unidade sintática ou em uma unidade separada. Além disso,
outras unidades de programa podem criar variáveis do tipo definido. […] A principal vantagem de
empacotar as declarações do tipo e suas operações em uma única unidade sintática é fornecer um
método de organizar um programa em unidades lógicas possíveis de serem compiladas
separadamente. (SEBESTA, 201,1 p. 506-507).
Compreender como funciona a abstração e o quais são os objetos é fundamental para trabalhar com POO, pois o
seu recurso de dados se utiliza para incluir objetos em um domínio de software (STROUSTRUP, 2013). Para
entender como um conjunto de dados abstratos constitui um objeto, precisaremos avançar para o próximo
subtópico e apreender como funciona o encapsulamento de dados.
Encapsulamento
Encapsulamento pode ser descrito como “[...] um mecanismo que permite que constantes logicamente
relacionadas, tipos, variáveis, métodos, entre outros, sejam agrupados em uma nova entidade. Exemplos incluem
procedimentos, pacotes e classe” (TUCKER; NOONAN, 2010, p. 310).
Desse modo, um objeto encapsulado é um conjunto de atributos e operações organizado em um bloco fechado
que oculta os aspectos mais complexos de programação e só mostra o estritamente necessário (detalhes de
implementação ou lógica de método), com o objetivo de existir comunicação com um outro objeto. 
Assim, configuram-se dois elementos chave da POO:
• Classe: conjunto de objetos com estrutura de características (atributos) e comportamentos (métodos) 
similares, baseada em um objeto modelo;
• Instância de classe: objetos derivados do modelo, mas que armazenam dados e executam operações.
FIQUE ATENTO
Existem diversas bibliotecas de abstrações já construídas que estão disponíveis para novas
implementações, como, por exemplo, “[...] as bibliotecas de classes Java contêm
implementações de estruturas de dados básicos (como vetores e pilhas) que, em linguagens
anteriores, tinham de ser projetadas explicitamente pelos próprios programadores” (TUCKER;
NOONAN, 2010, p. 17).
•
•
- -3
• Instância de classe: objetos derivados do modelo, mas que armazenam dados e executam operações.
Na prática, as classes criadas por encapsulamento dão uma característica a POO, em que as operações contidas
nelas podem ser utilizadas sem compreender detalhadamente como estão programadas nem como funcionam.
Então, se um programa é desenvolvido com POO, ele não vai ser um bloco único, mas, sim, uma composição de
várias partes pequenas, de implementação independente e que se relacionam por interfaces, cuja autonomia é
garantida pelo encapsulamento.
O encapsulamento é, portanto, um recurso que preserva os dados da classe, cujo acesso só poderá se dar via 
métodos particulares e com tipos de autorização de acesso bem específicos. Os principais tipos de acesso estão
representados no Quadro 1, a seguir.
Quadro 1 - Tipos de método de acesso
Fonte: Elaboração da autora.
O encapsulamento é um expediente, o qual permite que os objetos se liguem uns aos outros para utilizá-los. As
vantagens do encapsulamento estão indicadas no Quadro 2, abaixo.
•
EXEMPLO
Como um exemplo bem simplificado, podemos ter a classe casaco com os atributos cor e
tamanho, a partir da qual são instanciados (criados novos objetos) a instância de classe casaco
, tamanho médio, e o , . Mas prestede lã preto casaco de neoprene azul tamanho extragrande
atenção, o exemplo é simplificado, para criar uma classe de modo adequado é preciso
especificar o máximo de atributos que o objeto pode conter, pois sabemos que um casaco pode
conter outros atributos como marca, preço e assim por diante.
- -4
Quadro 2 - Vantagens do encapsulamento.
Fonte: Elaboração da autora.
Herança
Herança é uma técnica de programação a qual permite reaproveitamento integral de código, sendo, então, um
tipo de relação entre classes que se alinham a uma classe geral e uma derivada dela como caso especial.
Por meio de herança, todos os atributos e métodos da classe geral serão transferidos automaticamente para a
classe descendente sem que seja preciso desenvolver o código contido na classe geral novamente. Uma classe
mais complexa é, então, definida bastando implementar apenas métodos e atributos complementares.
A herança é uma analogia a hereditariedade humana, logo possui hierarquia de descendência, conforme indicado
no Quadro 3.
Quadro 3 - Hierarquia de Herança.
Fonte: Elaborado pela autora, com base em Tucker e Noonan (2010).
Essa característica da herança configura uma das suas desvantagens: a dependência entre classes. Nessa
FIQUE ATENTO
Em POO, as informações características de um objeto se chamam ; e as ações e osatributos
eventos relacionados aos objetos se chamam . Este último é o único modo de alterar ométodos
estado interno de um objeto. Em vista disso, um objeto pode disponibilizar vários métodos e o
conjunto deles se chama .interface
- -5
Essa característica da herança configura uma das suas desvantagens: a dependência entre classes. Nessa
perspectiva, existem dois tipos de herança, como indicados no Quadro 4, a seguir.
Quadro 4 - Tipos de Herança
Fonte: Elaborado pela autora, com base em Tucker e Noonan (2010).
Polimorfismo
É uma propriedadedos objetos de responder a mesma mensagem de modos diferentes. Isto é, o objeto comporta-
se de modo diferente diante de ações idênticas. Como exemplo, vamos supor que temos a classe nadar, mas cada
nadador vai “implementar” o método a sua maneira, uns nadarão no estilo crawl, outros no estilo costas ou,
ainda, no livre.
Equivale a dizer que os objetos podem interpretar os métodos de modos particulares. Nesse sentido, o
polimorfismo aplica-se às instâncias de classe.
Exemplos de linguagens orientadas a objetos
Existem muitas linguagens de programação orientadas a objetos. Posto isso, neste tópico seguiremos a seleção
de três linguagens, Smalltalk, Java e Python, estabelecidas por Tucker e Noonan (2010), apresentadas,
resumidamente, no Quadro 4.
SAIBA MAIS
Alguns modelos de linguagens com suporte a polimorfismo, chamadas de polimórficas, podem
ser: Actionscript, Java, C++. Existem diferentes tipos de polimorfismo, para saber mais acesse o
artigo “Conheça 6 tipos de polimorfismo”, disponível em: <https://medium.com/@victorvoid
>./6-tipos-de-polimorfismo-7787080e8857
https://medium.com/@victorvoid/6-tipos-de-polimorfismo-7787080e8857
https://medium.com/@victorvoid/6-tipos-de-polimorfismo-7787080e8857
- -6
Quadro 5 - Linguagens de programação orientadas a objetos.
Fonte: Elaborado pela autora, com base em Tucker e Noonan (2010).
Fechamento
Nesse tema, estudamos como os conceitos chave da POO são transformados em recursos de programação.
Aprendemos, a partir da abstração se compõem objetos, que, por encapsulamento, configuram-se em classes e
instâncias de classe. Dessa forma, as classes permitem utilizar a propriedade de herança, possibilitando reuso de
código.
Portanto, existem várias linguagens orientadas a objetos e as características comuns entre elas são: comportar
encapsulamento de tipos de dados e funções em uma única estrutura de código, de modo a esconder a maneira
como a abstração de dados está constituída.
- -7
como a abstração de dados está constituída.
Referências
DEITEL, H. M.; DEITEL, P. J. how to program. C++: 8. ed. New York: Prentice-Hall, 2011.
FOINA, P. R. : planejamento e gestão. São Paulo: Atlas, 2012.Tecnologia de informação
IGOR, V. Conheça 6 tipos de polimorfismo. , 16 jan. 2017. Disponível em: <Medium https://medium.com
>/@victorvoid/6-tipos-de-polimorfismo-7787080e8857 . Acesso em: 4 de fev. 2019.
SEBESTA, R. W. . Tradução de Eduardo Kessler Piveta. Conceitos de linguagens de programação 9. ed. Porto
Alegre: Bookman, 2011.
STROUSTRUP, B. . 4. ed. Boston: Addison-Wesley Professional, 2013.The C++ Programming Language
TUCKER, A.; NOONAN, R. princípios e paradigmas. São Paulo: AMGH, 2010.Linguagens de Programação: 
https://medium.com/@victorvoid/6-tipos-de-polimorfismo-7787080e8857
https://medium.com/@victorvoid/6-tipos-de-polimorfismo-7787080e8857
	Introdução
	Abstração
	Encapsulamento
	Tipos de método de acesso
	Vantagens do encapsulamento.
	Herança
	Hierarquia de Herança.
	Tipos de Herança
	Polimorfismo
	Exemplos de linguagens orientadas a objetos
	Linguagens de programação orientadas a objetos.
	Fechamento
	Referências

Continue navegando

Outros materiais