Vous êtes sur la page 1sur 22

Introduo Programao

Orientada Objetos
Prof. Daniel Merli Lamosa
Maio de 2002
08/05/2002 2
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-.
* DICMAXI - Dicionrio Multimdia Michaelis
- Objeto a abstrao de coisas do mudo real!
08/05/2002 3
Conceitos (cont.)
- Exemplos:
08/05/2002 4
Conceitos (cont.)
- Exemplos:
Automvel
08/05/2002 5
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 6
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 7
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 8
Exemplo
R
(x, y)
Crculo
Abstrao
Raio: Real
x : Real
y : Real
Mover(x, y)
Aumentar(R)
Crculo
Classe
Atributos
Operaes
08/05/2002 9
Exemplo (cont.)
Raio: Real
x : Real
y : Real
Mover(x, y)
Aumentar(R)
Crculo
Raio: Real
x : Real
y : Real
Mover(x, y)
Aumentar(R)
Geralmente, funes so o nico meio de acesso as
atributos da classe!!
Dados privados
Funes membro
pblicas
08/05/2002 10
Exemplo (cont.)
Raio: Real
x : Real
y : Real
Mover(x, y)
Aumentar(R)
Crculo
Em C++ fica
Definio para dados privados
Definio para dados pblicos
08/05/2002 11
Forma Geral de class
class nome-da-classe {
private:
dados e funes privadas
public:
dados e funes pblicas
};
08/05/2002 12
Cdigo Completo da classe Circulo
:: Operador de escopo de resoluo
08/05/2002 13
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 14
Exemplo Construtor/Destrutor
Declarao do
Construtor
Declarao do
destrutor
Ao do
Construtor
Construtor e Destrutor no
so chamados explicitamente
na funo principal!
08/05/2002 15
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 16
Exemplo: Pilha
Retirar
Elemento
Colocar
Elemento
Colocar
Elemento
Colocar
Elemento
Colocar
Elemento
Colocar
Elemento
08/05/2002 17
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 18
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 19
Alocao Dinmica de Memria
- Para vetores e matrizes:
08/05/2002 20
Exemplo Pilha: Completo
- Situao: Criar uma pilha com capacidade n (n informado pelo
usurio).
08/05/2002 21
Exemplo Fila: Completo
- Situao: Criar uma fila com capacidade n (n informado pelo
usurio).
1
2
3
3
1
2
2
1
Tempo
Colocar elemento
Colocar elemento
Retirar elemento
Colocar elemento
08/05/2002 22
Herana
- 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

Vous aimerez peut-être aussi