Classes
Conceito de classes
- É uma descrição formal da estrutura de objetos num sistema.
- Descreve:
- os tipos de objetos no sistema, e
- os vários tipos de relacionamentos estáticos entre eles.
portanto
- 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
- Classes são templates (formas) de objetos e são usadas para criar objetos
- Classes podem herdar atributos e serviços de outras classes
- Descrevem:
- as classes - descrições abstratas e condensadas de um conjunto de objetos
do domínio da aplicação, caracterizadas pelos seus:
- 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
Classes
- Identificar as classes de um sistema pode ser complicado, e deve ser feito por quem entende realmente do domínio do problema em questção
- As classes devem ser retiradas do escopo do problema e serem nomeadas pelo que elas representam no sistema. Quando procuramos definir as classes de um sistema, existem algumas questões que podem ajudar a identificá-las. Algumas questões que podem ajudar:
- Existem informações que devem ser armazenadas ou analisadas?
- Se existir alguma informação que tenha que ser guardada, transformada ou analisada de alguma forma, então é uma possível candidata para ser uma classe
- Existem sistemas externos ao modelado?
- Se existir, eles deverão ser vistos como classes pelo sistema para que possa interagir com outros externos
- Existem informações que devem ser armazenadas ou analisadas?
- Existem classes de bibliotecas, componentes ou modelos externos a serem utilizados pelo sistema modelado?
- Se sim, normalmente essas classes, componentes e modelos conterão classes candidatas ao nosso sistema
- Qual o papel dos atores dentro do sistema?
- Talvez o papel deles possa ser visto como classes, por exemplo, usuário, operador, cliente e daí por diante.
- Concluímos que o conceito de classe está intimamente ligado ao conceito de objeto, já que a existência de um objeto pressupõe a existência de uma classe que o originou
- Podemos entender então uma classe como sendo um "projeto" do objeto, ou seja, um trecho de código que descreve o objeto em todos os seus métodos e atributos.
- Em termos práticos é comum falar em instanciar uma classe para se obter um objeto. Por exemplo, na linguagem java podemos ter a classe abaixo:
public class Veiculo(){
private int ano, potencia;
private String placa, chassis;
public void acelerar(){
}
public void frear(){
}
public void virarDireita(){
}
public void virarEsquerda(){
}
}
- Para instanciarmos a classe acima devemos escrever a seguinte linha de código:
Veiculo meuVeiculo = new Veiculo();
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
- Se usa um retangulo dividido em 3 partes:

Visibilidade
- A visibilidade indica se o atributo ou método pode ou não ser acessado do exterior da classe por funções que não sejam membros da classe.
- Para melhor representar a visibilidade dos atributos e operações em uma classe utiliza-se as seguintes marcas e significados:
- + pública: neste caso, o atributo é visível no exterior da classe. Tanto funções membro da classe quanto funções externas podem acessar o atributo
- - privada: O atributo não é visível no exterior da classe. Somente funções membro da classe podem acessar o atributo
- # protegida: O atributo também é privado mas as funções membro das classes derivadas também tem acesso ao atributo.
- A definição da visibilidade é opcional porém se ela não for definida, por default será privada.
- Os objetos tem relações entre eles:
- Um professor ministra uma disciplina para alunos numa sala
- Professor -> Disciplina -> Alunos -< Sala
- Um cliente faz uma reserva de alguns lugares para um evento
- Cliente -> Lugar -> Evento -> Reserva
- Um paciente pode ser diagnosticado com várias doenças
- Paciente -> Consulta -> Doença -> Diagnóstico
- Um professor ministra uma disciplina para alunos numa sala
- 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 normal, ordenada, recursiva, exclusiva, , etc
- A associação pode existir entre classes ou entre objetos
- Uma associação define que duas classes possuem uma ligação, mostrando que elas "conhecem uma a outra", " que estão conectadas". Estas conexões podem ser físicas ou simplesmente conceituais.
- 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
- Exemplos: Associaçõe e instanciações
- O cliente Cleber dos Reis está associado neste mês de Janeiro, ao débito de R$ 3.500,00 referente à compra de uma TV. A cliente Ana Maria Lima também.
- O aluno Nataniel está associado este semestre ao curso de Engenharia Química para as disciplinas de Química Geral e Inorgânica. Também para Cálculo Diferencial e Integral I e Geometria Analitica e Álgebra Linear.
- A nota 22,0 da primeira prova foi dada neste semestre para a disciplina Métodos Matemáticos para o aluno Thiago Mundim.
- O livro Matemática e Raciocínio Lõgico dos autores Benjamim e Cesar foi emprestado à aluna Lívia no dia 02/01/14
- O DVD Tropa de Elite foi alugado pelo cliente João da Silva no dia 10/10/13
- A multa por atraso no pagamento de Dezembro/2013 foi aplicada ao comprador Alex Mota.
Exercícios
- Descreva as associações e classes dos problemas abaixo:
- O Livro Circuitos Elétricos do autor Edminister foi reservado pelo professor Luis Carlos
- O carro Golf de placa GKV-2031 teve o seguro adquirido durante 1 ano.
- O produto Vinho do Porto foi adquirido junto à Vinícola Marialva.
- O aluno Elias Alves solicitou trancamento do curso de Ciência da Computação em 12/12/2013.
- O personagem Joker foi inserido na fase II do Game Trony.
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/2013pelo 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?

