Conceitos
- Objeto: Uma instância de uma classe
- Classe: Um conjunto de características e funcionalidades que definem objetos
- Atributos: Características de uma classe, os dados do objeto
- Métodos: Uma ação executada, algo que o objeto faz
- Mensagem: Uma chamada de método
Diagrama de classes
Notação: Um retângulo dividido em 3 partes, na primeira fica o nome, na segunda os atributos, na terceira os métodos e caso seja necessário é possível criar mais dicisões.
Visibilidade: Para os atributos e métodos da classe pode ser usada as seguintes notações de visibilidade:
- + (público): O atributo/método pode ser acessado por qualquer outra classe
- - (privado): O atributo/método apenas poderá ser acessado pela própria classe
- # (protegido): O atributo/método poderá ser acessado apenas pela própria classe e suas descendentes na herança
- ~ (pacote/default): O atributo/método pode ser acessado pelas classes que estão no mesmo pacote
Abstrata, Concreta e Interface: Uma classe abstrata não pode ser instanciada, declara os atributos e métodos mas não implementa. Uma classe concreta não possui métodos abstratos e implementam todos os seus métodos (uma classe simples). Uma inteface é um “contrato” que informa o que a classe deve fazer mas não tem nenhuma implementação.
Relacionamento entre classes
Associação: Representa uma relação “tem um” ou “existe um”. É quando uma classe faz referência a outra classe num determinado período de tempo. Um objeto pode existir sem que o outro exista. É representado por uma linha entre as duas classes. É subdividido em:
Agregação: Uma relação forte “tem um” que define uma propriedade, quando a classe que se relaciona deixa de existir, a classe relacionada continua existindo mas perde parte do sentido de existência. É representado por uma linha, no lado da classe que se relaciona coloca-se um diamante sem preenchimento e no lado da classe relacionada coloca-se uma seta.
Composição: Uma relação muito forte “todo-parte” que diz que uma classe “é parte de” outra classe. Quando a classe que se relaciona é destruída, a relacionada também será. É representado por uma linha, no lado da classe que se relaciona coloca-se um diamante preenchido e no lado da classe relacionada coloca-se uma seta.
Generalização: Representa uma “herança”. De uma classe mais geral para uma classe mais específica. É representada por um linha, na ponta da classe generalizada coloca-se um triângulo.
Dependência: É a relação mais fraca, acontece quando uma classe usa outra classe através da chamada de um método estático ou quando é usado como parâmetro de um método. É representado por uma linha tracejada apontando para a classe que é usada.
Reconhecimento de classe
Para reconhecer as classes você pode interpretar um caso de uso destacando as seguintes características:
Substantivos: se transformam nas classes. Ex.: Pessoa, Carro, Escola.
Adjetivos: se transformam nos atributos de uma classe. Ex.: cor, peso, altura, endereço.
Verbos: se transformam nos métodos de uma classe. Ex.: estudar, andar, acelerar.
É preciso saber interpretar o texto do caso de uso para saber relacionar os atributos e verbos a classe certa.
Segue abaixo uma imagem que exemplifica as principais notações do diagrama de classes:
|
Exemplo de diagrama de classes |