Você está na página 1de 51

Anlise Orientada a Objetos

Objetos e Classes

Anlise Orientada a Objetos


Uma nova maneira de pensar os problemas utilizando conceitos do Mundo Real. O componente fundamental o OBJETO que combina estrutura e comportamento em uma nica entidade [Raumbaugh] Um sistema orientado a objetos uma coleo de objetos que interagem entre si

[Bertrand Meyer]
2

As Bases da Orientao a Objetos


Correspondncia com o mundo real Modularidade dos componentes Objetos com finalidade prpria Permite a combinao destes Objetos Baixa dependncia externa Alta coeso interna Fcil ampliao do objeto Permite reuso dos objetos Encapsulamento
3

Conceitos Bsicos - Objeto


Objeto : um elemento do mundo real [Jos Davi Furlan]
Possui um comportamento e atributos. O comportamento a forma com que reage a estmulos e os atributos so suas caractersticas, que podem mudar comportamento. de acordo com seu
4

Conceitos Bsicos - Objeto


Exemplos:

Concretos: pessoa, lpis, carro, etc. Intangveis: hora, projeto, organizao, etc. Personagem: mdico, professor, etc. Relacional: casamento, parceiro, propriedade. Evento: venda, defeito do sistema. Interface Grfica: janela, cone, boto.
5

Conceitos Bsicos - Objeto


Exemplos:
Um meio de Transporte Um Documento

Uma pessoa

Uma Regio
6

Componentes de um Objeto
Identidade: o nome do objeto. Cada objeto nico.

Exemplo:

Aluno Joo, Jos, Maria...

Componentes de um Objeto
Atributos (Caractersticas): um conjunto de propriedades de um Objeto que podem mudar com o tempo.
Exemplos: Idade de uma Pessoa Saldo de um Cliente Quantidade de Alunos de uma Turma Se uma Pessoa est Falando (s/n)

Componentes de um Objeto
Comportamento (Operaes ou Mtodos):
Lgica contida em um objeto para designar-lhe um comportamento. como o objeto responde a outro objeto. Tambm chamado de Mtodo, Comportamento, Procedimento, Funo, etc.
Exemplo: adicionarAluno calcularSaldoDevedor

Conceitos Bsicos - Objeto Exemplos:


Ordem de Produo Matria-Prima Processo Produtivo Produto Final

Mensagem de Solicitao

Atributos

Operaes

Mensagem de Resposta

10

Conceitos Bsicos - Classe


uma coleo de objetos a descrio formal de um conjunto de objetos Objetos que obedecem mesma especificao

11

Conceitos Bsicos - Classe


Exemplos:

Classe Veculo Objeto da Classe Mercedes do Bruno Classe Pessoa Objeto da Classe Joo
Obs.: Um objeto tambm chamado de instncia da classe.
12

Classe
Definio
um conjunto de Objetos que possuem estados semelhantes (mesma lista de atributos), comportamento comum (mesmas operaes) e relacionamentos comuns com outros objetos. A estrutura de um software formada pelas classes do sistema. Analogamente ao esqueleto dos animais, as classes formam uma armao que d a sustentao e a forma ao sistema Jos Eduardo Deboni
13

Exerccio

Antnio Carlos

Carro Computador

Ave

TV

Cachorro
14

Quantas classes podemos definir?

Encapsulamento
Atributos e Operaes de um Objeto devem estar armazenados no prprio Objeto. Dizemos que eles esto encapsulados no Objeto. A funo do encapsulamento proteger os dados do acesso descontrolado. O acesso realizado por intermdio de mensagens (execuo das operaes) trocadas entre os objetos. As operaes funcionam como servios que o objeto fornece ao mundo exterior. Exemplo:
Atributo data do nascimento, Operao clculo da idade (data do nascimento) .
15
Objeto
Dados

Operao Operao Operao

Lampada tens ao preco acender() comprar()

Encapsulamento
Exemplo: TELEVISO DVD Cada aparelho com suas funes A integrao entre eles ocorre pela ligao da sada de um objeto entrada do outro. Com isto o DVD pode usar a TELEVISO para reproduzir imagens.

16

Estado
Definio: Situao de um objeto em um dado instante do tempo.
Exemplo(s): 1) Objeto: Nota Fiscal Estado: Emitindo Nota Fiscal 2) Objeto: Pizza Estado: Entregando Pizza

17

Encapsulamento
Definio: Uma solicitao entre objetos para invocar certa operao.

Ex: Informar idade da pessoa Fulano de tal.

18

Mensagens
Objeto 1 Objeto 2
Dados
Operao Operao Operao

A comunicao entre os objetos ocorre pela troca de mensagens Um objeto solicita informaes de outro objeto para realizar suas funes Uma mensagem a execuo de uma operao Uma mensagem pode ou no enviar parmetros para outro objeto, bem como receber ou no uma resposta do mesmo.

Dados
Operao Operao Operao

Objeto 3
Dados
Operao Operao Operao

Mensagem

19

Herana
a capacidade de um novo objeto (filho) tomar (herdar) caractersticas e comportamentos de um objeto(pai) j existente.

20

