Java e Ruby: “tudo é um object” no OO?

Tudo em Java é um object, do jeito que está em Ruby?

Livros, tutoriais, tudo indica “tudo em Ruby é um object”, mas isso é comum para linguagens orientadas a objects?

Tudo o que é um object é Java também, ou é object orientado apenas por um paradigma de programação, e isso não significa que tudo é ou é avaliado para um object?

Não.

Quanto aos valores , os “tipos primitivos” ( int , bool , float , etc.) em Java não são objects. Em Ruby eles são objects. (Em algumas implementações Ruby os fixnums são “tipos de valor” internamente para desempenho, mas externamente eles são tratáveis ​​como objects “reais” que possuem methods).

Além disso, há outras coisas que são objects no Ruby que não são objects em Java, como classs. (Na verdade, o Java também os expõe como Class , mas em um sentido diferente.)

Existem algumas coisas que não são objects em qualquer idioma, como variables e methods . (Embora no Ruby seja fácil obter um object que represente um determinado método.)

De qualquer forma, acho que o quadro maior é que o paradigma de programação Orientado a Objetos apresenta uma maneira de agrupar dados e operações em tais dados. (Isso geralmente é feito através de methods de instância , como em Java e Ruby, embora também possa ser feito por meio de vários dispatch e outras linguagens, como o Haskell, que é “não-OO”, oferecem abordagens alternativas para essa tarefa.)

Muitas vezes, a definição de “OO” também inclui “inheritance”, “encapsulamento”, “abstração” e outros termos de livro didático, mas o uso e padrões de diferentes linguagens “OO” podem variar muito e se sobrepõem aos encontrados em “não”. OO “idiomas 😉