Your SlideShare is downloading. ×
Paradigmas de Linguagens de Programacao - Aula #6
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Paradigmas de Linguagens de Programacao - Aula #6

1,617

Published on

Paradigmas de Linguagens de Programacao …

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,617
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
97
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Paradigmas de Linguagens de Programação Paradigma Orientado a Objetos Aula #6 (CopyLeft)2009 - Ismar Frango ismar@mackenzie.br
  • 2. Paradigma Orientado a Objetos try { web.throw( );} catch (RunOutOfWebFluidException e) { e.sendMessage(UncleMay.getInstance()); this.fall(); System.exit(-1); }
  • 3.
    • 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
    Origens The best way to predict the future is to invent it. Alan Kay
  • 4.
    • Alan Kay, Adele Goldberg e colegas na Xerox PARC estenderam as idéias de Simula com Smalltalk (1970’s)
      • Kay cunha o termo ”orientação a objetos”
      • Smalltalk é a primeira linguagem totalmente orientada a objetos .
    Origens
  • 5.  
  • 6. O.O - Fundamentos http://whysmalltalk.com/
  • 7. O.O - Fundamentos http://whysmalltalk.com/
  • 8. O.O - Fundamentos http://whysmalltalk.com/
  • 9. O.O - Fundamentos http://whysmalltalk.com/
  • 10. O.O - Fundamentos http://whysmalltalk.com/
  • 11. O.O - Fundamentos http://whysmalltalk.com/
  • 12. Categorias de polimorfismo Cardelli e Wegner Πολλοί + μορφή
  • 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
  • 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( ) + = = ?
  • 15. Sobrecarga ou coerção? 3 + 4 3.0 + 4 3 + 4.0 3.0 + 4.0
    • O operador + tem quatro significados sobrecarregados, uma para cada uma das quatro combinações de tipos de argumentos.
    • 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.
    • O operador + é definido apenas para adições reais, e os argumentos inteiros são sempre convertidos em reais.

×