Paradigmas de Linguagens de Programacao- Aula #8
-
Upload
ismarfrango -
Category
Education
-
view
1.061 -
download
3
description
Transcript of Paradigmas de Linguagens de Programacao- Aula #8
![Page 1: Paradigmas de Linguagens de Programacao- Aula #8](https://reader035.fdocument.pub/reader035/viewer/2022062319/5562fbf0d8b42a62598b4b76/html5/thumbnails/1.jpg)
Paradigmas de Linguagens de Programação
Paradigma Orientado a ObjetosAula #8
(CopyLeft)2010 - Ismar Frango [email protected]
![Page 2: Paradigmas de Linguagens de Programacao- Aula #8](https://reader035.fdocument.pub/reader035/viewer/2022062319/5562fbf0d8b42a62598b4b76/html5/thumbnails/2.jpg)
(More) Small talk ‘bout polymorphism...
PUI
Um objeto pode ser visto como pertencendo a diferentes classes que não precisam ser disjuntas
Animal
Polimorfismo Universal por Inclusão
Consequências: necessidade de herança, possibilidade de sobreposição, late binding...
![Page 3: Paradigmas de Linguagens de Programacao- Aula #8](https://reader035.fdocument.pub/reader035/viewer/2022062319/5562fbf0d8b42a62598b4b76/html5/thumbnails/3.jpg)
Vtables
http://www.learncpp.com/cpp-tutorial/125-the-virtual-table/
![Page 4: Paradigmas de Linguagens de Programacao- Aula #8](https://reader035.fdocument.pub/reader035/viewer/2022062319/5562fbf0d8b42a62598b4b76/html5/thumbnails/4.jpg)
Vtables (cont.)
cClass obj (D1)
__vptr
pClass ptr (Base)
![Page 5: Paradigmas de Linguagens de Programacao- Aula #8](https://reader035.fdocument.pub/reader035/viewer/2022062319/5562fbf0d8b42a62598b4b76/html5/thumbnails/5.jpg)
“People think of security as a noun, something you go buy. In reality, it's an abstract concept like happiness. Openness is unbelievably helpful to security.”
James Gosling
Polimorfismo Universal Paramétrico
P.U.P.
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.
List < >
![Page 6: Paradigmas de Linguagens de Programacao- Aula #8](https://reader035.fdocument.pub/reader035/viewer/2022062319/5562fbf0d8b42a62598b4b76/html5/thumbnails/6.jpg)
C++: template function members
Definição da template pelo programador
Chamada de função
Instanciação de função pelo pré-processador
Algo que, neste caso, uma macro faria
![Page 7: Paradigmas de Linguagens de Programacao- Aula #8](https://reader035.fdocument.pub/reader035/viewer/2022062319/5562fbf0d8b42a62598b4b76/html5/thumbnails/7.jpg)
Java: Template methods
?
?
![Page 8: Paradigmas de Linguagens de Programacao- Aula #8](https://reader035.fdocument.pub/reader035/viewer/2022062319/5562fbf0d8b42a62598b4b76/html5/thumbnails/8.jpg)
Java: Generics e autoboxing
?
![Page 9: Paradigmas de Linguagens de Programacao- Aula #8](https://reader035.fdocument.pub/reader035/viewer/2022062319/5562fbf0d8b42a62598b4b76/html5/thumbnails/9.jpg)
Java: Generics & Type Erasure
?
?