Você está na página 1de 35

CONCEITOS BSICOS

DE PROGRAMAO
ORIENTADA A OBJETOS


















Autor: Fernanda Farinelli

2007
2
NDICE:

1. Histrico: ......................................................................................................... 3
2. 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

3
PROGRAMAO ORIENTADA A OBJETOS.

1. Histrico:
A Engenharia de software surgiu no final da dcada de 60 para tentar solucionar
os problemas gerados pela Crise do software, no entanto, vrias tcnicas que
foram desenvolvidas nos anos 70 e 80 no conseguiram resolver os problemas de
produtividade e qualidade em softwares.

Nos anos 90, um grande nmero de empresas, de diversos portes, j estava com
boa parte de seus sistemas com um considervel nvel de informatizao, alm
disso, o uso da internet como meio de comunicao e busca macia de
informao foi amplamente divulgado e finalmente o computador passou a ser
uma ferramenta de trabalho para muitas pessoas.

Com tudo isso, surge a necessidade de se produzir softwares mais atraentes,
dinmicos e com alto poder de troca de informao, alm disso, passou-se a
exigir dos softwares uma maior produtividade e melhor qualidade.

Os softwares atuais se caracterizam por ter grande interao com o usurio, pelo
uso de interfaces grficas, pela necessidade permanente de alterao e expanso
(dada a velocidade de mudanas de hardware) e apresentam interao com
outros sistemas possibilitando a troca de dados entres eles, portabilidade para
diversas plataforma e sistemas operacionais.

Ao longo de vrias pesquisas e testes, verificou-se que a reutilizao era a pea
chave para o aumento da produtividade e melhoria da qualidade dos softwares. A
reutilizao significa usar novamente algo que foi feito. Seu objetivo permitir
uma ampla utilizao de todos os tipos de informao encontradas na situao de
desenvolvimento. Podemos citar como benefcio da reutilizao uma reduo das
etapas de desenvolvimentos de software.

As tcnicas oferecidas pela programao estruturada no eram suficientes para
atender, com satisfao desejada, a elaborao destes tipos de aplicaes. Seria
necessrio partir para uma nova tcnica de programao. A tcnica que comeou
a ser adotada por parte dos programadores foi a Programao Orientada a
Objetos.

4
2. Fundamentos da Programao Orientada a Objetos:

A Orientao a Objetos uma tecnologia que enxerga os sistemas como sendo
coleo de objetos integrantes. Ela permite melhorar a reusabilidade e
extensibilidade dos softwares.

A tecnologia orientada a objetos fundamentada no que, coletivamente,
chamamos de modelo de objetos, que engloba os princpios da abstrao,
hierarquizao, encapsulamento, classificao, modularizao, relacionamento,
simultaneidade e persistncia.

2.1. Paradigma Orientado por Objetos:

A proposta da orientao a Objetos representar o mais fielmente possvel as
situaes do mundo real nos sistemas computacionais. Ns entendemos o mundo
como um todo composto por vrios objetos que interagem uns com os outros. Da
mesma maneira, a Orientao a Objetos consiste em considerar os sistemas
computacionais no como uma coleo estruturada de processos, mas sim como
uma coleo de objetos que interagem entre si.

Os programas Orientados a objetos so programas estruturados em mdulos que
agrupam um estado e operaes sobre este estado. Apresentam nfase em
reutilizao de cdigo.

Um dos grandes diferenciais da programao orientada a objetos em relao a
outros paradigmas de programao que tambm permitem a definio de
estruturas e operaes sobre essas estruturas est no conceito de herana,
mecanismo atravs do qual definies existentes podem ser facilmente
estendidas. Juntamente com a herana deve ser enfatizada a importncia do
polimorfismo, que permite selecionar funcionalidades que um programa ir utilizar
de forma dinmica, durante sua execuo.


Orientao a Objetos consiste em considerar os
sistemas computacionais como uma coleo de
objetos que interagem de maneira organizada.


2.2. Principais conceitos de POO:

2.2.1. Objetos:

Usamos o termo objeto para representar um determinado elemento do mundo
real. Mas somente analisaremos os objetos que tem relevncia para a soluo de
5
um determinado problema. Portanto, o objeto uma entidade do mundo real que
merece representao para o ambiente estudado.

Objetos so instncias de classes, que determinam qual informao um objeto
contm e como ele pode manipul-la. uma entidade capaz de reter um estado
(informao) e que oferece uma srie de operaes (comportamento) ou para
examinar ou para afetar este estado. atravs deles que praticamente todo o
processamento ocorre em sistemas implementados com linguagens de
programao orientadas a objetos.

Como exemplos de objetos, podemos citar os objetos fsicos (um livro, uma
mercadoria), funes de pessoas para os sistemas (cliente, vendedor), eventos
(uma compra, um telefonema), interaes entre outros objetos (um item de uma
nota fiscal uma interao entre uma compra e um produto do estoque) e lugares
(loja matriz, revenda norte).

Por exemplo, vamos considerar um cachorro como nosso objeto de estudo:



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,
...


As caractersticas que descrevem um objeto
so chamadas de atributos.


Alm do conjunto de caractersticas que descrevem o cachorro, podemos tambm
identificar um conjunto de aes que ele capaz de executar:

Latir,
Babar,
6
Correr em crculos,
Pegar a bola,
Sentar,
Comer,
Dormir,
...


