Essays.club - TCC, Modelos de monografias, Trabalhos de universidades, Ensaios, Bibliografias
Pesquisar

Programação Orientada a Objetos

Por:   •  14/3/2018  •  803 Palavras (4 Páginas)  •  426 Visualizações

Página 1 de 4

...

Ex: professor é uma pessoa

aluno é uma pessoa

[pic 1]

[pic 2]

classe base

super classe[pic 3]

classe derivada [pic 4][pic 5][pic 6][pic 7][pic 8][pic 9][pic 10][pic 11][pic 12]

Uma classe derivada pode acrescentar novos atributos e métodos, e também modificar os métodos herdados, com o propósito de oferecer um comportamento mais especifico aos objetos da classe herdada.

um método modificado tem o mesmo nome e protocolo do herdado e sobrepoe-se coverride a versão herdada.

Class Pessoa{

string nome;

void apresentar(){

print (nome);

}

}

Class Aluno extends Pessoa{

int ra;

}

Pessoa p1 = new Pessoa()

p1.nome = "joao"// má pratica [encapsulamento]

p1.apresentar();

Aluno p2 = new Aluno();

p2.nome ="ana"

p2.ra = 12345;

p2.apresentar();

Herança simples

- unica classe pai

- arvore de derivação

[pic 13]

Heranca multipla

- n classes pai

- grafo de derivação

[pic 14]

O projeto de um sistema orientados a objetos começa pela definição de uma hierarquia de classes que descreve as relações dos conceitos envolvidos no domínio do problema.

classes abstratas

- não podem ser instanciadas

interfaces

- classes 100% abstratas

- não possuem atributos

Class Pessoa{

string nome;

void apresentar(){

apresentar();

}

}

Class aluno extends Pessoa{

int ra;

}

Pessoa p1 = New Pessaa();

aluno p2 = New aluno();

POLIMORFISMO

A classe-pai pode definir um método que será sobreposto por suas subclasses.

As operações definidas por tais métodos são similares mas devem ser personalizadas para cada classe da hierarquia.

Diferentes tipos de objetos podem responder a uma mensagem de maneiras diferentes.

Formas de polimorfismo.

- Redefinição (override) mesma função mas comportamentos distintos requer herança.

- Sobrecarga (overload) nome de uma função usado mais de uma vez, com parâmetros distintos não requer herança.

Vinculação dinâmica

A determinação do serviço chamado somente pode ser realizada em tempo de execução.

Class animal{

void expressar(){

print("generico");

}

}

Class cao extends animal{

void expressar(){

print("latido")

}

}

Class boi extends animal{

void expressar(){

print ("mugido")

}

}

animal x = new animal();

x.expressar();

boi b = new boi();

b.expressar();

modelo o.o puro

Tudo são classes, inclusive os tipos primitivos e operacoes aritmeticas.

Vantagens: uniformidade

Desvantagens: qualquer computação por mais simples, tem que ser realizada através de mensagens.

Ex:

Modelos alternativos

Mantém o modelo imperativo e adiciona o modelo objeto.

Vantagens: flexibilidade

Desvantagens: linguagem maior e mistura de tipos.

Ex: java c++, c, object, pascal.

C++

- Capacidade retrograda heranças multiplas

- Tipos primitivos e classes

- Procedural + orientadas a objetos

- Alocação de objetos estática e dinâmica (new)

- Deslocação explicita

Java

- Tipos primitivos

...

Baixar como  txt (6.7 Kb)   pdf (56.7 Kb)   docx (18.6 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no Essays.club