Classes
Conceito de classes
- Classes são templates (formas) de objetos
- Elas são usadas para criar objetos
- Classes podem herdar atributos e serviços de outras classes
- Classe é uma descrição de um grupo de objetos que tem:
- Propriedades (atributos) semelhantes
- comportamento (operação) comum
- os mesmos tipos de relacionamentos com outros objetos
- A escolha de uma classe é arbitrária e depende da aplicação em desenvolvimento
- Uma classe representa um conjunto de objetos que possuem comportamentos e características comuns
- Exemplos de classes:
- Animais
- Aves
- Mamíferos
- Carros
- Carros de corrida
- Vestibulandos
- Alunos graduação
- Alunos de pós-graduação
- Notas
- Disciplinas
- Professores
- Livros
- Empréstimos
- Devoluções
- Requerimentos
- Atestados
UML
- Unified Modeling Language
- "Na UML o nome de uma classe é um texto contendo letras e dígitos e algumas marcas de pontuação. Na realidade, é melhor guardar os nomes curtos com apenas letras e dígitos. UML sugere capitalizar todas as primeiras letras de cada palavra no nome
- Exemplo:
- Cliente, NotaAluno, SeguroVida, TaxaGlicose, Usuario, Onibus, Paciente, etc
- É melhor também manter nomes de classes no singular
- Classes por default ``contem mais de um objeto, o plural é implícito.". * [Nicolas Anquetil]
Representação

Relacionamentos entre classes
- Se usa um retangulo dividido em 3 partes:

- Para poder representar a visibilidade dos atributos e operações em uma classe utiliza-se as seguintes marcas e significados:
+ público - visível em qualquer classe # protegido - qualquer descendente pode usar - privado - visível somente dentro da classe
- Os objetos tem relações entre eles:
- Um professor ministra uma disciplina para alunos numa sala
- Um cliente faz uma reserva de alguns lugares para um evento
- Um paciente pode ser diagnosticado com várias doenças
- Essas relações são representadas também no diagrama de classe
- A UML reconhece três tipos mais importantes de relações:
- Dependência
- Associação
- Generalização (ou herança)
- Notação
Associações
- São relacionamentos estruturais entre instâncias e especificam que objetos de uma classe estão ligados a objetos de outras classes
- Podemos ter associação unária , binária , etc
- A associação pode existir entre classes ou entre objetos
- Uma associação entre a classe Professor e a classe disciplina (um professor ministra uma disciplina) significa que uma instância de Professor (um professor específico) vai ter uma associação com uma instância de Disciplina
- Esta relação significa que as instâncias das classes são conectadas, seja fisicamente ou conceitualmente.
- Exemplos: Associaçõe e instanciações
- O professor Caixeta está associado neste semestre para a Disciplina Eletromagnetismo. O professor Ivan também
- O aluno André estava associado no semestre anterior para a disciplina Métodos Numéricos. Também para Mecânica Fundamental e Eletrônica Analógica I
- A nota 22,0 da primeira prova foi dada neste semestre para a disciplina ESOF do professor Luiz Cláudio
- O livro Ética do autor Aristóteles foi emprestado à aluna Luciene no dia 22/04/10
- O DVD Tropa de Elite foi alugado pelo cliente João da Silva no dia 10/10/10
- A multa por excesso de velocidade foi aplicada ao condutor Sebastian no carro VolksWagen.
Exercícios
- Descreva as associações e classes dos problemas abaixo:
- O professor Caixeta está associado neste semestre para a Disciplina Eletromagnetismo. O professor Ivan também
- O aluno André estava associado no semestre anterior para a disciplina Métodos Numéricos. Também para Mecânica Fundamental e Eletrônica Analógica I
- A nota 22,0 da primeira prova foi dada neste semestre para a disciplina ESOF do professor Luiz Cláudio
- O livro Ética do autor Aristóteles foi emprestado à aluna Luciene no dia 22/04/10
- O DVD Tropa de Elite foi alugado pelo cliente João da Silva no dia 10/10/10
- A multa por excesso de velocidade foi aplicada ao condutor Emerson no carro Lotus
Dependência
- São relacionamentos de utilização no qual uma mudança na especificação de um elemento pode alterar a especificação do elemento dependente
- A dependência entre classes indica que os objetos de uma classe usam serviços dos objetos de outra classe
- Sistemas e exemplos de dependências:
Objeto depende de objeto
- Acadêmico: Bolsista Aluno
- Consultas: Exame Consulta
- Game: Obstáculo Fase
- Monitoramento: Alarme Sensor
- Exercícios:
- Dê exemplos de objetos ou classes com dependência.
Agregação
- Tipo de associação ( é parte de , todo/parte)
- O objeto parte é um atributo do todo
- Um objeto contém uma lista de outros objetos
- Um objeto “parte” pode fazer parte de vários objetos“todo”.
- Exemplo:
- Carro -> Rodas
- Pode-se tirar as rodas do carro antes de destruí-lo e elas podem ser colocadas em outro carro
- Turma -> Alunos
- Uma turma não existe sem alunos
- Carro -> Rodas
Composição
- Forma mais forte de agregação
- Aplicável quando:
- Existe um forte grau de “pertencer” das partes ao todo
- Cada parte só pode fazer parte de um todo
- O topo e as partes tem tempo de vida coincidentes
- A eliminação do todo, propaga-se para as partes, em cascata
- Quando o todo “morre” todas as suas partes também “morrem”
- Exemplo:
- Nota Fiscal e Itens de Pedido
- Se destruirmos a Nota Fiscal, destruiremos também seus itens.
- Descrevendo um pedido e seus itens:
- Nota Fiscal de venda de uma loja de informática:
- Cliente Nro 10012, Senhor Nivaldo Barros, adquiriu os seguintes produtos no dia 22/09/2010 pelo preço total de R$ 571,00
- Produtos e preços unitários:
- 1. Mouse sem fio (01 unid) R$ 95,00
- 2. Impressora jato de tinta (01 unid) R$ 210,00
- 3. Mouse pad (02 unid) R$ 5,00
- 4. HD Externo (01 unid) R$ 256,00
- Dê uma idéia de armazenamento destes dados?
Herança
- Simples ou composta
- Relacionamento entre um elemento mais geral e um mais específico
- O elemento mais específico herda as propriedades e métodos do elemento mais geral
- A relação de generalização também é conhecida como herança no modelo a objetos
- Exemplos:
- Uma pessoa pode ser um professor ou um estudante
- Um estudante pode estar na graduação ou na pós-graduação


