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 😉