Você está na página 1de 22

Introduo Programao Orientada Objetos

Prof. Daniel Merli Lamosa


Maio de 2002

Conceitos
- O que so Objetos?
Tudo que se oferece aos nossos sentidos ou nossa alma. 2. Coisa material: Havia na estante vrios objetos. 3. Tudo que constitui a matria de cincias ou artes. 4. Assunto, matria. 5. Fim a que se mira ou que se tem em vista-.

- Objeto:

*-1.

- Objeto a abstrao de coisas do mudo real!

* DICMAXI - Dicionrio Multimdia Michaelis

08/05/2002

Conceitos (cont.)
- Exemplos:

08/05/2002

Conceitos (cont.)
- Exemplos:

Automvel

08/05/2002

Conceitos (cont.)
- Objetos possuem 4 caractersticas:
- Identidade: 2 objetos so distintos mesmo que todos os valores de seus atributos sejam iguais. - Classificao: Objetos com a mesma estrutura de dados (atributos) e mesmo comportamento (operaes) so agrupados em uma classe. - Polimorfismo: A mesma operao pode atuar de modos diversos em classes diferentes. - Herana: Compartilhamento de atributos e operaes entre classes com base em um relacionamento hierrquico.
08/05/2002 5

Conceitos (cont.)
- * A abordagem baseada em objetos preocupa-se primeiro em identificar os objetos contidos no domnio da aplicao e depois em estabelecer os procedimentos relativos a eles. Embora isso possa parecer mais indireto, o software baseado em objetos mantm-se melhor medida que os requisitos evoluem, por se apoiar na prpria estrutura fundamental do domnio da aplicao, ao invs de apoiar-se nos requisitos funcionais ad hoc de um nico problema.
* Rumbaugh [94]

08/05/2002

Conceitos (cont.)
- 6 Caractersticas da Tecnologia Baseada em objetos:
- Abstrao: Concentrao nos aspectos essenciais, prprios, de uma entidade e em ignorar suas propriedades acidentais. - Encapsulamento: Separao dos aspectos externos de um objeto, acessveis por outros, dos detalhes internos da implementao que ficam ocultos dos demais. - Combinao de Dados e Comportamento: Polimorfismo dos objetos. - Compartilhamento: Compartilhar a estrutura comum (classes) por diversas subclasses sem redundncias (Herana). - nfase na Estrutura de Objetos: Especificar o objeto e no como ele utilizado. - Sinergia: Seguir todas as caractersticas simultaneamente.
08/05/2002 7

Exemplo
Crculo
Crculo
R

Abstrao

(x, y)

Raio: Real x : Real y : Real Mover((x, (y) Aumentar((R)

Classe

Atributos Operaes

08/05/2002

Exemplo (cont.)
Dados privados Crculo Raio: Real x : Real y : Real Mover((x, (y) Aumentar((R) Aumentar((R) Mover((x, (y) Raio: Real x : Real y : Real

Funes membro pblicas

Geralmente, funes so o nico meio de acesso as atributos da classe!!


08/05/2002 9

Exemplo (cont.)
Definio para dados privados Crculo Raio: Real x : Real y : Real Mover((x, (y) Aumentar((R) Em C++ fica

Definio para dados pblicos

08/05/2002

10

Forma Geral de class


class nome-da-classe { private: dados e funes privadas public: dados e funes pblicas };

08/05/2002

11

Cdigo Completo da classe Circulo

::

Operador de escopo de resoluo

08/05/2002

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, alocao dinmica de memria.

- Destrutor: Em diversos casos necessrio realizar alguma(s) ao(es) para o objeto poder ser destrudo. Por exemplo, desalocao dinmica de memria.

08/05/2002

13

Exemplo Construtor/Destrutor
Declarao do Construtor

Declarao do destrutor

Ao do Construtor
08/05/2002

Construtor e Destrutor no so chamados explicitamente na funo principal!

14

Operaes de Entrada e Sada


- 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) cin >> a;

08/05/2002

15

Exemplo: Pilha
Colocar Colocar Colocar Colocar Elemento Elemento Elemento Elemento Retirar Elemento Colocar Elemento

08/05/2002

16

Sobrecarga de funes
- Polimorfismo entre ou na classe. - Um mesmo nome de operao (funo) pode realizar diferentes aes! Sobrecarga do Construtor
O mesmo nome de funo, mas executam aes diferentes!

Compilador responsvel pela deciso de qual construtor chamar!


08/05/2002 17

Alocao Dinmica de Memria


- new: Aloca memria suficiente para guardar o valor desejado. - delete: Desaloca memria reservada por new. Formato: variavel_ponteiro = new var_tipo; delete variavel_ponteiro;

08/05/2002

18

Alocao Dinmica de Memria


- Para vetores e matrizes:

08/05/2002

19

Exemplo Pilha: Completo

- Situao: Criar uma pilha com capacidade n (n informado pelo usurio).

08/05/2002

20

Exemplo Fila: Completo


- Situao: Criar uma fila com capacidade n (n informado pelo usurio). 1
Tempo Colocar elemento

2 1 3 2 3 2 1

Colocar elemento

Colocar elemento Retirar elemento

08/05/2002

21

Herana
- Classe Carro e Subclasse Ferrari
Carro 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( )
08/05/2002 22

Ferrari : Carro N_Mulheres_Bonitas: Inteiro

Set_N_MB(Int : Val_N_MB ) Get_N_MB( )

Você também pode gostar