Programação Orientada A Objetos

  • Uploaded by: Juliano Oliveira
  • 0
  • 0
  • August 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Programação Orientada A Objetos as PDF for free.

More details

  • Words: 793
  • Pages: 22
Introdução à Programação Orientada à Objetos

Prof. Daniel Merli Lamosa Maio de 2002

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-”.

- Objeto é a abstração de coisas do mudo real!

* DICMAXI - Dicionário Multimídia Michaelis

08/05/2002

2

Conceitos (cont.) - Exemplos:

08/05/2002

3

Conceitos (cont.) - Exemplos:

Automóvel

08/05/2002

4

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. 08/05/2002

5

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]

08/05/2002

6

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. 08/05/2002

7

Exemplo Círculo Círculo R

(x, y)

Abstração

Raio: Real x : Real y : Real

Classe

Mover(∆x, ∆y) Aumentar(∆R) Atributos Operações

08/05/2002

8

Exemplo (cont.) Dados privados Círculo Raio: Real x : Real y : Real

Mover(∆x, ∆y) Raio: Real x : Real y : Real

Funções membro públicas

Mover(∆x, ∆y) Aumentar(∆R) Aumentar(∆R)

Geralmente, funções são o único meio de acesso as atributos da classe!! 08/05/2002

9

Exemplo (cont.) Definição para dados privados Círculo Raio: Real x : Real y : Real

Em C++ fica

Definição para dados públicos

Mover(∆x, ∆y) Aumentar(∆R)

08/05/2002

10

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

08/05/2002

11

Código Completo da classe Circulo

::

08/05/2002

Operador de escopo de resolução

12

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.

08/05/2002

13

Exemplo Construtor/Destrutor Declaração do Construtor

Declaração do destrutor

Ação do Construtor 08/05/2002

Construtor e Destrutor não são chamados explicitamente na função principal!

14

Operações de Entrada e Saída - cout: usado para escrever em tela. Similar ao printf Ex: printf(“Teste”); printf(“n = %d”, n);

cout << “Teste”; cout << “n = “ << n;

-cin: usado para ler uma entrada do teclado. Similar ao scanf Ex: scanf(“%d”, &a)

08/05/2002

cin >> a;

15

Exemplo: Pilha Colocar Colocar Colocar Colocar

Elemento

Elemento

Retirar Elemento

Colocar Elemento

Elemento

Elemento

08/05/2002

16

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! 08/05/2002

17

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;

08/05/2002

18

Alocação Dinâmica de Memória - Para vetores e matrizes:

08/05/2002

19

Exemplo Pilha: Completo

- Situação: Criar uma pilha com capacidade n (n informado pelo usuário).

08/05/2002

20

Exemplo Fila: Completo - Situação: Criar uma fila com capacidade n (n informado pelo usuário). Colocar elemento

1 Tempo

08/05/2002

2

1

Colocar elemento

3

2 1

Colocar elemento

3

2

Retirar elemento

21

Herança - Classe Carro e Subclasse Ferrari Carro P_Motor: Real N_Portas : Inteiro Preco : Real

Ferrari : Carro N_Mulheres_Bonitas: Inteiro

Set_P_Motor(Real : Val_P_Motor ) Get_P_Motor( ) Set_N_Portas(Int : Val_ N_Portas) Get_ N_Portas ( )

Set_N_MB(Int : Val_N_MB ) Get_N_MB( )

Set_Preco(Real: Preco) Get_Preco( ) 08/05/2002

22

Related Documents


More Documents from ""

May 2020 10
August 2019 21
August 2019 23
May 2020 16