As aes que um objeto pode executar so
chamadas de mtodos ou servios.


A nica maneira de interagir com os objetos atravs dos mtodos que ele
disponibiliza. Para interagir com o cachorro, utilizamos os mtodos que
relacionamos acima: para aliment-lo, utilizamos o mtodo comer, para brincar
com ele, utilizamos o mtodo pegar a bola, etc.


Chamamos de interface ao conjunto de
mtodos disponveis em um objeto.


Atributos e mtodos:

Vimos ento que os objetos so compostos de atributos e mtodos, mas afinal, o
que so atributos e o que so mtodos?

Atributos:

Os objetos do mundo real possuem propriedades que possuem valores. Estes
valores definem o estado do objeto. As propriedades recebem o nome de
atributos em OO.

Podemos dizer que os atributos dos objetos so variveis ou campos que
armazenam os diferentes valores que as caractersticas dos objetos podem
conter.

O estado de um objeto o conjunto de valores de seus atributos em um
determinado instante. O comportamento de um objeto como ele age e reage em
termos de suas mudanas de estado e troca de mensagens com outros objetos.

O cachorro do nosso exemplo poderia ser representado pelos seguintes atributos:








Cachorro
Nome: Pluto
Idade: 2 anos
Comprimento dos plos: Curtos
Cor dos plos: Bege
Cor dos olhos Castanhos
Peso: 5 Kg

7

Um outro objeto cachorro apresentaria valores diferentes para os mesmos
atributos, por exemplo:












Os atributos de um objeto somente mudam de valor atravs de estmulos
externos ou internos. A nica forma de modificar os atributos dos objetos
disparando eventos que provocam a transio desses estados no objeto.


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:

O cadastro dos usurios da biblioteca com endereo completo. Os usurios
podem ser classificados em trs grupos: Professores, Alunos e
Funcionrios.
O cadastro das obras da biblioteca, que podem ser classificadas em: Livros
cientficos, peridicos cientficos, peridicos informativos, peridicos
diversos, entretenimento, etc.
A lngua em que se encontra o exemplar da obra.

Cachorro
Nome: Snoopy
Idade: 4 anos
Comprimento dos plos: Compridos
Cor dos plos: Cinza
Cor dos olhos Pretos
Peso: 8 Kg

8
A mdia onde se encontra o exemplar da obra.
Os autores da obra com o controle da nacionalidade do autor.
As editoras dos exemplares com o ano de edio de cada exemplar.

Identifique os possveis objetos com seus respectivos atributos e mtodos.





























2.2.2. Classes:

Uma classe representa um conjunto de objetos que possuem caractersticas e
comportamentos comuns e de agora em diante, diremos que um objeto uma
instncia de uma determinada classe, ou seja, criaremos nossos objetos
baseados nas caractersticas definidas nas classes.

A nfase da metodologia orientada a objetos dada na criao das classes, e
no dos objetos, como se poderia pensar pelo nome.

Olhando os dois ces do exemplo anterior, vemos que os dois possuem
exatamente o mesmo conjunto de atributos. Isso acontece porque se trata de dois
objetos da mesma classe, ou categoria. Isso significa que os dois possuem
exatamente o mesmo conjunto de atributos e mtodos, embora cada objeto possa
ter valores diferentes para os seus atributos.
9






Figura 2 - Classe Ces


Objetos de mesma classe possuem a mesma definio tanto para mtodos
quanto para atributos.

Tomemos uma classe gatos formada de objetos gato. Estes objetos possuem as
seguintes caractersticas: nome, idade, peso, cor de plos, cor de olhos e
comprimento de plos. Alm disso, o objeto possui as seguintes aes: miar,
comer, dormir, subir na rvore.








Figura 3 - Classe Gatos


Muitos objetos do mundo real possuem caractersticas comuns e podem ser
agrupados de acordo com elas. Uma classe representa um gabarito para muitos
objetos e descreve como estes objetos esto estruturados internamente.

As classes Ces e Gatos possuem caractersticas e mtodos comuns, por
exemplo: Caractersticas comuns (nome, idade, peso, cor de plos, cor de olhos e
comprimento de plos), Mtodos comuns (pegar a bola, comer, dormir). Surge
ento o conceito de subclasse e superclasse. Podemos ter uma superclasse de
Mamferos:


10



















Figura 4 - Super Classe Mamferos


Dentro da SuperClasse Mamferos temos pelo menos 4 Subclasses. Podemos
dizer que elas apresentam as seguintes caractersticas em comum: nome, idade,
peso, cor dos olhos e cor dos plos. Alm disso, estas subclasses possuem os
seguintes mtodos em comum: comer, sentar e dormir.

Observando a figura 4, podemos distinguir quatro categorias diferentes de
animais: ces, gatos, eqinos e roedores. Verificamos que existem seis
objetos na super classe mamferos, sendo distribudos em quatro subclasses
(Ces, gatos, roedores e eqinos). Essa a diferena entre classe e objeto: a
classe um modelo e todos os objetos daquela classe possuem atributos
comuns, mas esses atributos possuem valores distintos, e os mtodos tambm
so comuns.

