Paradigmas de Linguagens de Programação Paradigma Orientado a Objetos Aula #6 (CopyLeft)2009 - Ismar Frango ismar@mackenzi...
Paradigma Orientado a Objetos try { web.throw( );} catch  (RunOutOfWebFluidException e) { e.sendMessage(UncleMay.getInstan...
<ul><li>Simula I  (1962-65) e  Simula 67  (1967) foram as duas primeiras linguagens a implementarem boa parte dos conceito...
<ul><li>Alan Kay, Adele Goldberg e colegas na Xerox PARC estenderam as idéias de Simula com  Smalltalk  (1970’s) </li></ul...
 
O.O - Fundamentos http://whysmalltalk.com/
O.O - Fundamentos http://whysmalltalk.com/
O.O - Fundamentos http://whysmalltalk.com/
O.O - Fundamentos http://whysmalltalk.com/
O.O - Fundamentos http://whysmalltalk.com/
O.O - Fundamentos http://whysmalltalk.com/
Categorias de polimorfismo Cardelli e Wegner Πολλοί  +  μορφή
Polimorfismo Universal Paramétrico Uma função ou uma classe que siga o polimorfismo universal paramétrico tem um parâmetro...
Polimorfismo ad-hoc Um mesmo nome é utilizado para designar diferentes funções e o contexto é usado para decidir qual funç...
Sobrecarga ou coerção? 3 + 4 3.0 + 4 3 + 4.0 3.0 + 4.0 <ul><li>O operador + tem quatro significados sobrecarregados, uma p...
Upcoming SlideShare
Loading in …5
×

Paradigmas de Linguagens de Programacao - Aula #6

1,883 views
1,740 views

Published on

Paradigmas de Linguagens de Programacao
Aula #6
Prof. Ismar Frango

Published in: Education, Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,883
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
108
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Paradigmas de Linguagens de Programacao - Aula #6

  1. 1. Paradigmas de Linguagens de Programação Paradigma Orientado a Objetos Aula #6 (CopyLeft)2009 - Ismar Frango ismar@mackenzie.br
  2. 2. Paradigma Orientado a Objetos try { web.throw( );} catch (RunOutOfWebFluidException e) { e.sendMessage(UncleMay.getInstance()); this.fall(); System.exit(-1); }
  3. 3. <ul><li>Simula I (1962-65) e Simula 67 (1967) foram as duas primeiras linguagens a implementarem boa parte dos conceitos que viriam a ser conhecidos posteriormente como Orientação a Objetos (objetos, classes, subclasses, late binding). (Norwegian Computing Center, Oslo, Noruega - Ole-Johan Dahl e Kristen Nygaard </li></ul>Origens The best way to predict the future is to invent it. Alan Kay
  4. 4. <ul><li>Alan Kay, Adele Goldberg e colegas na Xerox PARC estenderam as idéias de Simula com Smalltalk (1970’s) </li></ul><ul><ul><li>Kay cunha o termo ”orientação a objetos” </li></ul></ul><ul><ul><li>Smalltalk é a primeira linguagem totalmente orientada a objetos . </li></ul></ul>Origens
  5. 6. O.O - Fundamentos http://whysmalltalk.com/
  6. 7. O.O - Fundamentos http://whysmalltalk.com/
  7. 8. O.O - Fundamentos http://whysmalltalk.com/
  8. 9. O.O - Fundamentos http://whysmalltalk.com/
  9. 10. O.O - Fundamentos http://whysmalltalk.com/
  10. 11. O.O - Fundamentos http://whysmalltalk.com/
  11. 12. Categorias de polimorfismo Cardelli e Wegner Πολλοί + μορφή
  12. 13. Polimorfismo Universal Paramétrico Uma função ou uma classe que siga o polimorfismo universal paramétrico tem um parâmetro de tipo (implícito ou explícito), que determina o tipo de argumento para cada aplicação dessa função/classe. Inclusão Um objeto pode ser visto como pertencendo a diferentes classes que não precisam ser disjuntas List < > Animal
  13. 14. Polimorfismo ad-hoc Um mesmo nome é utilizado para designar diferentes funções e o contexto é usado para decidir qual função é denotada por uma instância específica do nome. Sobrecarga Coerção Operação semântica que é necessária para converter um argumento para um tipo esperado por uma função, em uma situação que de outra forma resultaria em um erro de tipo. fugirDe( ) fugirDe( ) + = = ?
  14. 15. Sobrecarga ou coerção? 3 + 4 3.0 + 4 3 + 4.0 3.0 + 4.0 <ul><li>O operador + tem quatro significados sobrecarregados, uma para cada uma das quatro combinações de tipos de argumentos. </li></ul><ul><li>O operador + tem dois significados sobrecarregados, correspondentes à adição de inteiros e reais. Quando um dos argumentos é do tipo inteiro e o outro é do tipo real, então o argumento inteiro é convertido para o tipo real. </li></ul><ul><li>O operador + é definido apenas para adições reais, e os argumentos inteiros são sempre convertidos em reais. </li></ul>

×