Este documento apresenta uma introdução ao paradigma da programação orientada a objetos. Resume os principais conceitos como características, vantagens e desvantagens em comparação ao paradigma estruturado. Também define objetos, classes, instanciação, generalização, especialização, agregação, decomposição e associação como operações de abstração fundamentais para modelagem orientada a objetos.
1. Programação
Orientada a Objetos
Unidade I – Introdução ao
Paradigma da Orientação a Objetos
Prof. Nécio de Lima Veras
http://lattes.cnpq.br/8284657916723590
2. Objetivo
Citar características, vantagens e
desvantagens do paradigma da orientação a
objetos, comparando-a com o paradigma
estruturado.
Prof. Nécio de Lima Veras
http://lattes.cnpq.br/8284657916723590
3. Roteiro
● Introdução
● O Paradigma da tecnologia de objetos;
● Modelagem conceitual (abstração);
● Processos de abstração;
● Operações de abstração.
Prof. Nécio Veras
4. Introdução
●
Uma construção de um programa
implicará em definir um modelo de
resolução e isso envolve um estudo do
problema (contexto e aspectos
importantes);
Prof. Nécio Veras
5. Introdução (cont.)
• Como construir um modelo de resolução (ou
modelagem do problema)?
– Existem para isso vários paradigmas:
1. Meio Procedural (computador é uma máquina que
apenas obedece ordens);
2. Meio funcional (computador avalia funções e o programa
define e compõe funções);
3. Meio orientado a objetos (Visa “imitar” o mundo real, o
computador simula as interações entre os objetos);
Prof. Nécio Veras
6. O Paradigma da Orientação a
Objetos
●
O mundo real é constituído por entidades;
●
Entidade: “Alguma coisa” que tenha sua
própria existência, características e que
apresenta alguma função do mundo real;
– Assim: Entidade = Objeto;
●
Mas o que seria esse Objeto?
Prof. Nécio Veras
7. O paradigma da Orientação a
Objetos
●
Segundo o dicionário português (s. m.):
– Tudo o que se oferece à vista, que afeta os sentidos.
– Qualquer coisa.
– Fig. Tudo o que se oferece ao espírito, que o ocupa; intenção, propósito.
– Causa, motivo de um sentimento, de uma ação.
– Matéria própria: o objeto de uma ação.
– Direito. Aquilo sobre o que incide um direito, uma obrigação, um contrato,
uma demanda em juízo.
– Filosofia. O que é pensado e se opõe ao ser pensante, ou sujeito.
– Gramática. Complementos verbais: objeto direto e objeto indireto.
– O objeto amado, a pessoa a quem se ama.
Prof. Nécio Veras
8. O paradigma da Orientação a
Objetos
●
No mundo computacional, embora não signifique algo
concreto ou palpável, é constituído por características que
apresentam alguma função do mundo real;
●
E isso inspira a resolução de problemas baseado na:
– construção de um modelo que englobe objetos
(entidades) definindo-se as interações entre eles;
– Ex.: Problema: “Chegar a um determinado ponto da
cidade”;
●
Objetos envolvidos: “Eu” , “ônibus” e “campainha”;
Prof. Nécio Veras
9. O Paradigma da Orientação a
Objetos: definição preliminar
●
Um software consiste em um entidade
(objeto), expresso na forma de texto, que
especifica os objetos que atuam na resolução
de um determinado problema e que descreve
como esses objetos devem interagir no
sentido de resolvê-los.
Prof. Nécio Veras
10. Modelagem Conceitual
Refere-se às
Operação mental convenções de
para observar um representação
domínio e capturar
sua estrutura
REPRESENTAÇÃO
ABSTRAÇÃO
Entidade
Representada
Entidade
Notação gráfica,
Observada linguagem de programação
Avião
Prof. Nécio Veras
11. Abstração
●
Ex.: Problema: “determinar a média final de um aluno”;
– Aspectos relevantes: Suas notas, assiduidade, participação
durante as aulas;
– Aspectos irrelevantes: Meio de transporte utilizado, procedência
escolar, gostos;
●
Constitui-se em um processo mental usado para
modelar uma entidade, isolando as características
importantes;
●
Objetivo: Reduzir a complexidade do problema;
Prof. Nécio Veras
12. Abstração (cont.)
●
Sempre dependerá do CONTEXTO, ou seja,
do PONTO DE VISTA;
●
Deve enfatizar as características essenciais
do problema e o projetista deve:
– Considerar essas características sob o ponto
de vista de quem necessita da solução;
Prof. Nécio Veras
13. Abstração
“a beleza está nos olhos de quem a vê”
• Diferentes abstrações a partir de um mesmo objeto
do mundo real
Multiplicidade
I, II, do conjunto
Maça
Peso
cor da casca Receita
formato
Prof. Nécio Veras
14. Conclusão (Abstração)
●
A forma de representação depende do tipo de
problema e dos objetivos;
●
Um arquiteto deve representar o modelo de
resolução do problema de construção de casa,
usando maquetes, plantas, etc.
●
Nosso caso: Definir modelo para que o computador
resolva problemas;
– Linguagens de programação;
– Diagramas/textos descritivos;
Prof. Nécio Veras
15. Operações de Abstração
• É importante que se conheça os operações usadas
durante o processo de abstração que envolve
objetos;
• Demonstra como o ser humano mentaliza,
organiza e modelo o mundo ao seu redor;
• Aplicaremos as seguintes operações básicas:
1. Classificação / Instanciação;
2. Generalização / Especialização;
3. Agregação / Decomposição;
4. Associação;
Prof. Nécio Veras
16. Classificação / Instanciação
●
Cada entidade possui determinadas características
que a identificam;
●
Ex.: Carro = Automóvel , pois possui todas as
características de um automóvel, tais como:
– Ter um motor, porta-malas, placa, sistemas de câmbio e
freios, volante, etc.
●
Veículo do vizinho, também é um automóvel, desde
que possua as mesmas características;
– São entidades distintas, porém pertencem a mesma
categoria de automóveis;
Prof. Nécio Veras
17. Classificação
●
Uma categoria define o conjunto de
características que devem ser apresentados
por um objeto;
●
Categoria = Classe;
●
Objetos (Possuem sua própria existência e
características);
●
Objetos com as mesmas características
pertencem a uma mesma classe;
Prof. Nécio Veras
18. Instanciação
●
Ao construímos um objeto contendo todas as
características de determinada classe,
estamos fazendo uma operação de
Instanciação;
●
Ocorre sempre que criarmos uma entidade
de determinada classe;
Prof. Nécio Veras
19. Visualizando
CATEGORIA (CLASSE)
Estudante
de
Graduação
CLASSIFICAÇÃO
INSTANCIAÇÃO
José Maria
INDIVÍDUO
(Objeto)
Prof. Nécio Veras
20. Classificação / Instanciação
(conclusão)
●
Classificação: Operação que tem por
objetivo, através da análise das
características de um objeto, definir a que
classe pertence;
●
Instanciação: Operação que, dada uma
determinada classe, define (cria) um objeto
pertencente a esta classe;
Prof. Nécio Veras
21. Generalização / Especialização
●
Imagine um profissional formado em computação
(objeto) pertencente à classe bacharel em
computação;
●
Considere agora este profissional faça um curso de
especialização em análise de sistemas;
– Então, este novo profissional possui características
adicionais;
– Agora ele também faz parte da classe Analistas de
Sistemas;
●
Assim, análise de sistemas constitui-se em uma
especialização da classe bacharel em computação;
Prof. Nécio Veras
22. Visualizando
CATEGORIA (CLASSE)
Estudante
GENERALIZAÇÃO
ESPECIALIZAÇÃO
(herança)
Estudante Estudante
de de Pós-
Graduação Graduação
CATEGORIA (CLASSE)
Prof. Nécio Veras
23. Visualizando (cont.)
CATEGORIA (CLASSE)
Mamífero
Atributos
•sangue quente
•vertebrado
•vivíparo GENERALIZAÇÃO
ESPECIALIZAÇÃO
Atributos Baleia (herança)
•Habitat: mar
•Tempo médio de
vida: 200 anos
CATEGORIA(CLASSE)
Prof. Nécio Veras
24. Generalização / Especialização
(Conclusão)
●
Generalização: Operação de análise de um
conjunto de classes que identificam características
comuns a todas, tendo-se por objetivo a definição
de uma classe mais genérica, a qual especificará
essas características comuns;
●
Especialização: Operação em que, a partir de uma
classe, identifica-se uma ou mais subclasses, cada
uma especificando características adicionais em
relação à classes mais geral;
Prof. Nécio Veras
25. Agregação / Decomposição
●
Como vimos, um objeto possui determinadas
características:
– Características de decomposição;
– Características de ação;
●
Ação está relacionada aos serviços que este objeto
pode executar;
●
Decomposição dizem respeito à constituição do
objeto;
●
Um objeto pode ser composto por vários outros
objetos;
Prof. Nécio Veras
26. Agregação / Decomposição
(cont.)
●
Quando unimos um conjuntos de objetos, com o
objetivo de formarmos outros objetos, estamos
realizando uma operação de agregação;
●
Ao analisarmos um objeto isolando cada um de
seus componentes, estamos fazendo uma
operação de decomposição;
●
Os diagramas que demonstram estas operações,
também podem ser chamados de Todo-Parte;
Prof. Nécio Veras
27. Visualizando
CATEGORIA(CLASSE)
Estudante
AGREGAÇÃO
(composição -
síntese)
DECOMPOSIÇÃO
Nome Endereço (refinamento -
análise)
CATEGORIA COMPONENTE
Prof. Nécio Veras
28. Associação
●
Apresenta um determinado relacionamento,
caracterizado pela ligação entre suas entidades;
– Ex.: Professor e aluno no problema relacionado
ao ato de ministrar aulas;
●
Em associação, as entidades que possuem ligação
existem independentemente uma da outra;
– Ao contrário de Agregação/decomposição, no qual implica
o acoplamento forte entre as entidades (uma é parte
integrante da outra);
Prof. Nécio Veras