Utilizando a hierarquia de classe, podemos omitir da declarao de um objeto ou
de uma classe inferior tudo aquilo que j foi definido na(s) classe(s) superiores.
SubClasse Ces
SubClasse Gatos SubClasse Equnos
SubClasse Roedores
Super Classe
Mamferos
11
S sero definidos no objeto os atributos e mtodos particulares desse objeto que
no so atribudos aos outros objetos da mesma classe.

Chamamos de ancestrais s classes das quais as outras dependem e de
descendentes as classes originadas a partir de outra. No exemplo acima, a
classe mamferos tem um ancestral (animais) e dois descendentes (ces e
gatos). Em cada descendente s preciso descrever os atributos e mtodos que
apresentam alterao em relao descrio do ancestral, conforme a figura 5.


Atributos


Mtodos

























Figura 5 Hierarquia de classes


As classes so definies de como os objetos devem ser e no existem na
realidade. Somente os objetos tm existncia. Usando o exemplo dos animais,
quando vamos mostrar nosso cachorro a algum, no dizemos esse um co, e
sim esse o pluto, ou snoopy. O que se pode ver no uma classe de seres,
mas um cachorro especfico, um objeto.



Nome
Idade
Peso
Cor dos olhos
Comer
Dormir
Animais
Mamferos
Cor dos plos
Comprimento
dos plos

Sentar
Amamentar
Aves
Cor das penas
Tamanho das
penas

Botar Ovo
Rpteis
Tipo de
Escamas
Comprimento
da calda

Rastejar
Ces Gatos


Latir
Pegar a Bola


Miar
Subir na rvore
12

Classe Objetos


Pluto




Snoopy




Figura 6 Exemplo de Objetos


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.






Pluto Snoopy Rex Boby Tot


Figura7 - Instanciao


Classes puras ou abstratas:

Classes puras so classes das quais os objetos nunca so instanciados
diretamente, mas sempre por uma classe descendente dela. Essas classes so
criadas para facilitar o processo de estruturao. Um exemplo clssico criar
uma classe Pessoa, que contm os atributos (nome, endereo, telefone, etc.) e
mtodos (alterao de endereo, imprimir ficha, etc.) necessrios para manusear
dados de pessoas em um sistema de informao. A partir dessa classe genrica,
criam-se classes descendentes especficas para manusear funcionrio, gerente,
etc.


Ces

Atributos

Nome
...

Mtodos
Comer
...


Ces
13










Figura 8 Exemplo de classe pura ou abstrata


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:

O cadastro dos usurios da biblioteca com endereo completo. Os usurios
podem ser classificados em trs grupos: Professores, Alunos e
Funcionrios. Para os Alunos necessrio conhecer o curso ao qual
pertencem. Dos Professores e funcionrios, necessrio conhecer o
Departamento ao qual esto sempre vinculados.
O cadastro das obras da biblioteca, que podem ser classificadas em: Livros
cientficos, peridicos cientficos, peridicos informativos, peridicos
diversos, entretenimento, etc.
A lngua em que se encontra o exemplar da obra.
A mdia onde se encontra o exemplar da obra.
Os autores da obra com o controle da nacionalidade do autor.
As editoras dos exemplares com o ano de edio de cada exemplar.
O histrico dos emprstimos.

Identifique as possveis classes e objetos com seus respectivos atributos e
mtodos.








Pessoa
Gerente Funcionrio
14














2.3. Notao grfica das classes e dos objetos:

A UML (Unified Modeling Language) o sucessor de um conjunto de mtodos de
anlise e projeto orientados a objeto (OOA&D). A UML est, atualmente, em
processo de padronizao pela OMG (Object Management Group).

A UML um modelo de linguagem, no um mtodo. Um mtodo pressupe um
modelo de linguagem e um processo. O modelo de linguagem a notao que o
mtodo usa para descrever o projeto. Os processos so os passos que devem ser
seguidos para se construir o projeto.

Na UML, a representao para uma classe no diagrama de classes tipicamente
expressa na forma grfica, como mostrado na Figura 9.












Figura 9 Representao de Classe em UML


Como se observa nessa figura, a especificao de uma classe composta por
trs regies: o nome da classe, o conjunto de atributos da classe e o conjunto de
mtodos da classe.

Outra notao grfica muito utilizada a que Coad e Yourdon adotaram conforme
ilustrado na figura 10. Como na UML, utilizamos um retngulo dividido em 3
sees, onde a primeira seo o nome que identifica a classe ou o objeto, a
NomeClasse

Visibilidade nomeAtributo : tipo = valor default
...
Visibilidade nomeAtributo : tipo = valor default


Visibilidade nomeMetodo(listaArgumentos) : tipoRetorno
...
Visibilidade nomeMetodo(listaArgumentos) : tipoRetorno
15
segunda seo composta pelos atributos da classe ou o objeto e a terceira e
ltima seo composta pelos mtodos que compem a classe ou o objeto
respectivo.

A diferena grfica da notao UML para a de Coad e Yourdon que a ltima
representa classe e objetos de forma diferente conforme a figura 10.







Figura 10 Representao de classe e objeto segundo Coad e Yordon

2.4. Definio de classes e objetos em Java:

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 conter (atributos, mtodos,
construtores/inicializadores e outras classes).

No Exemplo 1, temos um cdigo de um aplicativo mnimo geralmente exibe a
string Alo Mundo na tela. O cdigo Java abaixo mostra um exemplo de um
aplicativo mnimo Java.

