A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Programação Orientada à Objetos Prof. Daniel Merli Lamosa Maio de 2002.

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação Orientada à Objetos Prof. Daniel Merli Lamosa Maio de 2002."— Transcrição da apresentação:

1 Introdução à Programação Orientada à Objetos Prof. Daniel Merli Lamosa Maio de 2002

2 08/05/20022 Conceitos - O que são Objetos? - Objeto: * -1. Tudo que se oferece aos nossos sentidos ou à nossa alma. 2. Coisa material: Havia na estante vários objetos. 3. Tudo que constitui a matéria de ciências ou artes. 4. Assunto, matéria. 5. Fim a que se mira ou que se tem em vista-. * DICMAXI - Dicionário Multimídia Michaelis - Objeto é a abstração de coisas do mudo real!

3 08/05/20023 Conceitos (cont.) - Exemplos:

4 08/05/20024 Conceitos (cont.) - Exemplos: Automóvel

5 08/05/20025 Conceitos (cont.) - Objetos possuem 4 características: - Identidade: 2 objetos são distintos mesmo que todos os valores de seus atributos sejam iguais. - Classificação: Objetos com a mesma estrutura de dados (atributos) e mesmo comportamento (operações) são agrupados em uma classe. - Polimorfismo: A mesma operação pode atuar de modos diversos em classes diferentes. - Herança: Compartilhamento de atributos e operações entre classes com base em um relacionamento hierárquico.

6 08/05/20026 Conceitos (cont.) - * A abordagem baseada em objetos preocupa-se primeiro em identificar os objetos contidos no domínio da aplicação e depois em estabelecer os procedimentos relativos a eles. Embora isso possa parecer mais indireto, o software baseado em objetos mantém-se melhor à medida que os requisitos evoluem, por se apoiar na própria estrutura fundamental do domínio da aplicação, ao invés de apoiar-se nos requisitos funcionais ad hoc de um único problema. * Rumbaugh [94]

7 08/05/20027 Conceitos (cont.) - 6 Características da Tecnologia Baseada em objetos: - Abstração: Concentração nos aspectos essenciais, próprios, de uma entidade e em ignorar suas propriedades acidentais. - Encapsulamento: Separação dos aspectos externos de um objeto, acessíveis por outros, dos detalhes internos da implementação que ficam ocultos dos demais. - Combinação de Dados e Comportamento: Polimorfismo dos objetos. - Compartilhamento: Compartilhar a estrutura comum (classes) por diversas subclasses sem redundâncias (Herança). - Ênfase na Estrutura de Objetos: Especificar o objeto e não como ele é utilizado. - Sinergia: Seguir todas as características simultaneamente.

8 08/05/20028 Exemplo R (x, y) Círculo Abstração Raio: Real x : Real y : Real Mover( x, y) Aumentar( R) Círculo Classe Atributos Operações

9 08/05/20029 Exemplo (cont.) Raio: Real x : Real y : Real Mover( x, y) Aumentar( R) Círculo Raio: Real x : Real y : Real Mover( x, y) Aumentar( R) Geralmente, funções são o único meio de acesso as atributos da classe!! Dados privados Funções membro públicas

10 08/05/200210 Exemplo (cont.) Raio: Real x : Real y : Real Mover( x, y) Aumentar( R) Círculo Em C++ fica Definição para dados privados Definição para dados públicos

11 08/05/200211 Forma Geral de class class nome-da-classe { private: dados e funções privadas public: dados e funções públicas };

12 08/05/200212 Código Completo da classe Circulo :: Operador de escopo de resolução

13 08/05/200213 Construtor e Destrutor - Construtor: Como o encapsulamento de dados é comum, o C++ permite aos objetos serem inicializados (iniciados) por si mesmo quando criados. Por exemplo, alocação dinâmica de memória. - Destrutor: Em diversos casos é necessário realizar alguma(s) ação(ões) para o objeto poder ser destruído. Por exemplo, desalocação dinâmica de memória.

14 08/05/200214 Exemplo Construtor/Destrutor Declaração do Construtor Declaração do destrutor Ação do Construtor Construtor e Destrutor não são chamados explicitamente na função principal!

15 08/05/200215 Operações de Entrada e Saída - cout: usado para escrever em tela. Similar ao printf Ex: printf(Teste); cout << Teste; printf(n = %d, n); cout << n = << n; -cin: usado para ler uma entrada do teclado. Similar ao scanf Ex: scanf(%d, &a)cin >> a;

16 08/05/200216 Exemplo: Pilha Retirar Elemento Colocar Elemento Colocar Elemento Colocar Elemento Colocar Elemento Colocar Elemento

17 08/05/200217 Sobrecarga de funções - Polimorfismo entre ou na classe. - Um mesmo nome de operação (função) pode realizar diferentes ações! Sobrecarga do Construtor O mesmo nome de função, mas executam ações diferentes! Compilador é responsável pela decisão de qual construtor chamar!

18 08/05/200218 Alocação Dinâmica de Memória - new: Aloca memória suficiente para guardar o valor desejado. - delete: Desaloca memória reservada por new. Formato: variavel_ponteiro = new var_tipo; delete variavel_ponteiro;

19 08/05/200219 Alocação Dinâmica de Memória - Para vetores e matrizes:

20 08/05/200220 Exemplo Pilha: Completo - Situação: Criar uma pilha com capacidade n (n informado pelo usuário).

21 08/05/200221 Exemplo Fila: Completo - Situação: Criar uma fila com capacidade n (n informado pelo usuário). 1 2 3 3 1 2 2 1 Tempo Colocar elemento Retirar elemento Colocar elemento

22 08/05/200222 Herança - Classe Carro e Subclasse Ferrari P_Motor: Real N_Portas : Inteiro Preco : Real Set_P_Motor(Real : Val_P_Motor ) Get_P_Motor( ) Set_N_Portas(Int : Val_ N_Portas) Get_ N_Portas ( ) Set_Preco(Real: Preco) Get_Preco( ) Carro N_Mulheres_Bonitas: Inteiro Set_N_MB(Int : Val_N_MB ) Get_N_MB( ) Ferrari : Carro


Carregar ppt "Introdução à Programação Orientada à Objetos Prof. Daniel Merli Lamosa Maio de 2002."

Apresentações semelhantes


Anúncios Google