ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTO
Suporte à Programação Orientada a Objetos
1. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Suporte ` Programa¸˜o Orientada a Objetos
a ca
Cap´
ıtulo 12 - Livro do Sebesta
Helio Henrique L. C. Monte-Alto
Disciplina: Paradigma de Programa¸˜o Imperativa e Orientada
ca
a Objetos
2012
2. Suporte ` Programa¸˜o Orientada a Objetos
a ca
T´picos
o
1 Introdu¸˜o
ca
2 Quest˜es de projeto
o
Exclusividade de objetos
Subclasses s˜o subtipos?
a
Checagem de tipo e polimorfismo
Heran¸a unica e m´ltipla
c ´ u
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
3 Implementa¸˜o de Contru¸˜es Orientadas a Objeto
ca co
3. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Introdu¸˜o
ca
Introdu¸˜o
ca
Uma linguagem OO deve prover suporte a trˆs caracter´
e ısticas:
Tipos abstratos de dados
Heran¸a
c
Vincula¸˜o dinˆmica de chamadas de m´todos
ca a e
Primeira linguagem com suporte a OO: SIMULA 67
Linguagem base para uma linguagem puramente orientada a
objetos: Smalltalk
4. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Quest˜es de projeto
o
Exclusividade de objetos
Subclasses s˜o subtipos?
a
Checagem de tipo e Polimorfismo
Heran¸a unica e m´ltipla
c ´ u
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Vincula¸˜o dinˆmica e est´tica
ca a a
Classes aninhadas
Inicializa¸˜o de objetos
ca
5. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Exclusividade de objetos
Exclusividade de objetos
Vantagem
Elegˆncia e uniformidade da linguagem e seu uso.
a
6. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Exclusividade de objetos
Exclusividade de objetos
Vantagem
Elegˆncia e uniformidade da linguagem e seu uso.
a
Desvantagem
Opera¸˜es simples s˜o feitas por meio do processo de troca de
co a
mensagens
Mais lento do que no modelo imperativo
7. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Exclusividade de objetos
Exclusividade de objetos
Vantagem
Elegˆncia e uniformidade da linguagem e seu uso.
a
Desvantagem
Opera¸˜es simples s˜o feitas por meio do processo de troca de
co a
mensagens
Mais lento do que no modelo imperativo
Alternativa
Manter o modelo imperativo e adicionar o modelo OO
Pode deixar a linguagem confusa =⇒ Objetos e literais
misturados
Necessidade de wrapper classes
8. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Exclusividade de objetos
Exclusividade de objetos - Exemplos
Smalltalk e Ruby
Tudo ´ objeto.
e
As vari´veis n˜o tˆm tipo (typeless): todas s˜o referˆncias a
a a e a e
objetos.
9. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Exclusividade de objetos
Exclusividade de objetos - Exemplos
Smalltalk e Ruby
Tudo ´ objeto.
e
As vari´veis n˜o tˆm tipo (typeless): todas s˜o referˆncias a
a a e a e
objetos.
C++
Mant´m todas as constru¸˜es e tipos do C
e co
Retrocompatibilidade com C ⇒ Linguagem multiparadigma
10. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Exclusividade de objetos
Exclusividade de objetos - Exemplos
Java
Mant´m tipos escalares primitivos (int, boolean, char, etc)
e
Motivo: eficiˆncia
e
Problema: muitas classes, como ArrayList, podem conter
apenas objetos
Necess´rio o uso de wrappers
a
11. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos?
a
A rela¸˜o entre uma classe filha e uma classe m˜e sempre ´
ca a e
a ca ´
equivalente ` rela¸˜o ”E-UM”?
12. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos?
a
A rela¸˜o entre uma classe filha e uma classe m˜e sempre ´
ca a e
a ca ´
equivalente ` rela¸˜o ”E-UM”?
Objetos da classe filha devem possuir a interface da classe m˜e
a
13. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos?
a
A rela¸˜o entre uma classe filha e uma classe m˜e sempre ´
ca a e
a ca ´
equivalente ` rela¸˜o ”E-UM”?
Objetos da classe filha devem possuir a interface da classe m˜e
a
Um objeto da classe filha sempre pode ser substitu´ por um
ıdo
objeto da classe m˜e sem causar um erro de tipo
a
14. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos?
a
Rela¸˜o dos modos como uma subclasse pode diferir de sua
ca
superclasse:
Mudan¸a
c Deixa de ser sub-
tipo?
M´todos p´blicos adicionais
e u ˜
NAO
Menos m´todos (oculta¸˜o de
e ca SIM
m´todos p´blicos da superclasse)
e u
Tipos dos parˆmetros de m´todos
a e SIM
p´blicos diferentes
u
Tipo do retorno de m´todos p´blicos
e u SIM
diferentes
Corpo (implementa¸˜o) de m´todos
ca e ˜
NAO
diferentes
15. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos? - Exemplos
a
Smalltalk
Subclasses herdam todos os membros da superclasse, e n˜o
a
podem ocultar membros da superclasse
16. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos? - Exemplos
a
Smalltalk
Subclasses herdam todos os membros da superclasse, e n˜o
a
podem ocultar membros da superclasse
Logo, toda subclasse ´ subtipo
e
17. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos? - Exemplos
a
Smalltalk
Subclasses herdam todos os membros da superclasse, e n˜o
a
podem ocultar membros da superclasse
Logo, toda subclasse ´ subtipo
e
C++
Dois modos de deriva¸˜o: public e private
ca
Deriva¸˜o privada esconde membros p´blicos da superclasse
ca u
18. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos? - Exemplos
a
Smalltalk
Subclasses herdam todos os membros da superclasse, e n˜o
a
podem ocultar membros da superclasse
Logo, toda subclasse ´ subtipo
e
C++
Dois modos de deriva¸˜o: public e private
ca
Deriva¸˜o privada esconde membros p´blicos da superclasse
ca u
Logo, nem toda subclasse ´ subtipo
e
19. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos? - Exemplos
a
Java
N˜o ´ poss´ ocultar membros da superclasse
a e ıvel
20. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos? - Exemplos
a
Java
N˜o ´ poss´ ocultar membros da superclasse
a e ıvel
M´todos com mesmo nome mas tipos dos parˆmetros e tipo
e a
de retorno diferentes ⇒ m´todos sobrecarregados
e
21. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos? - Exemplos
a
Java
N˜o ´ poss´ ocultar membros da superclasse
a e ıvel
M´todos com mesmo nome mas tipos dos parˆmetros e tipo
e a
de retorno diferentes ⇒ m´todos sobrecarregados
e
Logo, toda subclasse ´ subtipo
e
22. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos? - Exemplos
a
Java
N˜o ´ poss´ ocultar membros da superclasse
a e ıvel
M´todos com mesmo nome mas tipos dos parˆmetros e tipo
e a
de retorno diferentes ⇒ m´todos sobrecarregados
e
Logo, toda subclasse ´ subtipo
e
Ruby
´
E poss´ mudar controles de acesso de membros da
ıvel
superclasse
23. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Subclasses s˜o subtipos?
a
Subclasses s˜o subtipos? - Exemplos
a
Java
N˜o ´ poss´ ocultar membros da superclasse
a e ıvel
M´todos com mesmo nome mas tipos dos parˆmetros e tipo
e a
de retorno diferentes ⇒ m´todos sobrecarregados
e
Logo, toda subclasse ´ subtipo
e
Ruby
´
E poss´ mudar controles de acesso de membros da
ıvel
superclasse
Logo ´ poss´ ocultar membros da superclasse, e portanto
e ıvel
subclasses nem sempre s˜o subtipos
a
24. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Checagem de tipo e polimorfismo
Checagem de tipo e polimorfismo
Polimorfismo
Vari´vel polim´rfica: pode referenciar objetos da classe m˜e
a o a
e das classes descendentes
25. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Checagem de tipo e polimorfismo
Checagem de tipo e polimorfismo
Polimorfismo
Vari´vel polim´rfica: pode referenciar objetos da classe m˜e
a o a
e das classes descendentes
Polimorfismo requer vincula¸˜o dinˆmica de m´todos
ca a e
26. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Checagem de tipo e polimorfismo
Checagem de tipo e polimorfismo
Polimorfismo
Vari´vel polim´rfica: pode referenciar objetos da classe m˜e
a o a
e das classes descendentes
Polimorfismo requer vincula¸˜o dinˆmica de m´todos
ca a e
Vincula¸˜o dinˆmica ⇒ Custo adicional em tempo de
ca a
execu¸˜o
ca
27. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Checagem de tipo e polimorfismo
Checagem de tipo e polimorfismo
Polimorfismo
Vari´vel polim´rfica: pode referenciar objetos da classe m˜e
a o a
e das classes descendentes
Polimorfismo requer vincula¸˜o dinˆmica de m´todos
ca a e
Vincula¸˜o dinˆmica ⇒ Custo adicional em tempo de
ca a
execu¸˜o
ca
Checagem dinˆmica de tipo
a
A classe real do objeto apontado pela vari´vel n˜o pode ser
a a
determinada em tempo de compila¸˜oca
Problemas:
Custo da checagem em tempo de execu¸˜o
ca
Atrasos na detec¸˜o de erros
ca
28. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Checagem de tipo e polimorfismo
Checagem de tipo e polimorfismo - Exemplos
Smalltalk e Ruby
Somente vincula¸˜o dinˆmica de m´todos
ca a e
´
Unica checagem de tipo: garantir que uma mensagem
encontra o m´todo correspondente
e
29. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Checagem de tipo e polimorfismo
Checagem de tipo e polimorfismo - Exemplos
Smalltalk e Ruby
Somente vincula¸˜o dinˆmica de m´todos
ca a e
´
Unica checagem de tipo: garantir que uma mensagem
encontra o m´todo correspondente
e
C++
Permite vincula¸˜o dinˆmica e est´tica
ca a a
M´todos definidos com virtual ⇒ vincula¸˜o dinˆmica
e ca a
30. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Checagem de tipo e polimorfismo
Checagem de tipo e polimorfismo - Exemplos
Smalltalk e Ruby
Somente vincula¸˜o dinˆmica de m´todos
ca a e
´
Unica checagem de tipo: garantir que uma mensagem
encontra o m´todo correspondente
e
C++
Permite vincula¸˜o dinˆmica e est´tica
ca a a
M´todos definidos com virtual ⇒ vincula¸˜o dinˆmica
e ca a
Java
Permite vincula¸˜o dinˆmica e est´tica
ca a a
M´todos definidos com final, static ou private ⇒
e
vincula¸˜o est´tica
ca a
31. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Heran¸a unica e m´ltipla
c ´ u
Heran¸a unica e m´ltipla
c ´ u
Heran¸a m´ltipla: uma classe pode herdar de mais de uma
c u
classe?
32. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Heran¸a unica e m´ltipla
c ´ u
Heran¸a unica e m´ltipla
c ´ u
Heran¸a m´ltipla: uma classe pode herdar de mais de uma
c u
classe?
Problemas
Complexidade
Se duas superclasses definem o mesmo m´todo, qual deles deve ser
e
chamado?
Heran¸a compartilhada (diamante)
c
Torna o projeto do programa mais complexo: muitas dependˆncias
e
no c´digo ⇒ manuten¸˜o mais dif´
o ca ıcil
33. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Heran¸a unica e m´ltipla
c ´ u
Heran¸a unica e m´ltipla
c ´ u
Heran¸a m´ltipla: uma classe pode herdar de mais de uma
c u
classe?
Problemas
Complexidade
Se duas superclasses definem o mesmo m´todo, qual deles deve ser
e
chamado?
Heran¸a compartilhada (diamante)
c
Torna o projeto do programa mais complexo: muitas dependˆncias
e
no c´digo ⇒ manuten¸˜o mais dif´
o ca ıcil
Eficiˆncia
e
Requer uma opera¸˜o a mais a cada chamada de m´todo
ca e
Custo adicional n˜o muito alto
a
34. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Heran¸a unica e m´ltipla
c ´ u
Heran¸a unica e m´ltipla
c ´ u
35. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Heran¸a unica e m´ltipla
c ´ u
Heran¸a unica e m´ltipla - Exemplos
c ´ u
Smalltalk
Somente heran¸a unica
c ´
36. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Heran¸a unica e m´ltipla
c ´ u
Heran¸a unica e m´ltipla - Exemplos
c ´ u
Smalltalk
Somente heran¸a unica
c ´
C++
Permite heran¸a m´ltipla
c u
Desambigua¸˜o de membros com mesmo nome ⇒ Operador
ca
de resolu¸˜o de escopo (::)
ca
37. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Heran¸a unica e m´ltipla
c ´ u
Heran¸a unica e m´ltipla - Exemplos
c ´ u
Java
Somente heran¸a unica
c ´
Interfaces
Podem ser usadas para simular heran¸a m´ltipla
c u
Proveem um tipo de polimorfismo (interfaces podem ser
tratadas como tipos)
A classe deve implementar todos os m´todos da interface ⇒
e
Evita os problemas de m´ltipla heran¸a
u c
Ruby
Somente heran¸a unica
c ´
M´dulos
o
Permite que uma classe herde todas as fun¸oes de um m´dulo
c˜ o
38. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
A aloca¸˜o deve ser apenas dinˆmica na heap (new), ou deve
ca a
permitir dinˆmica na pilha?
a
39. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
A aloca¸˜o deve ser apenas dinˆmica na heap (new), ou deve
ca a
permitir dinˆmica na pilha?
a
Apenas dinˆmica na heap
a
M´todo uniforme de cria¸˜o e acesso por meio de ponteiros
e ca
ou vari´veis de referˆncia
a e
Simplifica opera¸˜es de atribui¸˜o
co ca
Permite desreferenciamento impl´
ıcito
40. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
A aloca¸˜o deve ser apenas dinˆmica na heap (new), ou deve
ca a
permitir dinˆmica na pilha?
a
Apenas dinˆmica na heap
a
M´todo uniforme de cria¸˜o e acesso por meio de ponteiros
e ca
ou vari´veis de referˆncia
a e
Simplifica opera¸˜es de atribui¸˜o
co ca
Permite desreferenciamento impl´
ıcito
Com aloca¸˜o na pilha
ca
Dificulta atribui¸˜o de subtipos
ca
O espa¸o alocado na pilha para um tipo pode ser insuficiente
c
para um subtipo.
41. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Aloca¸˜o de objetos - Exemplos
ca
Smalltalk, Java e Ruby
Aloca¸˜o na heap apenas
ca
Desreferenciamento impl´
ıcito
42. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Aloca¸˜o de objetos - Exemplos
ca
Smalltalk, Java e Ruby
Aloca¸˜o na heap apenas
ca
Desreferenciamento impl´
ıcito
C++
Permite aloca¸˜o na pilha
ca
Desrefenciamento expl´
ıcito
43. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Desaloca¸˜o de objetos
ca
Desaloca¸˜o expl´
ca ıcita
O programador deve se preocupar com a desaloca¸˜o
ca
(delete)
Pode criar ponteiros / referˆncias pendurados
e
44. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Desaloca¸˜o de objetos
ca
Desaloca¸˜o expl´
ca ıcita
O programador deve se preocupar com a desaloca¸˜o
ca
(delete)
Pode criar ponteiros / referˆncias pendurados
e
Desaloca¸˜o impl´
ca ıcita
Requer algum mecanismo para desalocar automaticamente
45. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Desaloca¸˜o de objetos - Exemplos
ca
Smalltalk, Java e Ruby
Desaloca¸˜o impl´
ca ıcita
Coletor de lixo (garbage collector )
46. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Desaloca¸˜o de objetos - Exemplos
ca
Smalltalk, Java e Ruby
Desaloca¸˜o impl´
ca ıcita
Coletor de lixo (garbage collector )
Java
M´todo finalize(): permite destravar acesso a outros
e
recursos al´m da mem´ria quando coletor de lixo desaloca a
e o
mem´ria (Ex: arquivos em disco)
o
47. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Desaloca¸˜o de objetos - Exemplos
ca
Smalltalk, Java e Ruby
Desaloca¸˜o impl´
ca ıcita
Coletor de lixo (garbage collector )
Java
M´todo finalize(): permite destravar acesso a outros
e
recursos al´m da mem´ria quando coletor de lixo desaloca a
e o
mem´ria (Ex: arquivos em disco)
o
C++
Desaloca¸˜o expl´
ca ıcita
Permite defini¸˜o de destruidor
ca
Comando delete
48. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Classes aninhadas
Motiva¸˜o
ca
Oculta¸˜o de informa¸˜o
ca ca
Classe vis´ apenas dentro de outra classe
ıvel
49. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Classes aninhadas
Motiva¸˜o
ca
Oculta¸˜o de informa¸˜o
ca ca
Classe vis´ apenas dentro de outra classe
ıvel
Quest˜es
o
Quais membros da classe externa s˜o vis´
a ıveis ` classe
a
aninhada?
Quais membros da classe aninhada s˜o vis´
a ıveis ` classe
a
externa?
50. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Quest˜es de projeto
o
Aloca¸˜o e desaloca¸˜o de objetos
ca ca
Classes aninhadas - Exemplos
Java
Inner classes: classes aninhadas n˜o-est´ticas
a a
Classes aninhadas est´ticas
a
Classes anˆnimas
o
Classes aninhadas locais (dentro de um m´todo)
e
Tem acesso aos membros da classe externa e `s vari´veis locais
a a
declaradas com final
Membros da classe aninhada vis´
ıveis apenas dentro do m´todo
e
51. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Implementa¸˜o de Contru¸oes Orientadas a Objeto
ca c˜
Implementa¸˜o de Contru¸oes Orientadas a Objeto
ca c˜
Estrutura dos dados
Class instance record (CIR): similar aos registros (structs em
C, record em Pascal, etc.)
Constru´ em tempo de compila¸˜o
ıda ca
Subclasses: ´ a CIR da superclasse com as entradas para os
e
novos atributos anexadas ao final
52. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Implementa¸˜o de Contru¸oes Orientadas a Objeto
ca c˜
Implementa¸˜o de Contru¸oes Orientadas a Objeto
ca c˜
53. Suporte ` Programa¸˜o Orientada a Objetos
a ca
Implementa¸˜o de Contru¸oes Orientadas a Objeto
ca c˜
Tarefas
1 Considere as linguagens apresentadas como exemplo
(Smalltalk, Java, C++ e Ruby). Enumere os pr´s e contras
o
de cada linguagem. Tome em considera¸˜o a forma como as
ca
quest˜es de projeto s˜o implementadas. Considere tamb´m
o a e
quest˜es como desempenho, legibilidade e confiabilidade.
o