Exemplo 1:

public class AloMundo
{
static public void main(String[ ] args)
{
System.out.println("Alo Mundo");
}
}

Nome Classe

Atributos

Mtodos
Nome Objeto

Atributos

Mtodos
16
A seguir dada uma breve descrio desses elementos de programa:

public - O mtodo main() pode ser acessado por qualquer classe.
static - Uma palavra-chave que informa ao compilador que main() no
requer a chamada de uma instncia dessa classe.
void - Indica que nada retornado por main(). Essa informao
importante pois Java realiza uma verificao de tipo cuidadosa, que inclui a
verificao dos mtodos chamados, observando se eles realmente retornam os
tipos com os quais foram declarados.
String args[] - A declarao de uma matriz do tipo String. Estes so os
argumentos digitados na linha de comando aps o nome da classe:

Exemplo 2:

public class MDC { // Definio de classe
private int X=0; // Declarao de atributos
private int Y=0;

public int Calcula (int X, int Y) // Declarao de mtodo
{
if ( Y == 0 )
return X;
else if ( X == 0 )
return Y;
else
return Calcula(Y,X%Y);
}

public static void main (String[] args)
{
MDC a1 = new MDC(); // Intanciao de objeto

int R1 = a1.Calcula(10,5); //Execuo do Mtodo da classe
System.out.println("MDC(10,5) = "+ R1+'\n');

System.exit(0);
}

}

2.5. Princpios Bsicos da orientao a objetos:

5.2.1. Abstrao:

Procurando a palavra abstrao em um dicionrio da lngua portuguesa,
encontramos, como definio, ato de separar mentalmente um ou mais
elementos de uma totalidade complexa (coisa, representao, fato), os quais s
mentalmente podem subsistir fora dessa totalidade.
17

Tambm conhecida como Ocultamento da informao, a abstrao o princpio
pelo qual cada componente deve manter oculta sob sua guarda uma deciso de
projeto nica. Para a utilizao desse componente, apenas o mnimo necessrio
para sua operao deve ser revelado (tornado pblico).

Possumos o recurso da abstrao como forma de entender problemas tidos
como complexos. Assim, diante de um problema complexo, procuramos dividi-lo
em problemas menores, e feito isso, resolvemos cada um deles at encontrar a
soluo do problema inteiro.

O termo abstrao, aplicado ao desenvolvimento de sistemas, significa a
grosso modo s deve ser representado aquilo que vai ser usado.

Pelo princpio da abstrao ns isolamos os objetos que queremos representar do
ambiente complexo em que se situam, e nesses objetos representamos s as
caractersticas que so relevantes para o problema em questo. Por exemplo:
toda pessoa tem um atributo para cor dos olhos, mas em um sistema de folha de
pagamento, essa informao no relevante, portanto, ela no ser includa na
relao de caractersticas de pessoas que queremos armazenar em nosso
sistema. Da mesma maneira, apesar de uma boa parte das pessoas ter animais
de estimao, completamente irrelevante para um sistema de folha de
pagamento implementar um objeto para armazenar animais de estimao, e
relacion-los com as pessoas.

O uso da abstrao permite tambm que determinadas partes do problema
ganhem maior ou menor peso, e dessa maneira, detalhes podem ser
desconsiderados em determinados momentos para que outros sejam ressaltados.

5.2.2. Encapsulamento:

Encapsulamento o princpio de projeto pelo qual cada componente de um
programa deve agregar toda a informao relevante para sua manipulao como
uma unidade (uma cpsula). Aliado ao conceito de ocultamento de informao,
um poderoso mecanismo da programao orientada a objetos. Com este
mecanismo podemos ocultar detalhes de uma estrutura complexa, que poderiam
interferir durante o processo de anlise.

O modo de utilizao dos atributos e mtodos (dados e operaes realizadas com
esses dados) diferente do modo como a programao tradicional utiliza. Na
orientao a objetos os dados e os processos que tratam esses dados esto
encapsulados numa nica entidade. A nica maneira de conhecer ou alterar os
atributos de um objeto atravs de seus mtodos.

O encapsulamento um dos grandes trunfos da programao orientada a objetos
em relao programao tradicional (estruturada). A vantagem que o
encapsulamento disponibiliza o objeto com toda a sua funcionalidade sem que
voc precise saber como ele funciona internamente, nem como armazena
internamente os dados que voc recupera. Podemos exemplificar da seguinte
18
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:

A palavra herana, conforme um dicionrio da lngua portuguesa, significa:

1. Aquilo que se herda;
2. Aquilo que se transmite por hereditariedade.

Um exemplo simples de explicar a herana a prpria gentica. Ou seja, um filho
herda caractersticas genticas dos pais, e por sua vez, repassa essas
caractersticas aos seus filhos.
Na programao Orientada a Objetos, Herana 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.

Sob o ponto de vista prtico da orientao a objetos, a herana constitui um
mecanismo muito inteligente de aproveitar cdigo. atravs da herana que os
objetos podem compartilhar mtodos e atributos. Assim, podemos criar uma nova
classe fazendo com que esta herde os mtodos e atributos de uma outra classe,
tornando-a uma classe filho da classe que a gerou. A grande vantagem neste
caso que reutilizaremos todo o cdigo j implementado na classe pai, restando
apenas implementar os mtodos e atributos que a diferenciem da classe pai.





