Vous êtes sur la page 1sur 23

Captulo 11

Conceitos de Orientao
a Objetos

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Objetivos do Captulo
 Introduzir os conceitos fundamentais da Programao
Orientada a Objetos.
 Apresentar o significado dos objetos e das classes no
contexto do processo de desenvolvimento de sistemas
computadorizados.
 Indicar diferentes operaes de abstrao que precisam ser
realizadas pelo desenvolvedor durante a construo de um
projeto de software.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

PE vs. POO
 Programao Estruturada:





Centrada na identificao de procedimentos.


Dados representados como variveis globais.
Pequenos procedimentos para realizao de tarefas simples.
Programa: agrupamento de procedimentos.

 Programao Orientada a Objetos:


 Centrada da identificao de objetos.
 Dados e operaes unidos.
 Programa: conjunto de objetos.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Objeto
 Entidade do mundo real.
 Concreta.
 Abstrata.

 Composio:
 Caractersticas.
 Aes.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Classe
 Conceito:
 Categoria/conjunto de objetos.
 Caractersticas/aes em comum.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Operaes de Abstrao

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Classificao e Instanciao

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Generalizao e Especializao

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Agregao e Decomposio

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 1
 Suponha que ser desenvolvido um ERP (Enterprise Resource
Planning) para universidades. Este sistema dever permitir o
registro
das
operaes
realizadas
em
todos
os
departamentos destas instituies, tais como: reitoria,
diretoria, departamentos, setores, coordenaes, secretarias
acadmicas, tesourarias, bibliotecas, laboratrios, etc. Alm
disso, este sistema dever permitir a completa integrao de
todos os dados.
 Uma das tarefas que deve ser realizada durante o
desenvolvimento deste sistema o levantamento de todas as
informaes que ele dever manter acerca dos acadmicos,
desde o seu ingresso na instituio at o seu desligamento.
Como resultado deste trabalho, dever ser projetada uma
classe que represente todos os atributos dos acadmicos
que tm alguma relevncia para este sistema. Alm disso,
tambm preciso identificar todas as aes que os
acadmicos realizam no ambiente universitrio que implicam
em algum registro neste sistema e representar estas aes
na forma de mtodos desta classe.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 1
 A Figura do slide seguinte contm uma representao
provisria para a classe Acadmico deste sistema. Ela
sugere alguns atributos e alguns mtodos para esta classe.
 Sua primeira tarefa ser analisar esta classe e eliminar os
atributos e os mtodos que voc julgar que no so
relevantes para o sistema em questo. Depois disso, voc
dever acrescentar outros atributos e mtodos que precisam
estar presentes nesta classe para que ela seja capaz de
representar todos os dados relevantes dos acadmicos para
este sistema e permitir o registro de todas as aes que eles
realizem no mbito de sua vida acadmica e que precisam
permanecer gravados.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 1

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 2
 Considerando a proposta de um ERP para universidades
apresentada no exerccio anterior, a Figura do slide seguinte
apresenta trs novas classes que foram projetadas para
comp-lo.
 Observe que esta apenas uma viso preliminar destas
classes. Ainda no foram especificados os seus mtodos e o
tipo de dado de cada atributo tambm no foi definido.
Somente os dois primeiros atributos da classe Professor j
tiveram seu tipo definido. O atributo cdigo da classe
Professor ser do tipo int porque ele uma identificao
nica para cada professor e o sistema deve ser capaz de
armazenar o cadastro de um nmero elevado de professores,
uma vez que deve manter at mesmo os cadastros de
professores j desligados para possibilitar consultas
histricas. Utilizando este tipo primitivo, ser possvel
cadastrar at 2.147.483.647 professores com um cdigo
nico para cada um deles. O nome ser do tipo String porque
o tipo adequado para a representao de dados textuais
em Java.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 2
 A sua tarefa escolher um tipo adequado para cada um dos
demais atributos das trs classes que foram apresentadas.
Voc deve escolher apenas tipos disponveis no Java. Se
desejar ampliar este exerccio, pode acrescentar outros
atributos a estas classes e indicar os seus tipos.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 3
 A Figura do slide seguinte apresenta a estrutura inicial de
trs classes que poderiam compor um sistema para
universidades: Pessoa, Acadmico e Funcionrio. A classe
Funcionrio representa os dados que este sistema dever
manter acerca dos funcionrios da instituio e as operaes
que precisar realizar sobre eles. A classe Acadmico
representa os dados de todos os acadmicos que devero ser
manipulados pelo sistema e as operaes que sero
realizados sobre eles. A classe Pessoa, por sua vez,
representa os dados que o sistema dever manter tanto de
funcionrios quanto de acadmicos e as operaes que
dever realizar com ambos.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 3

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 3
 Perceba que a classe Pessoa somente conter os atributos e
