2

Ruby のように、Java のすべてがオブジェクトですか?

書籍、チュートリアル、すべてに「Ruby のすべてはオブジェクト」と書かれていますが、それはオブジェクト指向言語では一般的ですか?

オブジェクトもすべて Java なのか、それともオブジェクト指向は単なるプログラミングのパラダイムなのか。

4

1 に答える 1

10

いいえ。

に関する限り、 Javaの「プリミティブ型」(、、、intなど)はオブジェクトではありません。Rubyではそれらはオブジェクトです。(一部のRuby実装では、fixnumはパフォーマンスのために内部的には「値型」ですが、外部的にはメソッドを持つ「実際の」オブジェクトとして扱うことができます)。boolfloat

さらに、クラスなど、JavaのオブジェクトではないRubyのオブジェクトであるものもあります。(実際、Javaはこれらも公開Classしますが、別の意味で公開されます。)

変数メソッドなど、どちらの言語でもオブジェクトではないものがいくつかあります。(Rubyでは、特定のメソッドを表すオブジェクトを簡単に取得できます。)

とにかく、全体像は、オブジェクト指向プログラミングパラダイムが、データとそのデータに対する操作をグループ化する方法を提供するということだと思います。(これは通常、JavaやRubyのようにインスタンスメソッドを介して実行されますが、複数のディスパッチや、「非OO」であるHaskellなどの他の言語を介して実行される場合もあり、このタスクの代替アプローチを提供します。)

多くの場合、「オブジェクト指向」の定義には、「継承」、「カプセル化」、「抽象化」、およびその他の愚かな教科書の用語も含まれますが、さまざまな「オブジェクト指向」言語の使用法とパターンは大きく異なり、「非オブジェクト指向」で見られるものと重複する可能性があります。オブジェクト指向"言語;-)

于 2012-04-15T01:13:32.260 に答える