19
- Mamar
- Possui plos



- Possui Mos e Ps
- Ser inteligente


- Andar ereto
- Filosofar


Figura 11 Exemplo de Herana

De acordo com o exemplo da figura acima, podemos dizer que a classe Primata
subclasse (descendente ou filha) da classe Mamfero e superclasse (ancestral)
da classe Ser Humano.

Herana significa que todos os atributos e mtodos
programados no ancestral j estaro
automaticamente presentes em seus descendentes
sem necessidade de reescrev-los.


A respeito dos mtodos relacionados no exemplo acima possui podemos dizer
que: os mtodos Andar ereto e Filosofar so pertencem exclusivamente a classe
Ser humano, Possui Mos e Ps e Ser inteligente pertencem a classe Primata
e so herdados pela classe Ser Humano, e os mtodos Mamar e Possui plos
pertencem a classe Mamfero e so herdados pelas classes Primata e Ser
Humano. O mesmo acontecer com os atributos que forem definidos para essas
classes.

Mais do que mera economia de cdigo, a herana significa maior integridade, pois
quando se altera um comportamento em uma classe, todos as classes
descendentes desta tambm estaro utilizando o mtodo atualizado sem
necessidade de reprogramao.

5.2.4. 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
Mamfero
Ser Humano
Primata
20
atributos como Salrio e Funo no pertencem ao contexto da classe Pessoa,
mas sim ao contexto da classe Funcionrio.













Figura 12 Herana Simples



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.



















Figura 13 Herana Simples com dois descendentes


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
Pessoa

Nome
RG
CPF
Endereo

Funcionrio

Nome
RG
CPF
Endereo

Pessoa

Nome
RG
CPF
Endereo

Funcionrio

Nome
RG
CPF
Endereo

Cliente

Limite Crdito
Preferncias


21
como funcionrio, deve tambm possuir possui atributos e mtodos que o
qualificam como cliente.

Para tanto, o que pode ser feito criar uma nova subclasse, chamada
Funcionrio-Cliente, que tem como superclasse as classes Funcionrio e Cliente.
Esta nova classe, Funcionrio-Cliente, herda todas as caractersticas da
superclasse Pessoa, Funcionrio e Cliente. O seu diferencial pode ser
exatamente o fato de possuir os atributos e mtodos da classe Funcionrio e da
classe Cliente juntas. Porm nada impede que tenha atributos prprios como, por
exemplo, um desconto especial para clientes de uma empresa que so tambm
funcionrios.




























Figura 14 Herana Mltipla
Funcionrio

Nome
RG
CPF
Endereo

Cliente

Limite Crdito
Preferncias


Pessoa

Nome
RG
CPF
Endereo

Funcionrio-Cliente

Desconto Especial
22
Exerccio 3:


























Segundo o diagrama marque verdadeiro (V) ou falso (F) para as afirmaes
abaixo.

( ) O digrama acima ilustra cinco classes e trs objetos.
( ) A classe Funcionrio apresenta trs descendentes e um ancestral.
( ) Podemos dizer que Jos um objeto instanciado da classe gerente.
( ) A classe Tcnico herda todos os atributos de Funcionrio, Pessoa e Cliente.
( ) A classe Funcionrio subclasse de Pessoa e superclasse de Gerente e
Tcnico.
( ) O objeto Pedro poderia herdar os mtodos de Pessoa caso existissem.
( ) Os atributos Locao eMatricula pertencem exclusivamente a classe
Funcionrio.
( ) Se for includo um novo atributo na classe Pessoa todas as outras classes
descendentes passaram a ter este atributo tambm.
( ) O tipo de herana existente entre Cliente e Pessoa herana simples, j
entre Funcionrio, Tcnico e Gerente do tipo herana mltipla.







Pessoa
Nome
RG
CPF
Endereo

Funcionario
Locao
Matricula



Cliente
Codigo




Gerente
NumFunc




Tecnico
Cd.Gerente




Jos Pedro Ana
23
5.2.5. Polimorfismo:

O Polimorfismo a capacidade de uma varivel se referir em tempo de execuo
a objetos de diversas classes. Podemos defini-lo tambm como sendo o nome
dado capacidade que objetos diferentes tm de responder a uma mesma
mensagem. Uma mesma mensagem pode apresentar formas de execuo
diferentes, prprias de cada objeto. Com esta caracterstica o usurio pode enviar
uma mensagem genrica e abandonar detalhes sobre a exata implementao
sobre o objeto receptor.


GRAVAR






Figura 15 Exemplo de Polimorfismo.


Pelo exemplo da figura 15, verificamos que o computador e a filmadora possuem
uma mesma funo que gravar, mas esta funo realizada de forma diferente.
O polimorfismo uma caracterstica importante da orientao a objetos que est
diretamente ligada hereditariedade de classes.


O polimorfismo ocorre quando um mtodo
que j foi definido no ancestral redefinido
no descendente com um comportamento
diferente.













24
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) (3) (4) (5)
(6) (7) (8) (9)
(10) (11) (12) (13)
(14) (15) (16) (17)
(18) (19) (20) (21)
(22) (23) (24) (25)












25
2.6. Estruturas:

As estruturas ajudam os analistas a arranjar os objetos de forma que se possa
visualizar melhor o domnio e a complexidade do problema em estudo. Na anlise
orientada a objetos, existem dois tipos bsicos de estrutura: Generalizao
Especializao e TodoParte.


6.2.1. Estrutura de Generalizao Especializao:

Para mostrar um exemplo da aplicao dessa estrutura, utilizaremos o mesmo
exemplo apresentado no item Herana simples, aquele que trata da classe
Pessoa, Funcionrio e Cliente. Neste caso, temos a classe Pessoa como a mais
alta classe generalizada, sendo ento a superclasse da estrutura. Abaixo dela,
encontramos as suas duas subclasses, Funcionrio e Cliente, que nada mais so
que especializaes da classe Pessoa. Ou, simplesmente, podemos ver a classe
Pessoa como uma generalizao da classe Funcionrio e da classe Cliente.

Esta estrutura formada por uma classe genrica no topo da estrutura e suas
classes descendentes especializadas dispostas abaixo. O uso do semicrculo,
conforme mostra a ilustrao da Figura 16, identifica a classe genrica e as
especializaes. A linha saindo do ponto central do semicrculo aponta para a
generalizao.


















Figura 16 Exemplo de uma estrutura de Generalizao-Especializao


Esta estrutura , basicamente, uma estrutura hierrquica onde temos
superclasses e suas respectivas subclasses. A estrutura Generalizao
Especializao , de fato, o processo de herana discutido na seo anterior.
Assim, desejando-se realizar uma herana deve-se utilizar esta estrutura.

Pessoa

Nome
RG
CPF
Endereo

Funcionrio

Nome
RG
CPF
Endereo

Cliente

Limite Crdito
Preferncias


26
6.2.2. Estrutura Todo - Parte:

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.





















Figura 17 Estrutura Todo-Parte

A estrutura Todo Parte tambm possui outro componente, chamado de
cardinalidade. Essa palavra um termo sofisticado que significa quanto. Por
exemplo, um carro possui 4 rodas (5 para o caso do estepe), que sob o ponto de
Carro
Roda Motor
27
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).




















Figura 18 Cardinalidade


3. Modelagem de um Sistema Orientado a objetos:

A modelagem baseada em objetos um meio para se descrever os sistemas do
mundo real. Um objeto representa uma abstrao de uma entidade do mundo
real, combinando, em um mesmo elemento informao e comportamento. Os
paradigmas anteriores do desenvolvimento de software ligavam apenas
fracamente a informao e o comportamento. A orientao a objetos conduz a
uma unio mais bem definida destes dois conceitos.

perfeitamente possvel modelar uma soluo pensando totalmente orientado a
objetos desde a fase de anlise, passando pelo projeto do software e chegando
implementao em uma linguagem de programao orientada a objetos.

Uma grande vantagem de se pensar totalmente orientado a objeto o fato de que
um mesmo objeto, concebido em fase de anlise, passa com as mesmas
caractersticas desde o usurio at o programador que ser responsvel pela
codificao final.
Carro
Roda Motor
0,1





1,1
0,1





4,5
28

Apesar das mltiplas tcnicas de modelagem de sistemas baseadas em objetos e
filosofias diferentes difundidas atualmente, uma parte considervel dos autores
(talvez todos) converge quando se trata de um ponto em particular, o processo de
anlise inicia com a identificao das classes e dos objetos. A idia que, uma
vez definidas as classes e os objetos, o analista, expandindo e ajustando essas
classes e objetos tambm acabe melhorando o modelo. Esse processo natural
e esperado.

Os passos bsicos a serem observados para o desenvolvimento de um modelo
orientado a objetos, normalmente compreendidos, so os seguintes:

1. Identificar as Classes e os Objetos;
2. Identificar as Estruturas e os Relacionamentos entre os Objetos.
3. Identificar os Atributos e os Mtodos Importantes;

Ao contrrio de outras tcnicas de modelagem de sistemas, o foco principal da
anlise orientada a objetos no est centrado na estrutura ou nos dados do
sistema, mas sim na composio das classes e objetos do sistema. muito
importante que todas as classes e objetos estejam bem definidas antes de
comear qualquer linha de cdigo, pois as classes e os objetos esto amarrados
de tal modo que mesmo uma alterao pequena pode acarretar uma mudana
que tende a se propagar por todo o sistema modelado.


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:

Um curso pode ser formado por uma ou muitas disciplinas diferentes;
Uma disciplina poder fazer parte de nenhum ou at muitos cursos;
Cada disciplina dever ser ministrada por apenas um professor, podendo o
professor ministrar uma ou muitas disciplinas diferentes;
Um curso no poder ter mais de 40 alunos, nem menos de 20 alunos
matriculados;
Para cada turma de alunos dever haver uma sala de aula;
Um aluno poder se matricular em nenhum ou at muitos cursos;







1. Identificar as Classes e os Objetos;



29









2. Identificar as Estruturas e os Relacionamentos entre os Objetos.




















3. Identificar os Atributos e os Mtodos Importantes;















30
4. Programao Orientada a Objetos:

A programao orientada a objetos consiste em utilizar estruturas de dados que
simulem o comportamento dos objetos, facilitando a programao pelo uso de
uma metodologia unificada para a anlise e a programao. Os mesmos objetos
que o analista identifica no seu diagrama podem ser implementados exatamente
como foram projetados, sem necessidade de fazer uma traduo dos diagramas
da anlise para estruturas de dados e de programao como acontece na anlise
estruturada.

