Orientação à Objetos

OO

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Rocket clouds
Orientação à Objetos por Mind Map: Orientação à Objetos

1. Diferença da Programação Estruturada

1.1. ESTRUTURADA: Sequência de passos bem estruturados, com início e fim definidos, por vezes com sub-rotinas

1.2. OO: Considera o conjunto para os dados a serem processados e o mecanismo de execução do processamento

2. Características

2.1. Pensamento de programação com ideais voltados para o pensamento humano

2.2. É dominante em dias atuais

2.3. Busca a identificação de objetos e operações mais relevantes com a realidade

2.4. Tudo pode ser um OBJETO

2.5. Criação de objetos e interação entre eles

2.6. Todos OBJETOS possuem estado (características) e comportamento

2.7. Soluciona algumas dificuldades da Programação Estruturada:

2.7.1. Melhor organização

2.7.2. Menos linhas de código

2.7.3. Divisão lógica do código

2.7.4. Simulação da realidade

3. Conceitos

3.1. Classe

3.1.1. Abstração de entidades existentes no domínio do sistema

3.1.2. Projeto ou molde de qualquer coisa em seu mundo

3.1.3. São as especificações para Objetos

3.1.4. Compartilhamento de características e complementos comuns, é representando por um conjunto de Objetos

3.1.5. Definem a aparência e comportamento, bem como as características e funcionalidades dos Objetos

3.1.6. São os atributos e métodos (dados e operações, respectivamente), que fazem a manipulação dos dados

3.1.7. Devem, SEMPRE, possuir um nome

3.1.8. Possuir visibilidade

3.1.9. Membros Características & Ações

3.1.10. Podemos dizer também que é a descrição de um tipo de Objeto e que o Objeto está para Classe assim como Variável está para Tipo de Dado

3.2. Objeto

3.2.1. Referência do Mundo Real, seja CONCRETO ou ABSTRATO

3.2.2. A visão dos humanos é dada pelo Objeto

3.2.3. Entidade que exibe comportamento definido

3.2.4. Características: São representados por Dados

3.2.4.1. Atributos

3.2.4.2. Variáveis do Objeto

3.2.5. Comportamento: São definidas por Operações

3.2.5.1. Métodos

3.2.5.2. Funções Executadas

3.2.6. Propriedades:

3.2.6.1. Estado: Valores dos Atributos de um Objeto

3.2.6.2. Comportamento: é o consumo de métodos. Estado representa o resultado cumulativo de seu comportamento

3.2.6.3. Identidade: Objetos são únicos, mesmo tendo um estado idêntico à outro. Seu valor de referência

3.2.6.4. Valores dos dados são modificados a partir de operações sobre esses dados.

3.2.7. Em suma, é um exemplar de uma classe e só existe enquanto o tempo de execução. Chamado de instância de classe.

3.3. Atributo

3.3.1. Características dos Objetos de uma Classe, são conhecidos como Variáveis ou Campos;

3.3.2. Propriedades que definem o estado do Objeto, fazendo com que esses valores, sofram alterações, conforme instruções recebidas

3.3.3. São armazenados em Variáveis

3.4. Método

3.4.1. Ações ou Procedimentos, para interação e comunicação com outros Objetos. Execução é feita por mensagens, sendo a função do envio de uma solicitação ao Objeto, para que seja efetuada a rotina desejada.

3.4.2. Indicado o uso, sempre, de nome dos Métodos como verbos, para uma futura manutenção seja de fácil entendimento

3.5. Encapsulamento

3.5.1. Utilizado para separação do interno para o externo dos Objetos

3.5.2. Forma utilizada para que o acesso direto aos Atributos de um Objeto, deixando apenas os Métodos de validar e efetivar as devidas alterações

3.5.3. Serve para ignorar detalhes de implementação, permitindo a idealização de um trabalho com o mais alto nível de abstração

3.5.4. É a junção de Métodos e dados dentro de um Objeto, tornando o acesso à esses dados seja somente pelos próprios Métodos do Objeto.

3.6. Herança

3.6.1. Mecânica de como a Classe pode se estender à outra, aproveitando Métodos e Atributos.

3.6.2. Permite que elementos mais específicos entrem na estrutura e comportamento dos mais genéricos.

3.6.3. PS.: A criação de um Objeto da Classe filho, é herdado todas as propriedades da Classe pai, agregando as propriedades da própria Classe filho.

3.7. Polimorfismo

3.7.1. Serve para que a mesma operação seja definida para diferentes tipos de Classes, sendo elas implementadas independentemente

3.7.2. Os Objetos podem se manifestar de diferentes formas

3.7.3. É o princípio pelo qual duas ou mais Classes derivadas da mesma Superclasse, invocam Métodos de mesma assinatura com comportamentos distintos

3.7.4. A escolha de qual Método selecionar, varia de acordo com o tipo de Classe derivada e tomada em tempo de execução

4. Resumindo

4.1. OBJETO: Entidades que possuem características e comportamentos

4.2. CLASSE: Descreve um tipo de Objeto e define os Atributos e Métodos

4.3. ATRIBUTO: Define as características do Objeto

4.4. MÉTODO: São as operações que o Objeto pode realizar

4.5. ENCAPSULAMENTO: Separa a construção abstrata do produto final

4.6. HERANÇA: Objetos da Subclasse, são um tipo de Objeto da Superclasse

4.7. POLIMORFISMO: Mesma operação para diferentes tipos de Classes

5. Sobrecarga

5.1. Conceito do Polimorfismo que consiste basicamente em criar variações de um mesmo Método, sejam dois ou mais Métodos com nomes totalmente iguais a uma Classe

5.2. Permite que utilize o mesmo nome em mais de um Método, contanto que suas listas de argumentos sejam diferentes para que seja feita a separação

6. Sobrescrita

6.1. Reescreve o Método, para reescrever nas Subclasses criadas inicialmente na Superclasse e diferente da Sobrecarga tem que possuir o MESMO NOME, TIPO DE RETORNO e QUANTIDADE DE PARÂMETRO do Método inicial, podendo adicionar algo mais ou não.

7. Interfaces

7.1. Serve para fazer a ligação entre a Classe e o Mundo

7.2. Auxilia na definição de Classes

7.3. Formada pela declaração de um ou mais Métodos, que obrigatoriamente não possuem corpo

7.4. Pode ser implementado por meio de STRUCTS

7.5. Pode ser implementado uma ou mais Interfaces em uma Classe, separados por vírgulas

7.6. Objeto definido por Interface não pode ser instanciado

7.7. Objeto definido por Interface não pode ser instanciado

8. Classes Abstratas

8.1. Servem como rascunho para as classes que às herdarem

8.2. Não podem ser instanciadas

8.3. Métodos: Podem ser Abstratos, onde deve declarar somente a assinatura do método e obrigatoriamente terão que ser implementados na Subclasse