Escolar Documentos
Profissional Documentos
Cultura Documentos
DE PROGRAMAO
ORIENTADA A OBJETOS
NDICE:
1.
2.
Histrico: ......................................................................................................... 3
Fundamentos da Programao Orientada a Objetos:..................................... 4
2.1.
Paradigma Orientado por Objetos: ........................................................................ 4
2.2.
Principais conceitos de POO: ................................................................................ 4
2.2.1.
Objetos:.......................................................................................................... 4
Atributos e mtodos:.......................................................................................... 6
Exerccio 1:........................................................................................................ 7
2.2.2.
Classes: .......................................................................................................... 8
Instanciao: .................................................................................................... 12
Classes puras ou abstratas: .............................................................................. 12
Exerccio 2:...................................................................................................... 13
2.3.
Notao grfica das classes e dos objetos: .......................................................... 14
2.4.
Definio de classes e objetos em Java: .............................................................. 15
Introduo a JAVA:......................................................................................... 15
2.5.
Princpios Bsicos da orientao a objetos:......................................................... 16
5.2.1.
Abstrao:.................................................................................................... 16
5.2.2.
Encapsulamento:.......................................................................................... 17
5.2.3.
Herana:....................................................................................................... 18
5.2.4.
Formas de herana ....................................................................................... 19
Herana Simples:............................................................................................. 19
Herana Mltipla: ............................................................................................ 20
Exerccio 3:...................................................................................................... 22
5.2.5.
Polimorfismo: .............................................................................................. 23
Exerccio 4:...................................................................................................... 24
2.6.
Estruturas:............................................................................................................ 25
6.2.1.
Estrutura de Generalizao Especializao: ............................................. 25
6.2.2.
Estrutura Todo - Parte: ................................................................................ 26
3. Modelagem de um Sistema Orientado a objetos: ......................................... 27
Exerccio 5:...................................................................................................... 28
4. Programao Orientada a Objetos:............................................................... 30
5. Vantagens e Benefcios da programao OO:.............................................. 31
Unificao entre dados e processos:................................................................ 31
Consistncia entre anlise e desenvolvimento: ............................................... 31
Reutilizao e aumento da produtividade: ...................................................... 32
Multidesenvolvimento:.................................................................................... 32
Facilidades em manuteno:............................................................................ 33
6. Exerccio de reviso: ..................................................................................... 34
7. Bibliografia: ................................................................................................... 35
2.2.
2.2.1.
Objetos:
Figura 1 - Cachorro
Analisando este objeto, o cachorro, podemos deduzir que o mesmo possui
algumas caractersticas que pertencem apenas a ele prprio. Por exemplo, um
cachorro possui:
Um nome,
Uma idade,
Um comprimento de plos,
Uma cor dos pelos,
Uma cor dos olhos,
Um peso,
...
Latir,
Babar,
5
Correr em crculos,
Pegar a bola,
Sentar,
Comer,
Dormir,
...
Pluto
2 anos
Curtos
Bege
Castanhos
5 Kg
6
Snoopy
4 anos
Compridos
Cinza
Pretos
8 Kg
Mtodos:
Os mtodos so procedimentos ou funes que realizam as aes prprias do
objeto. Assim, os mtodos so as aes que o objeto pode realizar. Tudo que o
objeto faz realizado atravs de seus mtodos, pois atravs dos seus mtodos
que um objeto se manifesta, e atravs deles que o objeto interage com os outros
objetos.
Um objeto exibe algum comportamento (executa uma operao) quando recebe
um estmulo de outro objeto. Um objeto requisita a ao de algum outro objeto,
enviando uma mensagem para ele. Esta mensagem uma solicitao a um
objeto para que seja executada as rotinas que chamamos de Mtodo da classe.
Os mtodos so responsveis por acessar ou alterar os atributos de um objeto.
Imaginando os mtodos do nosso objeto de estudo, o cachorro, enumeramos
mtodos (aes) como Latir, babar, comer sentar, etc.
Exerccio 1:
Para atender as necessidades de informao de uma biblioteca universitria foi
proposto um sistema que deve atender as seguintes caractersticas:
2.2.2.
Classes:
SubClasse Roedores
SubClasse Ces
SubClasse Gatos
SubClasse Equnos
Super Classe
Mamferos
10
Atributos
Animais
Aves
Mamferos
Nome
Idade
Peso
Cor dos olhos
Comer
Dormir
Mtodos
Rpteis
Tipo de
Escamas
Comprimento
da calda
Botar Ovo
Rastejar
Ces
Latir
Pegar a Bola
Gatos
Miar
Subir na rvore
11
Classe
Ces
Objetos
Pluto
Atributos
Nome
...
Mtodos
Comer
...
Snoopy
Instanciao:
A instanciao quando a classe produz um objeto, como se ela fosse uma
espcie de modelo ou gabarito para a criao de objetos. Conforme a teoria da
orientao a objetos, dizemos que um objeto , nada mais nada menos, que a
instncia de uma classe.
Pelo exemplo que estamos estudando, cada cachorro que for armazenado um
novo objeto, uma nova instncia da classe Ces. A classe serve de modelo para
a criao de novos objetos.
Ces
Pluto
Snoopy
Rex
Boby
Tot
Figura7 - Instanciao
12
Pessoa
Funcionrio
Gerente
A classe Pessoa nunca ter um objeto a ela instanciado, ela s existe para
unificar todos os atributos e mtodos comuns as classes Gerente e Funcionrio
evitando assim a redundncia. Pelo exemplo acima, Pessoa uma classe pura
ou abstrata.
Existem notaes que sugerem que uma classe pura seja chamada tambm de
classe-&-classe e as classes que podem ser instanciadas de classe-&-objeto.
Exerccio 2:
Para atender as necessidades de informao de uma biblioteca universitria foi
proposto um sistema que deve atender as seguintes caractersticas:
13
2.3.
14
Nome Objeto
Atributos
Atributos
Mtodos
Mtodos
Introduo a JAVA:
Java uma linguagem de programao Orientada a Objetos muito conveniente
para o desenvolvimento de software que funcione em conjunto com a Internet. A
linguagem Java foi desenvolvida na Sun Microsystems em 1991, uma grande
vantagem que ela apresenta diante das outras linguagens de programao o
fato de seus cdigos fonte e objetos serem portveis para diversas arquiteturas e
sistemas operacionais.
A definio de uma classe em Java :
public class NomeDaClasse {
CorpoDaClasse
}
O
corpo
de
uma
classe
pode
construtores/inicializadores e outras classes).
conter
(atributos,
mtodos,
15
no
// Definio de classe
// Declarao de atributos
// Declarao de mtodo
5.2.1.
Abstrao:
Encapsulamento:
17
forma, para telefonar para algum voc simplesmente pega um telefone e disca o
nmero destino. Isto acontece sem que voc saiba quais foram os procedimentos
que ocorreram na empresa telefnica que conectou voc ao destino que voc
informou.
Outro ponto importante permitir que voc faa modificaes internas em um
objeto, acrescentando mtodos sem afetar os outros componentes do sistema
que utilizam esse mesmo objeto. Para exemplificar esta vantagem, podemos
retornar ao nosso exemplo do telefone, onde sabemos que a companhia
telefnica pode efetuar diversas alteraes no tratamento telefnico, como o
caso de converter as linhas analgicas para digitais, ou aumentar a quantidade de
servios oferecidos, e isso tudo sem modificar o mtodo que voc utiliza para
telefonar. Isto pode ser realizado porque a companhia telefnica encapsulou a
maneira de realizar uma chamada telefnica. Assim, a empresa est livre para
efetuar todas as alteraes que desejar, sem afetar a maneira como voc acessa
os servios dessa companhia.
O que importa para poder haver interao entre dois objetos que um conhea o
conjunto de operaes disponveis do outro (interface) para que ento envie e
receba informao, ou mesmo ordene a realizao de procedimentos.
5.2.3.
Herana:
18
Mamfero
Primata
Ser Humano
- Mamar
- Possui plos
- Possui Mos e Ps
- Ser inteligente
- Andar ereto
- Filosofar
Formas de herana
Herana Simples:
A herana denominada simples quando uma classe herda caractersticas de
apenas uma superclasse. Por exemplo, podemos ter como superclasse uma
classe chamada Pessoa, e dela derivar uma subclasse chamada Funcionrio.
Esta nova classe, Funcionrio, herda todas as caractersticas da sua superclasse
Pessoa, e de mais nenhuma outra. Como diferencial esta nova classe Funcionrio
possui atributos e mtodos que a classe Pessoa no possui, uma vez que
19
Funcionrio
Nome
RG
CPF
Endereo
Nada impede, entretanto, que a mesma superclasse gere mais de uma subclasse.
Uma superclasse Pessoa pode gerar uma subclasse Cliente da mesma forma
como pode gerar uma subclasse Funcionrio.
Pessoa
Nome
RG
CPF
Endereo
Funcionrio
Cliente
Nome
RG
CPF
Endereo
Limite Crdito
Preferncias
Herana Mltipla:
A herana denominada mltipla quando uma classe herda caractersticas de
duas ou mais superclasses. Por exemplo, usando o exemplo do Funcionrio e do
Cliente, devemos estar atentos ao fato de que um funcionrio pode vir a ser um
cliente tambm. Assim, alm de possuir atributos e mtodos que o qualificam
20
Funcionrio
Cliente
Nome
RG
CPF
Endereo
Limite Crdito
Preferncias
Funcionrio-Cliente
Desconto Especial
21
Exerccio 3:
Pessoa
Nome
RG
CPF
Endereo
Cliente
Codigo
Funcionario
Locao
Matricula
Gerente
NumFunc
Jos
Tecnico
Cd.Gerente
Pedro
Ana
22
5.2.5.
Polimorfismo:
GRAVAR
23
Exerccio 4:
Dos objetos abaixo, separe em grupos aqueles que possuem mtodos em
comum, mas que so executados de forma diferente, ou seja, apresentam
polimorfismo entre eles.
(1)
(2)
(6)
(10)
(3)
(7)
(4)
(8)
(9)
(11)
(14)
(12)
(15)
(18)
(19)
(22)
(5)
(23)
(13)
(16)
(20)
(24)
(17)
(21)
(25)
24
2.6.
Estruturas:
6.2.1.
Funcionrio
Cliente
Nome
RG
CPF
Endereo
Limite Crdito
Preferncias
25
6.2.2.
Este tipo de estrutura bastante caracterstico, uma vez que trata de agregao
ou decomposio de objetos. Essa estratgia bastante til na identificao dos
objetos e dos seus componentes diante de um determinado problema em estudo.
nesta estrutura que descrevemos, quando for o caso, quais subclasses formam
uma superclasse. Isto significa que um objeto, ou mesmo uma classe pode
conter, dentro de si, outras estruturas. Assim, o nosso entendimento sobre um
determinado problema reduz-se ao estado do problema em questo, tornando a
anlise mais clara e tambm objetiva.
A notao grfica bastante simples. Usa-se um tringulo, partindo das
subclasses apontando a superclasse, dessa forma sabemos quem composto
por quem.
Um bom exemplo para ilustrar esse tipo de estrutura pode ser a relao entre um
carro e seus componentes. O carro tratado como um objeto pode ser decomposto
em diversos outros objetos, como o motor, as rodas, o painel, o banco, as portas
etc. Podemos seguir com a decomposio e avanar sobre o motor, que pode ser
dividido em distribuidor, carburador e outros. Portanto, percebemos que um objeto
mais complexo, muitas vezes, nada mais do que um agregado de diversos
outros objetos simples.
Carro
Motor
Roda
26
vista da anlise, so todas iguais. Ou seja, cada roda igual outra. Assim,
vemos a roda como um objeto que se repete 4 a 5 vezes dentro do objeto carro.
Estendendo a cardinalidade tambm ao motor do nosso carro, temos uma relao
de 0,1 do motor para com o carro, e de 1,1 do carro para com o motor. Ou seja,
significa que o motor pode estar em nenhum ou um carro, e que o carro deve ter
no mnimo 1 motor e no mximo tambm 1. No temos visto at o momento um
carro com dois motores, mas certamente j vimos motores sem carro (em oficinas
mecnicas por exemplo).
Carro
0,1
0,1
1,1
4,5
Motor
Roda
Figura 18 Cardinalidade
27
Exerccio 5:
Para ilustrar a aplicao dos passos descritos, utilizaremos um exemplo de
modelagem de uma escola que oferece cursos para a comunidade. A relao das
premissas que devero ser consideradas neste sistema a seguinte:
28
29
30
31
32
33
6. Exerccio de reviso:
Para as afirmaes abaixo, numere a segunda coluna de acordo com a primeira:
Coluna 1
( 1 ) Orientao a Objetos
( 2 ) Objeto
( 3 ) Atributos
( 4 ) Mtodos
( 5 ) Classes
( 6 ) Herana
( 7 ) Polimorfismo
( 8 ) Herana simples
( 9 ) Herana mltipla
( 10 ) GeneralizaoEspecializao
( 11 ) TodoParte
( 12 ) Instanciao
( 13 ) Hierarquia de classe
( 14) Classes puras
Coluna 2
(___) o mecanismo pelo qual uma classe obtm as
caractersticas e mtodos de outra para expandi-la ou
especializ-la de alguma forma, ou seja, uma classe
pode herdar caractersticas, mtodos e atributos de
outras classes. Da mesma maneira uma classe transmite
suas caractersticas para outras classes, tornando
aquelas que recebem suas caractersticas suas
herdeiras.
(___) Representa um gabarito para muitos objetos e
descreve como estes objetos esto estruturados
internamente.
(___) Quando uma classe herda caractersticas de duas
ou mais superclasses.
(___) Esta estrutura formada por uma classe genrica
no topo da estrutura e suas classes descendentes
especializadas dispostas abaixo.
34
7. Bibliografia:
COAD, Peter e YOURDON, Edward. Anlise Baseada em Objetos. Rio de
Janeiro : Campus, 1992.
TAFNER, Malcon A. e CORREA, Carlos H. .Manual de Anlise Orientada a
Objetos. Blumenau SC.
RICARTE, Ivan Luiz Marques. Programao Orientada a Objetos: Uma
Abordagem com Java. Campinas, 2001.
35