>Hmm acho que n�o tem nada a ver com OO. Eu n�o conhe�o
>nenhuma linguagen OO que n�o tem primitivos.
Smalltalk nao possui tipos primitivos. Mesmos os dados mais
elementares, como numeros, booleanos e caracteres s�o objetos. Mas
Smalltalk suporta literais para esses objetos. Ou seja, pode-se usar
uma sintaxe como:
x := 4 - y * 5.
Cujo significado e':
1 - envie a mensagem "-" ao objeto "4" (classe Integer)
passando como argumento o objeto referenciado por "y" (que deve ser um
Number - por exemplo, um Float ou um Integer);
2 - envie a mensagem "*" ao objeto resultante da operacao
anterior passando como argumento o objeto "5" (classe Integer);
3 - armazene a referencia ao objeto resultante da operacao
anterior na variavel "x" (que pode ser um Float ou um Integer,
dependendo da classe do objeto referenciado por "y".
> ...
>Eu n�o posso me imaginar uma classe Float que n�o precisa de
>um primitivo float. Uma vez que em java n�o existe operator
>overloading, para addicionar um valor preciso de primitivos ou
>usar a classe Math para fazer isso, j� pensou:
>x += 1; ou
>Integer X = new Integer(0);
>X = Math.add(X, new Integer(1));
>ou Math.xor(X, new Integer(x));
>
>ae se isso deixa Java de ser 100% OO, prefiro linguagens n�o OO
Como visto no exemplo que forneci, para ser puramente OO, uma
linguagem nao precisa abrir mao de uma sintaxe concisa. Mas a pureza
de Smalltalk nao se deve somente a nao ter tipos nao-objetos. Em
Smalltalk, nao existem comandos de controle de fluxo como if, while e
for,
mas o mesmo resultado e' obtido usando apenas o mecanismo de envio
de mensagens a objetos (isso e' que e' OO!).
>> Smalltalk noa permite heranca multipla, mas eh considerada 100% OO,
alias, eh a mae de todas as linguagens OO.
>
>Deuuhh.. Acho que � engano. C++ � a m�e.
Apesar de se basear em ideias que ja' existiam em outras linguagens da
epoca, como Simula e LISP, Smalltalk e' realmente considerada a mae
das linguagens OO.
A origem de Smalltalk data do inicio dos anos 70 (criada por Alan Kay,
do Xerox PARC), embora a primeira versao amplamente difundida,
Smalltalk-80, tenha sido lancada somente em 1983.
C++ nasceu com o nome de "C with Classes" em 1982 (Bjarne Stroustrup,
AT&T Bell Labs). Entre 1983/1984, "C with Classes" foi remodelada,
resultando entao em C++ (disponibilizada ao grande publico em 1985),
que foi a primeira linguagem OO a atingir larga utilizacao.
Fontes:
- The Annotated C++ Reference Manual (1990), Bjarne Stroustrup &
Margaret Ellis.
- Object-Oriented Software (1990), Ann L. Winblad & outros
- Object-Oriented Modeling and Design (1991), James Rumbaugh &
outros.
Falou,
Rafael
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------