Herana
uma caracterstica que as classes de objetos podem possuir de modo que uma classe pode ser gerada a partir de outra classe herdando dela suas propriedades (atributos, operaes) A herana permite que as propriedades da classe me possam ser expandidas para a classe filha incluindo novas caractersticas O uso de herana permite criar classes mais genricas A herana aumenta a capacidade de reutilizao das classes
21

Herana
Exemplo 1:

Classe pai Automvel Classe filha Porshe

Porshe herda caractersticas e comportamentos da classe automvel.


Atributos do Automvel: Potncia, capacidade de passageiros. Atributos do Porshe: Turbo.
22

Herana
Exemplo 2:

Classe pai Pessoa Classe filha Cliente do Banco

Cliente herda caractersticas e comportamentos da classe Pessoa.


23

Subclasse
Definio: Classe que herda as caractersticas da Classe pai. o mesmo que Classe filha.
Ex: Classe: rvore Subclasses: Ip, Eucalipto, etc.

24

Herana
Exemplo:
Equipamentos

Domsticos

Eltricos

Mecnicos

Rdio Relgio

Eletrodomsticos

Eletromecnicos

Hidrulicos

TV

DVD

Motor Eltrico

Torneira

25

Padres para Nomes de Classes


Classes
Nomes no Singular Sem hfen, tracinhos ou espaos Sem Preposies (de, para, do, com, etc) No usar palavras desgastadas (Tabela, Cadastro, etc) Para vrios nomes usar 1 letra Maiscula e demais minsculas Exemplos: Cliente, ProdutoEstoque, PessoaJuridica

26

Smbolos para uma classe


NomeClasse atributos operaes()
NomeClasse

NomeClasse atributos

NomeClasse operaes()

27

Padres para Nomes de Atributos


Atributos
Sem hfen, tracinhos ou espaos Sem Preposies (de, para, do, com, etc) 1 letra minscula (para o caso de vrios nomes, a 1 letra dos demais nomes devem ser maisculas).

Exemplos:

idade nomeCliente sldDevedor qtdAlunosMatriculados


28

Padres para Nomes de Operadores


Operadores (Mtodos)
Sem hfen, tracinhos ou espaos Sem Preposies (de, para, do, com, etc) Verbos no infinitivo (...ar, ...er, ...ir, etc) Sempre colocar Verbo + Sujeito 1 letra minscula (para o caso de vrios nomes, a 1 letra dos demais nomes devem ser maisculas).
Exemplos: calcularSaldoDevedor imprimirBoleto
Cliente nome dataNascimento imprimirCliente() calcularIdade()

29

Exerccios
Identifique as Classes e coloque atributos para os seguintes problemas:
1) Sistema de controle de uma biblioteca
um sistema de suporte para uma biblioteca A biblioteca empresta livros e revistas para clientes, que so registrados no sistema, no qual tambm esto registrados os livros e as revistas A biblioteca controla a compra de novos ttulos. De ttulos populares compra-se vrias cpias. Livros antigos e revistas so removidos quando esto ultrapassados ou deteriorados Bibliotecrio um funcionrio da biblioteca que interage com os clientes e seu trabalho auxiliado pelo sistema

30

Exerccios
(continuao)
Um cliente pode reservar um livro ou revista que no est disponvel no momento na biblioteca, de forma que quando ele for devolvido ou comprado pela biblioteca, o cliente avisado. A reserva cancelada quando o cliente retira o livro ou revista, ou atravs de um processo exclusivo de cancelamento A biblioteca pode facilmente criar, atualizar, e apagar informaes sobre seus ttulos, clientes, emprstimos, e reservas no sistema O sistema pode rodar em todos os ambientes populares (UNIX, Linux, windows, etc) e tem uma interface grfica (GUI) moderna O sistema deve ser facilmente estendido com novas funcionalidades O sistema deve lidar com a mensagem que enviada ao cliente quando um ttulo reservado torna-se disponvel, e precisa checar se um determinado ttulo est ultrapassado ou deteriorado.

31

Exerccios
2) Sistema de controle de uma mquina que vende Coca-Cola
O sistema deve estar preparado para receber e conferir o dinheiro colocado pelo Cliente, inclusive para dar o troco. Deve controlar a recarga de refrigerantes pelo Tcnico, bem como o recolhimento do dinheiro da mquina.

32

Exerccios
3) Sistema Bancrio
Um cliente poder abrir uma conta, depositar, fazer saques (manual e automtico), consultar saldo, alterar sua senha e aplicar em fundos (em terminais ou Internet). O gerente far a abertura da conta e a consulta ao saldo do cliente. O caixa far o saque manual, a alterao da senha e a consulta ao saldo.

33

Diagrama de Classes
O Diagrama de classes mostra as classes de um sistema e seus relacionamentos. Representao Grfica

O smbolo grfico utilizado para representar uma classe uma caixa, possivelmente dividida em compartimentos. Classe
atributo1 atributo2 operacao1() operacao2()

34

Diagrama de Classes
Esses compartimentos so utilizados em diferentes situaes, dependendo se a classe pertence a um modelo de anlise, design ou implementao. O primeiro compartimento chamado de compartimento do nome, contendo o nome da classe. Os compartimentos seguintes so chamados de compartimentos de listas, podendo acomodar listas de atributos ou operaes.
35

