Vous êtes sur la page 1sur 55

Diagrama de Classes

Classe

Nome da classe

Classe

Lista de Atributos

Classe
Visibilidade

Lista de Atributos

Classe
Nome do atributo

Lista de Atributos

Classe
Tipo de dados

Lista de Atributos

Classe

Lista de Mtodos

Classe
Visibilidade

Lista de Mtodos

Classe
Nome do mtodo

Lista de Mtodos

Classe
Tipo de dados

Lista de Mtodos

<? class Pessoa { private $nome; private $idade; private $endereco; private $cidade; public function fazAniversario(){ return ++$this->idade; } } ?>

Relacionamentos
Associao Agregao Composio Herana Dependncia

Associao
A associao quando temos uma relao entre duas classes onde as classes so suficientemente independentes, ou seja, no se constituem de parte de uma classe maior nem um tipo mais especfico de uma outra classe.

Associao
Exemplos:
   

Um carro dirigido por um motorista Uma disciplina cursada por um aluno Um morador habita uma casa Uma novela produzida por um canal de televiso

A navegao bi-direcional, porm se pode limitar a uma direo.

Exemplo
Motorista.class.php

Carro.class.php

instancia.class.php

Agregao
Agregao um tipo especial de Associao onde se tenta demonstrar que as informaes de um objeto precisam ser complementadas pelas informaes contidas em um ou mais objetos de outra Classe.

Agregao
Alguns exemplos disso so:
  

Um Pedido possui Itens Pedidos; Um Carro possui quatro Rodas; Um Livro possui Pginas;

Note que neste tipo de relacionamento, um depende do outro para ter sentido. Por exemplo, como uma bicicleta funcionaria sem duas rodas? Ou, existe um livro sem pginas?

Roda.class.php

Carro.class.php

instancia.class.php

Existe uma relao de agregao entre Carro e Roda porque uma roda pode ser trocada de carro.

Composio
A Composio um tipo especial de Agregao onde se tem um vnculo mais forte entre os objetos.

Composio
Exemplo:


um chassi s pode ser usado em um carro (um carro contm um chassi), j uma roda pode ser removida de um carro e ser colocada em outro (agregao)

Roda.class.php

Carro.class.php

instancia.class.php

Existe uma relao de Composio entre Carro e Chassi, pois um Chassi no pode ser trocado de carro.

Observaes
Note que a implementao dos trs tipos de relacionamento igual O que difere o significado de cada relacionamento Todo relacionamento gera uma varivel na classe que ir utilizar

Dependncia
Este relacionamento indica que h uma relao entre as classes, porm no deve gerar um objeto. Indicado para:


Quando criamos uma instncia de classe dentro de um mtodo

ArCondicionado.class.php

Carro.class.php

instancia.class.php

Herana
A herana uma especializao de uma classe superior, onde se destaca a relao de " um tipo de".

Herana
Exemplos:
  

Carro esporte e carro conversvel so tipos de carro Acadmico de graduao um tipo de acadmico Casa e apartamento um tipo de moradia

Herana
Todos os atributos e mtodos no privados da classe pai sero herdados pelas classes filhas. Nos mtodos, a herana pode ser direta ou atravs da sobrescrita
Quando um mtodo tem uma implementao na classe pai e outra implementao na classe filha

class Moradia { private $rua; private $numero; private $proprietario; private function alteraProprietario($p){ $this->proprietario = $p; } }

class Casa extends Moradia{ function imprimeEndereco(){ return $this->rua.", casa".$this->numero; } }

public class Apartamento extends Moradia { private $apartamento; function imprimeEndereco(){ $endereco = $this->rua.",; $endereco .= $this->numero."/; $endereco .= $this->apartamento; return $endereco; } }