possvel, entretanto, fazer uma anlise orientada a objetos e implementar em
uma linguagem tradicional, bem como possvel tambm fazer implementaes
em linguagens orientadas a objetos de sistemas analisados com outras
metodologias.


Programao Orientada a Objetos consiste em
utilizar objetos computacionais para implementar
as funcionalidades de um sistema.


As tcnicas de programao orientada a objetos recomendam que a estrutura de
um objeto e a implementao de seus mtodos devem ser to privativos como
possvel. Normalmente, os atributos de um objeto no devem ser visveis
externamente. Da mesma forma, de um mtodo deve ser suficiente conhecer
apenas sua especificao, sem necessidade de saber detalhes de como a
funcionalidade que ele executa implementada.






















31
5. Vantagens e Benefcios da programao OO:

A Orientao a Objetos consiste em conceber um sistema computacional como
um todo orgnico formado por objetos que se relacionam entre si. Esse enfoque
pode ser aplicado tanto anlise de sistemas quanto programao, e essa
uma das principais vantagens da orientao a objetos: a mesma metodologia
serve tanto para a definio lgica do sistema quanto para a sua implementao.

Unificao entre dados e processos:

Uma antiga questo da anlise de sistemas a consistncia entre a definio dos
dados e dos processos. Algumas metodologias recomendam definir a estrutura de
dados primeiro, e em seguida definir os processos que os utilizam. Outras
recomendam o oposto: procurar definir os procedimentos que o sistema
automatiza e posteriormente identificar os dados que esses processos
necessitam.

Entretanto, na prtica dificilmente essas duas vises so coerentes entre si.
Partindo dos dados, chega-se a processos diferentes do que aqueles identificados
pelo enfoque nos processos, e vice-versa. Em projetos maiores, quando h
pessoas diferentes identificado dados e processos, essas diferenas levam a
problemas que vo complicar a implementao, pois os procedimentos podem
no estar completamente compatveis com a base de dados.

Na orientao a objetos, esse problema inexiste: dados e processos so apenas
componentes, e o enfoque est em identificar quais os objetos que interagem
entre si no sistema. Os dados so identificados procurando os atributos que
definem os objetos, e os procedimentos pelas operaes que estes objetos
realizam. A interao entre os objetos definida pelas estruturas e
relacionamentos que so identificados. O resultado que em um modelo
orientado a objetos, existe total coerncia entre os dados e os processos, mesmo
quando h muitas pessoas trabalhando no mesmo sistema.

Consistncia entre anlise e desenvolvimento:

A anlise de sistemas convencional procura mapear separadamente as estruturas
de dados e os processos que manipulam esses dados. Normalmente isso feito
utilizando-se como ferramentas o Modelo de Entidades e Relacionamento (MER)
e o Diagrama de Fluxo de Dados (DFD). Essa modelagem do sistema apenas
conceitual, e no existe correlao direta entre as entidades conceituais
levantadas na anlise e as entidades fsicas a serem implementadas, sejam
estruturas de dados ou programas.

Por exemplo, uma entidade em um diagrama de fluxo de dados que representa
um processo pode tanto ser implementado em vrios programas como vrias
entidades serem implementadas em um nico programa. Tanto que quase
impossvel ler um programa qualquer e identificar qual dos processos do DFD que
ele est implementando.

32
Utilizando-se orientao a objetos tanto na anlise quanto no desenvolvimento,
esse problema no existe. As classes e objetos definidos na anlise so
exatamente os mesmos que sero implementados. Dependendo do ambiente e
da linguagem escolhidos iro fazer com que seja necessrio acrescentar objetos
a mais na implementao, normalmente para o controle da interface, reduzindo o
nmero de problemas oriundos de erros de traduo entre anlise e
implementao.

Reutilizao e aumento da produtividade:

A produtividade do desenvolvimento de sistemas orientados a objetos visvel e
bastante perceptvel principalmente quando fazemos uso da reutilizao. A
reutilizao, na prtica da orientao a objetos, muito mais do que
simplesmente copiar funes, ou mesmo utilizar bibliotecas de funes como se
faz ainda em programas escritos usando o paradigma da programao
estruturada. A reutilizao de objetos , de fato, a utilizao de objetos j
utilizados em sistemas anteriores em novos sistemas sem modificar suas
estruturas internas, ou mesmo sem a necessidade de fazer modificaes no
sistema para acomodar esses novos cdigos.

A reutilizao de objetos j encapsulados pode somar fora quando vamos
projetar um novo sistema de informaes. Podemos, por exemplo, durante um
novo projeto, depois de identificar quais sero os objetos necessrios para
operacionalizar o novo sistema, buscar a reutilizao de objetos j implementados
em sistemas anteriores. Assim, antes mesmo de partir para a implementao dos
novos objetos, podemos buscar objetos j implementados em outros sistemas e
utiliza-los sem alterao de estrutura. Se j existirem esses objetos, estes podem
ser includos no novo sistema sem a necessidade e o custo de criao.

