>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] 
-------------------------------------------------------------------------

Responder a