Classe Abstrata
No permitido criar uma instncia de uma classe que foi definida como abstrata. Qualquer classe que contm pelo menos um mtodo abstrato deve tambm ser abstrata. Mtodos definidos como abstratos simplesmente declaram a assinatura do mtodo, eles no podem definir a implementao. Quando uma classe herda uma classe abstrata, todos os mtodos marcados como abstratos na declarao da classe-pai devem ser definidos na classe filha; alm disso, esses mtodos devem ser definidos com a mesma (ou menos restrita) visibilidade.


Por exemplo, se um mtodo abstrado definido como protected, a implementao da funo deve ser definida ou como protected ou public, mas no private.

Classe Abstrata

Final
O final define que as classes filhas no podem sobrescrever um mtodo

Final

Atributos e Mtodos Estticos


Declarar membros ou mtodos de uma classe como estticos faz deles acessveis sem precisar instanciar a classe. Um atributo declarados como esttico no pode ser acessado com um objeto instanciado da classe (embora mtodos estticos podem).

Atributos e Mtodos Estticos

Exemplo

Interface
Interfaces de Objetos permite a criao de cdigo que especifica quais mtodos e variveis uma classe deve implementar, sem ter que definir como esses mtodos sero tratados. Interfaces so definidas usando a palavra-chave 'interface', da mesma maneira que uma classe comum, mas sem nenhum dos mtodos ter seu contedo definido. Todos os mtodos declarados em uma interface devem ser public, essa a natureza de uma interface.

Interface
Para implementar uma interface, o operador implements usado. Todos os mtodos na interface devem ser implementados na classe; no fazer isso resultar em um erro fatal. Classes podem implementar mais de uma interface se assim for desejado, separando cada interface com uma vrgula. Nota: Uma classe no pode implementar duas interfaces que compartilham o mesmo nome uma vez que isso causaria ambigidade.

Interface

Exemplo

Relacionamento: Realizao

Proteo, Visibilidade ...

PRIVATE

PUBLIC

PROTECTED

Proteo, Visibilidade ...


Private Protected Default Public Mtodos da mesma classe

Sim No No No

Sim Sim No No

Sim Sim Sim No

Sim Sim Sim Sim

Mtodos de classes herdeiras

Mtodos de outras classes no mesmo pacote Mtodos de outras classes em outro pacote

Reviso de Orientao a Objetos


Programao Orientada a Objetos :: Java

Modelo de Classes
O diagrama de classes pode ser utilizado para ilustrar diversas etapas da produo de um sistema. A medida que o sistema vem sendo desenvolvido o diagrama vai ganhando mais detalhes. Somente quando o sistema tiver sua implementao finalizada, que o diagrama de classes poder ser finalizado.

veis de Abstrao
Diagrama de classes de domnio:


Representa as classes de domnio, independente das tecnologias que sero utilizadas. feita antes de iniciar a implementao, ajudando na compreenso do problema. Podem ser identificadas as classes e atributos, alm dos gets e sets. Os demais mtodos podem ser identificados, porm apenas com a implementao se ter maior clareza.

Nveis de Abstrao
Diagrama de classes de especificao:


uma continuao do diagrama de classes de domnio, com um maior detalhamento. J envolve algumas questes da implementao. Podem ser construdas novas classes que daro apoio no desenvolvimento (ex: uma classe para conexo com o banco de dados).

Nveis de Abstrao
Diagrama de classes de implementao:


uma extenso do diagrama de classes de especificao. Reflete claramente as caractersticas da linguagem de programao que ser utilizada.

Associao com Navegabilidade


Quando colocamos a navegao, permitimos compreender como ser o comportamento da classe.


Exemplo: ao realizarmos uma associao entre scio e dependente, sem a navegao no conseguimos saber se em scio ficar um atributo de dependente, ou se em dependente haver um atributo de scio.

Roteiro para Criao de Diagrama de Classes


1. 2. 3. 4. 5. 6. 7.

Identificar as classes Identificar os relacionamentos Definir os atributos Incluir um identificador / cdigo Colocar os mtodos gets e sets Colocar os mtodos para incluir, alterar, excluir, listar, buscar Definir os demais mtodos

Vous aimerez peut-être aussi