Outra opo tambm pode ser a transformao de objetos semelhantes, ou seja,
objetos j implementados cujas caractersticas so bastante semelhantes aos
objetos necessrios, podem, com pequenas modificaes, serem teis ao novo
sistema. Outra forma de reutilizao pode surgir utilizando a propriedade da
herana entre objetos, ou seja, caso surja necessidade de um novo objeto cuja
idia esteja baseada em um objeto j existente, podemos criar novos objetos
herdando as caractersticas dos objetos j desenvolvidos. Essa propriedade
diminui sensivelmente o custo de desenvolvimento de novos sistemas.

Multidesenvolvimento:

O multidesenvolvimento de um sistema, quando utilizada a tcnica de
desenvolvimento estruturado de sistemas, , certamente, muito delicado. A
tcnica em si parece no ajudar muito, j que existe, reconhecidamente, um
verdadeiro abismo entre as fases de anlise, projeto e programao. Para esse
tipo de empreendimento, necessrio no somente uma extensa e detalhada
documentao sobre o sistema, mas tambm um grande entrosamento entre as
diversas equipes que compem o grupo de desenvolvimento.

Dentro do contexto da orientao a objetos, o multidesenvolvimento tambm
uma realidade facilitada, devido ao fato de que o funcionamento interno dos
33
objetos irrelevante para sua utilizao. Isso significa que qualquer
desenvolvedor pode utilizar os objetos desenvolvidos por qualquer outro,
bastando para isso conhecer o conjunto de mtodos necessrios para utiliz-los.

Desde que a interface no mude, o funcionamento interno pode mudar sem afetar
outras partes do sistema. certo que um procedimento parecido dever ocorrer
se tratando de um sistema estruturado, porm, lembramos que temos facilidades
de transposio de cdigo que o mtodo estruturado no possui, como por
exemplo, a facilidade de manusear objetos implementados. Facilidade essa
existente graas ao fato de os objetos estarem encapsulados. Essa facilidade
tambm verificada durante toda a implementao, pois a ateno est voltada
ao objeto e no ao sistema. Basta que os objetos sejam construdos conforme o
projeto para que funcionem em harmonia com os outros objetos.

Facilidades em manuteno:

Quando falamos em manuteno de sistemas orientados a objetos, falamos em
manuteno de objetos. Novamente a ateno centrada no objeto, e no em um
sistema com suas interligaes. Assim, todas as modificaes necessrias para
fazer funcionar as novas tarefas do sistema em manuteno ficam restritas s
modificaes no comportamento dos objetos envolvidos no contexto da nova
necessidade.

Na programao convencional a alterao de uma funcionalidade que utilizada
em vrios lugares do sistema pode se tornar um verdadeiro pesadelo. O
programador que efetuar a manuteno pode no conseguir localizar todos os
trechos de cdigo que acessam a funcionalidade, e algumas vezes ao realizar a
alterao, so includos erros em alguns dos locais alterados. E devemos contar
tambm a quantidade de horas de trabalho que sero gastas nesse
procedimento.

Utilizando a orientao a objetos, as alteraes so efetuadas em um nico
ponto, dentro do cdigo do objeto que implementa o comportamento a ser
alterado. No existem dvidas quanto ao local da alterao: s localizar o
programa onde o objeto em questo est sendo implementado.

O procedimento de manuteno restrito ao objeto reduz custo, tempo e assegura
a certeza de uma manuteno eficaz. Isso possvel por que as variveis
envolvidas estavam restritas aos objetos modificados (atributos e mtodos), e
mais em nenhuma outra parte do sistema. Os sistemas que dependem dos
objetos alterados no necessitaro de qualquer alterao. Essa flexibilidade
tambm permite que novos objetos sejam acrescidos ou excludos com iguais
facilidades, e da mesma forma no teremos rastros de cdigo sem vida e sem
funo dentro do sistema.






34
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.
(___) Propiciam a interao com os objetos.
(___) Sua utilizao nos permite omitir da declarao de um objeto ou de uma classe inferior
tudo aquilo que j foi definido na(s) classe(s) superiores.
(___) quando a classe produz um objeto, como se ela fosse uma espcie de modelo ou
gabarito para a criao de objetos.
(___) So classes das quais os objetos nunca so instanciados diretamente, mas sempre por
uma classe descendente dela.
(___) Entidade do mundo real que merece representao para o sistema em analise.
(___) Significa que todos os atributos e mtodos programados no ancestral j estaro
automaticamente presentes em seus descendentes sem necessidade de reescrev-los.
(___) Quando uma classe herda caractersticas de apenas uma superclasse.
(___) Quando disparados, podem provocar modificaes nos atributos dos objetos.
(___) Representa um conjunto de objetos que possuem caractersticas e comportamentos
comuns.
(___) Ocorre quando um mtodo que j foi definido no ancestral redefinido no descendente
com um comportamento diferente.
(___) Esta estrutura , basicamente, uma estrutura hierrquica onde temos superclasses e suas
respectivas subclasses.
(___) a instncia de uma classe.
(___) Usado para representar um determinado elemento do mundo real.
(___) So as caractersticas que descrevem um objeto.
(___) So as aes que um objeto pode executar.
(___) Este tipo de estrutura bastante caracterstico, uma vez que trata de agregao ou
decomposio de objetos.
(___) Seus valores definem o estado do objeto.
(___) Consiste em considerar os sistemas computacionais como uma coleo de objetos que
interagem de maneira organizada.
35
7. Bibli ografia:

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.