Data WareHouse e Mineração de Dados

Propaganda
Programação
Orientada a Objetos
Artur Henrique Kronbauer
[email protected]
1
Conteúdos Abordados
−
−
−
−
−
−
−
−
−
−
−
−
Programação Orientada a Objetos
Como modelar com Orientação a Objetos(OO)
Modelos, seus dados e comportamentos
Definição de classes
Definição de tipos primitivos e não primitivos
Construtores
Criação de Objetos
Sobrecarga
Interação entre Objetos
Generalização
Especialização
Herança
2
O que é POO?
•
Programação Orientada a Objetos é uma
metodologia de desenvolvimento de software.
•
Sua principal vantagem é a proximidade com a
forma que os seres humanos visualizam e
entendem o mundo ao seu redor.
•
Tem como principal objetivo facilitar a
modelagem e desenvolvimento de sistemas,
através da interação entre objetos.
3
Como podemos modelar com OO?
•
Vamos imaginar a seguinte situação:
−
A esposa de um jovem casal, se encontra no segundo
mês de gravidez. No meio da noite, a grávida acorda
com uma azia terrível. Como é natural, a mulher pede
que seu marido providencie um antiácido para ela.
4
Como podemos modelar com OO?
•
Como poderíamos representar esse problema
sobre a ótica dos Objetos?
−
−
−
−
o objeto marido recebe uma mensagem do objeto
esposa.
O objeto marido responde a essa mensagem mediante
a uma ação: buscar antiácido.
A esposa não tem que dizer a ele onde ele deve
procurar, é responsabilidade do marido a ação de
procurar o antiácido.
Ao objeto esposa basta ter emitido uma mensagem ao
marido.
5
Modelos e Dados
•
Os modelos na POO são chamados de classes.
•
As classes especificam as características dos
objetos materializados a partir delas.
•
Tais características são chamados de atributos.
•
Ao ser materializado um objeto dizemos que
criamos uma Instância da classe.
•
Instâncias distintas de uma mesma classe
possuem os mesmos atributos, entretanto com
possíveis diferenças de valores.
6
Modelos e Dados
•
Os objetos são diferenciadas pelos seus nomes
de referência e não pelo valor de seus atributos.
7
Modelos e Comportamento
•
Em muitas situações os problemas do mundo real
ao
serem
modelados
para
o
mundo
computacional, necessitam ser fragmentados de
acordo
com
as
ações
que
esse
modelo
especificará para a representação do problema.
•
Objetos possuem comportamentos os quais são
representados nas classes através dos métodos.
8
Modelos e Comportamento
•
A fragmentação permite que o problema seja
representado por um conjunto de métodos, os
quais representam as ações do modelo.
•
Vantagens de ter vários métodos em um modelo:
−
−
−
−
−
facilidade em escrever o modelo;
utilizações repetidas de um mesmo método;
facilidade em dar manutenção;
utilização de parametrizações;
utilização adequada de recursos.
9
Abstraindo dados e Comportamentos
10
Abstraindo dados e Comportamentos
11
Definição de uma classe em Java
12
Definição de Tipos
•
Os tipos aparecem tanto nas declarações de atributos
como na declaração de métodos.
•
Os tipos podem ser primitivos:
−
•
int, float, char, double, byte, boolean.
Classes
também
são tipos!
Os tipos podem ser Não primitivos (nomes de outras
classes previamente definidas)
−
String, Mamiferos
13
Exemplos da utilização de Tipos
•
Para definição de Atributos:
14
Exemplos da utilização de Tipos
•
Para a construção de Métodos:
15
Construtores
•
Um construtor é um método que possui o mesmo
nome da classe onde ele está declarado.
•
Seu objetivo é inicializar o estado interno de um
objeto (seus atributos).
•
O construtor não possui retorno de nenhum tipo,
nem mesmo void.
•
Um construtor sempre é chamado através do
operador new no momento de se instanciar um
objeto.
16
Criando Objetos
17
Sobrecarga de Métodos e Construtores
•
Diferentes métodos podem ter o mesmo nome,
porém com listas de parâmetros (assinaturas)
diferentes.
•
Esse conceito é chamado de sobrecarga.
•
Este fato muitas vezes é necessário para
modelarmos comportamentos semanticamente
semelhantes, porém alimentados com dados
diferentes.
18
Exemplo de Sobrecarga
class soma
{
int calculo(int numero1, int numero2)
{ int resposta;
resposta = numero1 + numero2;
return resposta;
}
int[] calculo(int vetor1[], int vetor2[])
{ int[] resposta = new int[vetor1.length];
int i;
for (i=0; i < vetor1.length; i++)
{ resposta[i] = vetor1[i] + vetor2[i];
}
return resposta;
}
}
19
Interação entre Objetos
•
Modelagens complexas necessitam da interação
entre vários objetos para a solução do problema.
•
A idéia é chamada de “Dividir para conquistar”.
•
Em POO, podemos ter várias classes com
objetivos específicos, as quais ao interagirem
através de seus objetos solucionam problemas
mais abrangente.
20
Exemplo de Interação entre Objetos
Controle
de
Estoque
21
Generalização
•
Dona Cicinha quer evoluir o
sistema
para
controlar
o
faturamento.
•
Para
isso
será
necessário
controlar os quitutes vendidos.
•
Ao ser criadas as classes quitutes e bebidas,
podemos notar que alguns atributos e métodos
são iguais.
•
A criação de uma classe chamada produtos
poderia agrupar as semelhanças.
22
Generalização
23
Generalização
•
Através da generalização podemos agrupar em uma
classe um conjunto de definições comuns a
diferentes classes.
24
Especialização
•
A especialização é o caminho inverso da
generalização. Partindo de um modelo mais
genérico
podemos
acrescentar
novas
características e comportamentos aos já
existentes.
25
Herança
•
Herança é um dos mecanismos fundamentais de
relação entre classes na orientação a objetos.
•
Ela relaciona uma classe pai (superclasse) com
outras classes filhas (subclasses) de forma
hierárquica.
•
As subclasses herdam todos os atributos e
métodos da superclasse e podem criar os seus
próprios métodos e atributos.
26
Herança
•
A definição de herança em uma classe ocorre na
linguagem Java através da palavra “extends”
colocada logo após o nome da classe que herda
de outra.
•
Uma subclasse para referenciar os métodos ou
atributos da superclasse utilizamos a palavra
reservada super.
27
Herança
28
Assuntos para a próxima Aula
•
Modificadores de acesso a Atributos e Métodos
•
Polimorfismo
•
Classes Abstratas
•
Interfaces
•
Pacote de Classes
29
Bibliografia
•
BARNES, D e Kölling, M. Programação Orientada
a Objetos com Java. 2a Edição: Editora Pearson
Education. 2007.
•
DEITEL, H. M. e DEITEL, P. J. Java como
Programar. 4a Edição: Editora Bookman. 2003.
•
SANTOS,
R.
Introdução
à
Programação
Orientada a Objetos Usando Java. 1a Edição:
Editora Campus. 2003.
30
Download