prolog
Orientado a
Objetos
ISBN 0-321-19362-8
Introdução
2. Suportam OOP, porém têm a mesma aparência e usam estruturas básicas das velhas linguagens imperativas
– Eiffel (não é baseada diretamente em nenhuma linguagem anterior)
– Java (baseada em C++)
3. Linguagens OOP Puras
– Smalltalk
12-2
Programação Orientada a Objeto
• Evolução do Paradigma
1. Procedural - 1950s-1970s (abstração procedural)
2. Orientado a dados – inicio da década de 80
(abstração de dados )
3. OOP – final da década de 80 (herança e vinculação dinâmica)
12-3
Programação Orientada a Objeto
• Origens da Herança
– Observações da segunda metade dos anos
80 :
• Incrementos de produtividade podem vir do reuso • Infelizmente,
– ADTs são difíceis de reusar—não tão adequados
– Todos os ADTs são independentes se estão no mesmo nível
• Herança resolve ambos--reusam ADTs após pequenas mudanças e definem classes em uma hierarquia
12-4
Programação Orientada a Objeto
• Definições OOP :
– ADTs são chamadas classes
– Instâncias das classes são chamados objetos
– Uma classe que herda é chamada classe derivada ou subclasse
– A classe da qual uma outra classe herda é chamada classe pai ou superclasse
– Subprogramas que definem operações sobre objetos são chamados métodos
12-5
Programação Orientada a Objeto
• Definições OOP (cont):
– Chamadas aos métodos são denominadas mensagens – A coleção inteira de métodos de um objeto é chamada de seu protocolo de mensagem ou interface de mensagem
– Mensagens têm duas partes—o nome do método e o objeto de destino
– No caso mais simples, uma classe herda todas as entidades de seu pai
12-6
Programação Orientada a Objeto
• No caso mais simples, uma classe herda todas as entidades (variáveis e métodos) de sua superclasse. • Além de herdar métodos tal como são, uma classe pode modificar um método herdado
– O novo sobrepõe (override) o herdado
– O método no pai é sobreposto