You are on page 1of 22

Introduo Programao

Orientada Objetos

Prof. Daniel Merli Lamosa

Maio de 2002
Conceitos
- O que so Objetos?

- Objeto: *-1.
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 a abstrao de coisas do mudo real!

* DICMAXI - Dicionrio Multimdia Michaelis

08/05/2002 2
Conceitos (cont.)
- Exemplos:

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

Automvel

08/05/2002 4
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 6
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
Raio: Real
R
Abstrao x : Real Classe
(x, y) y : Real
Mover(x, y)
Aumentar(R)
Atributos

Operaes

08/05/2002 8
Exemplo (cont.)
Dados privados
Mover(x, y)
Crculo
Raio: Real
x : Real Raio: Real
x : Real Funes membro
y : Real
y : Real pblicas
Mover(x, y)
Aumentar(R)
Aumentar(R)

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 Em C++ fica Definio para dados pblicos
y : Real
Mover(x, y)
Aumentar(R)

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

Construtor e Destrutor no
so chamados explicitamente
Ao do na funo principal!
Construtor

08/05/2002 14
Operaes de Entrada e Sada
- 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;

08/05/2002 15
Exemplo: Pilha
Colocar Colocar
Retirar
Colocar Elemento Elemento
Elemento
Colocar Elemento

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 Colocar elemento

Tempo 2 1 Colocar elemento

3 2 1 Colocar elemento

3 2 Retirar elemento

08/05/2002 21
Herana
- Classe Carro e Subclasse Ferrari

Carro Ferrari : Carro


P_Motor: Real
N_Portas : Inteiro N_Mulheres_Bonitas: Inteiro
Preco : Real
Set_P_Motor(Real : Val_P_Motor )
Get_P_Motor( )
Set_N_MB(Int : Val_N_MB )
Set_N_Portas(Int : Val_ N_Portas)
Get_N_MB( )
Get_ N_Portas ( )

Set_Preco(Real: Preco)
Get_Preco( )

08/05/2002 22

You might also like