Java が純粋なオブジェクト指向かどうか知りたいです。例を挙げて説明してください。私はそれをゴーグルしましたが、正確な答えを見つけることができませんでした。
4 に答える
Java が純粋にオブジェクト指向であるかどうかについては、多くの議論があります。Java にはラッパー クラスがあるため、純粋なオブジェクト指向言語と見なす必要があります。Integer
したがって、Float
などの代わりに などint
を使用できますfloat
(合計 8 つのプリミティブ型があります)。
しかし、Java にはこれら 8 つのプリミティブ型があるため、Java は純粋なオブジェクト指向ではないと批評家は言うでしょう。
For example it contains 8 primitive data types.
For a language to be "pure oo" everything should exists as objects, but int
, float
, char
, .. etc are not objects in Java.
Here's an example:
int i = 42;
System.err.println(i.toString());
Java は OOP 言語であり、純粋なオブジェクト ベースのプログラミング言語ではありません。多くの言語はオブジェクト指向です。プログラミング言語が純粋なオブジェクト指向であるために満たすべき 7 つの性質があります。彼らです:
- カプセル化/データ隠蔽
- 継承
- ポリモーフィズム
- 抽象化
- 定義済みの型はすべてオブジェクトです
- すべての操作は、オブジェクトにメッセージを送信することによって実行されます
- すべてのユーザー定義型はオブジェクトです。
Javaは、オブジェクトではないint、byte、longなどのプリミティブデータ型の使用をサポートしているためではありません。プリミティブ型がなく、boolean、int、およびメソッドがすべてオブジェクトである Smalltalk のような純粋な OOP 言語とは対照的です。
この回答はhttp://wiki.answers.com/Q/Why_is_Java_not_a_pure_OOP_Languageから取得したものです
いいえ、プリミティブなデータ型を持っているため、完全にオブジェクト指向ではないと言えます。SmalltalkはJava よりも純粋なオブジェクト指向と見なすことができると思います。
ウィキから直接
Smalltalk is a "pure" object-oriented programming language, meaning that, unlike Java and C++, there is no difference between values which are objects and values which are primitive types. In Smalltalk, primitive values such as integers, booleans and characters are also objects