Diagrama de Classes
Compartimento de Atributos
Utilizado para mostrar os atributos de uma classe. A sintaxe padro para a descrio dos atributos nesse compartimento :

nomeAtributo: tipoAtributo

36

Diagrama de Classes
Compartimento de Operadores (Mtodos)
Mostra as operaes definidas para uma classe e/ou os mtodos supridos por uma classe. Sua sintaxe padro :

nomeOperacao (lista de parmetros): tipoParametroRetorno


Cada elemento da lista de parmetros tem a seguinte sintaxe:

TipoParametro nomeParametro

37

Diagrama de Classes
Compartimento de Operadores (Mtodos)
Exemplo:
Classe atributo1 : Double atributo2 : String operacao1(parametro1 : String, parametro2 : Integer) : String operacao2(parametro1 : Date) : Integer

38

Diagrama de Classes Relacionamentos


Relacionamento entre Classes
Classes e objetos podem estar conectados por algum tipo de relacionamento. Podem ser: Associaes Agregaes Composies Generalizaes (Herana)
39

Diagrama de Classes Relacionamentos


Associaes
Associaes simples representam que existe alguma conexo entre dois elementos de uma classe, de tal forma que um deve manter alguma referncia ao outro. Associaes simples so representadas na forma de uma linha cheia conectando as duas classes. As extremidades multiplicidade.0 da associao podem possuir uma

40

Diagrama de Classes Relacionamentos


Associaes
Exemplo(s):
Paciente 1..*
Seguro 0..* Cliente

PlanoSaude

41

Diagrama de Classes Relacionamentos


Agregao
Agregaes so um tipo especial de associao onde o elemento associado corresponde a uma parte do elemento principal.

Exemplo(s):
Pedido ItemPedido

Empresa

Departamento

42

Diagrama de Classes Relacionamentos


Composio
Composies so um tipo especial de agregao onde a parte indicada deve necessariamente existir. A diferena bsica entre uma agregao e uma composio que na agregao, o nmero de partes associadas classe principal varivel e pouco importa. No caso de uma composio, o nmero de objetos associados definido, de tal forma que no faz sentido pensarmos o objeto da classe principal sem os objetos que o compem. O todo existe enquanto as partes tambm existem. Quando o objeto da classe principal for destrudo, os objetos que o 43 compem necessariamente tambm o sero.

Diagrama de Classes Relacionamentos


Composio
Exemplo(s):
Cho Quarto Parede

Janela

44

Diagrama de Classes Relacionamentos


Classe de Associao
Uma classe de associao utilizada quando uma associao necessita de atributos e/ou operaes. Uma classe de associao est ligada associao entre duas classes. Exemplo(s):
OrdemCompra Produto

Paciente

Doena

ProdutoOrdem

DoenaPaciente
45

Diagrama de Classes Generalizao ou Herana


Considere um programa para gerenciar clientes, empregados e fornecedores de uma empresa. Para cada tipo de objetos criamos uma classe com atributos e mtodos.
Exemplo Classes Pessoa e Empregado:
Pessoa
nome sexo devolveSexo() devolveNome() imprime() nome sexo salario devolveSexo() devolveNome() devolveSalario() atualizaSalario(sal) imprime()

Empregado

46

Diagrama de Classes
Comparando as classes, observamos que:

Generalizao ou Herana
Ambas possuem os atributos nome e sexo. Ambas oferecem os mesmos mtodos para buscar o nome e o sexo (devolveNome(),devolveSexo()). A classe Empregado adiciona um novo atributo para armazenar o salrio, e os mtodos especficos de um empregado. Portanto podemos dizer que um empregado uma pessoa com algumas coisas a mais. Seria interessante se no precisssemos repetir na classe Empregado o cdigo comum classe Pessoa. Isto possvel se definirmos que a classe Empregado herda as caractersticas da classe Pessoa.
47

Diagrama de Classes
Representao Grfica
Pessoa

Generalizao ou Herana

Empregado

48

Diagrama de Classes
Exerccios

Generalizao ou Herana
1. Organize hierarquicamente em um diagrama as seguintes classes: MembroDaUniversidade, Professor, Coordenador, Empregado, Ex-aluno, CorpoDiscente, AlunoDeGraduacao, AlunoDePosGraduacao, Funcionario, CorpoDocente. 2. Organize hierarquicamente em um diagrama as seguintes classes: VeiculoTerrestre, VeiculoAqutico, VeiculoAutoMotor, Carro, Moto, Barco, NavioCargueiro, Caminho, VeiculoAnfibio, Submarino, VeiculoAereo, Aviao, HidroAviao.

49

Diagrama de Classes Exerccios


Fazer o Diagrama de Classes dos exerccios:
Biblioteca Mquina Coca-Cola Sistema Bancrio

50

Diagrama de Classes
Exemplo: Estudo de Caso 1 Sistema de Emprstimos Exerccios: Estudo de Caso 2 Revenda de Celulares

51

Você também pode gostar