1. Diagrama de Casos de Uso
1.1. Mapear os relacionamentos
1.1.1. entre os componentes de um sistema
1.2. Classes
1.2.1. atores
1.2.2. podem participar de mais de um caso de uso
2. Associação
2.1. Uma das formas de relacionamento
2.1.1. entre as classes
2.2. Atributo de ligação
2.2.1. pertence a uma associação entre classes
3. Classe
3.1. É uma estrutura
3.2. Abstrai um conjunto de objetos
3.2.1. com características similares
3.3. Nela se definem os
3.3.1. métodos
3.3.1.1. dizem como os objetos se comportarão
3.3.2. atributos
3.3.2.1. aquilo que um objeto possui
3.3.2.2. por meio deles
3.3.2.2.1. objetos armazenam informações
3.4. Objeto
3.4.1. uma instância de uma classe
3.5. Variável declarada
3.5.1. como tipo de uma interface
3.5.2. pode referenciar qualquer objeto
3.5.2.1. dentro da classe
3.5.2.1.1. que está implementando a interface
4. Construtor
4.1. Estrutura obrigatória
4.1.1. não possui um retorno visível
4.1.2. cria uma estrutura
4.1.2.1. para o armazenamento dos objetos
4.1.2.1.1. em memória
4.2. Construtor padrão
4.2.1. não recebe parâmetros
4.3. Aloca os objetos em um espaço
4.3.1. na memória
5. Herança
5.1. class Filho extends Pai
5.1.1. Filho herdará os métodos de Pai
5.2. Classe que herda
5.2.1. pode acessar os métodos da outra classe
5.3. Retira a redundância
5.3.1. simplifica o código
5.4. Classe pai pode receber objetos da classe filho
5.5. Classe filho não pode receber objetos da classe pai
6. Polimorfismo
6.1. Permite
6.1.1. trabalhar com métodos de uma classe em outra
6.1.2. alterar o seu comportamento
6.2. Estático
6.2.1. Sobrecarga (Overload)
6.2.1.1. consiste basicamente em criar variações de um mesmo método
6.2.1.2. não necessita de herança
6.2.1.3. dois métodos podem ter o mesmo nome
6.2.1.3.1. desde que suas listas de parâmetros sejam diferentes
6.3. Dinâmico
6.3.1. Sobrescrita
6.3.1.1. necessita de herança
6.3.1.2. alterar um método da classe pai na classe filha
6.4. Polimorfismo paramétrico
6.4.1. uma classe pode ser escrita
6.4.1.1. com atributos de valores idênticos
6.4.1.2. independente do seu tipo
6.5. Substituição de Liskov
6.5.1. implementação do conceito de subtipo da orientação a objetos
6.5.2. descreve que
6.5.2.1. se S é uma propriedade dos objetos do tipo T
6.5.2.2. então para os objetos de S
6.5.2.2.1. S é um subtipo de T
6.6. Polimorfismo de inclusão
6.6.1. subtipos de uma classe herdando da classe
6.6.1.1. através de
6.6.1.1.1. generalização
6.6.1.1.2. especialização
6.7. Mecanismo para identificação de qual método deve ser invocado
6.7.1. durante a compilação do programa
6.7.1.1. pode ser feito em
6.7.1.1.1. tempo de execução
6.7.1.1.2. tempo de compilação
7. Lista Encadeada
7.1. Recurso de estrutura de dados
7.2. Sequência de objetos do mesmo tipo
8. Estruturas (structs)
8.1. ou Registro
8.2. Recurso muito utilizado em C
8.2.1. para declarar um tipo de dado
8.2.1.1. em que há elementos heterogêneos
8.2.1.2. variáveis de tipos diferentes
9. Encapsulamento
9.1. Objetivo
9.1.1. separar o programa em partes
9.1.1.1. o mais isolado possível
9.1.2. controlar o acesso aos atributos e métodos de uma classe
9.2. Deixa o código mais seguro
9.3. Separação do código
9.3.1. público
9.3.1.1. Nível de acesso livre
9.3.1.2. pode-se
9.3.1.2.1. acessar esse atributo
9.3.1.2.2. ou executar esse método
9.3.2. privado
9.3.2.1. Nível mais protegido
9.3.2.2. só pode ser acessado
9.3.2.2.1. dentro da classe
9.3.3. protegido
9.3.3.1. Nível de acesso intermediário
9.3.3.2. público dentro do código
9.3.3.2.1. da própria classe
9.3.3.2.2. de qualquer classe
9.3.3.3. privado de qualquer outra parte