mtodos que sero comuns a acadmicos e funcionrios. O
cdigo e o nome so dois exemplos de atributos que
representam dados que estaro presentes tanto no cadastro
de um acadmico quanto no cadastro de um funcionrio. Os
mtodos abrirCadastro( ) e alterarCadastro( ) tambm so
exemplos de operaes que o sistema dever realizar tanto
para funcionrios quanto para acadmicos. O atributo
possuiDiplomaES, por outro lado, um dado que s dever
figurar no cadastro de um acadmico e indicar se ele j
possui algum diploma de ensino superior. O atributo salrio,
por sua vez, um dado que dever constar apenas no
cadastro dos funcionrios e no faria o menor sentido que ele
tambm fosse acrescentado ao cadastro dos acadmicos. Do
mesmo modo, observe que h exemplos de mtodos que
representam operaes que o sistema dever executar sobre
cada um dos dois grupos especficos de pessoas: os
acadmicos e os funcionrios.
Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 3
 Sua tarefa indicar outros atributos e mtodos que poderiam
ser includos em cada uma destas trs classes. O objetivo
que voc escolha a classe mais adequada para representar
um atributo ou um mtodo. Tudo o que for comum aos
acadmicos e aos funcionrios deve ser representado na
classe Pessoa. Por outro lado, tudo o que for especfico do
grupo dos acadmicos deve ser representado na classe
Acadmico e o que for especfico do grupo dos funcionrios
deve ser representado na classe Funcionrio.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 4
 A Figura do slide seguinte apresenta uma estrutura de
classes que representa um esboo inicial de um mdulo do
sistema ERP que fora proposto para universidades. Este
mdulo representa o conjunto de funcionalidades do sistema
a serem utilizadas pelas vrias bibliotecas da universidade,
dispostas em suas diferentes unidades.
 O objetivo principal deste mdulo permitir o cadastro de
todos os exemplares de livros disponveis nas bibliotecas e o
registro de todos os emprstimos que forem realizados por
acadmicos e por funcionrios da instituio.
 H um nico relacionamento de agregao nesta estrutura
de classes e ele mantido entre a classe Emprstimo e a
classe Exemplar. Este relacionamento indica que um
emprstimo sempre ser composto por pelo menos um
exemplar de um livro e poder conter um nmero indefinido
de exemplares. Alm disso, ele tambm indica que um
exemplar tanto pode no ter sido includo em nenhum
emprstimo como pode ser includo em um nmero indefinido
de emprstimos ao longo do tempo.
Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 4

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 4
 Tambm h relacionamentos mais simples entre as classes,
representados por uma linha contnua, e que chamado de
associao. A associao existente entre a classe Livro e a
classe Exemplar, por exemplo, indica que para cada livro
cadastrado no sistema dever haver pelo menos um
exemplar cadastrado e tambm que poder haver diversos
exemplares cadastrados. Por outro lado, esta associao
ainda indica que cada exemplar cadastrado deve ser
vinculado a um livro previamente cadastrado.
 A associao existente entre as classes Pessoa e
Emprstimo indica que cada emprstimo realizado por
alguma biblioteca da instituio dever ser gravado no
sistema com a indicao da pessoa que o realizou. Alm
disso, esta associao tambm indica que cada pessoa
cadastrada no sistema, seja funcionrio ou acadmico, pode
nunca ter realizado emprstimo algum e tambm poder
realizar um nmero infinito de emprstimos ao longo do
tempo.
Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Exerccio 4
 A sua tarefa completar este diagrama de classes com as
cardinalidades que no foram indicadas e acrescentar outros
atributos e mtodos s classes. Voc no precisa
acrescentar atributos e mtodos s classes Pessoa,
Acadmico e funcionrio, uma vez que j o deve ter feito no
exerccio anterior. Se desejar ampliar este exerccio, inclua
outras classes a este mdulo do sistema, defina seus
atributos e mtodos e indique as relaes que cada uma
delas mantm com as demais classes.

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra

Contato
Com o autor:
Rui Rossi dos Santos
E-mail: livros@ruirossi.pro.br
Web Site: http://www.ruirossi.pro.br

Com a editora:
Editora NovaTerra
Telefone: (21) 2218-5314
Web Site: http://www.editoranovaterra.com.br

Rui Rossi dos Santos

Programao de Computadores em Java

Editora NovaTerra