Académique Documents
Professionnel Documents
Culture Documents
Orientada à Objetos
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-”.
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:
* 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.
08/05/2002 7
Exemplo
Círculo
Círculo
Raio: Real
R
Abstração x : Real Classe
(x, y) y : Real
Mover(∆x, ∆y)
Aumentar(∆R)
Atributos
Operações
08/05/2002 8
Exemplo (cont.)
Dados privados
Mover(∆x, ∆y)
Círculo
Raio: Real
x : Real Raio: Real
x : Real Funções membro
y : Real
y : Real públicas
Mover(∆x, ∆y)
Aumentar(∆R)
Aumentar(∆R)
08/05/2002 9
Exemplo (cont.)
Definição para dados privados
Círculo
Raio: Real
x : Real Em C++ fica Definição para dados públicos
y : Real
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 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.
08/05/2002 13
Exemplo Construtor/Destrutor
Declaração do
Construtor
Declaração do
destrutor
08/05/2002 14
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;
08/05/2002 15
Exemplo: Pilha
Colocar Colocar
Retirar
Colocar Elemento Elemento
Elemento
Colocar Elemento
Elemento
Colocar
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!
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
08/05/2002 20
Exemplo Fila: Completo
- Situação: Criar uma fila com capacidade n (n informado pelo
usuário).
Colocar elemento
1
3 2 1 Colocar elemento
3 2 Retirar elemento
08/05/2002 21
Herança
- Classe Carro e Subclasse Ferrari
Set_Preco(Real: Preco)
Get_Preco( )
08/05/2002 22