2017-09-12 3 views
-6

私はKotlinを学んでいます。私が知っているJavaの背景を持つJavaは純粋なオブジェクト指向言語です。すべてが主要な機能であってもクラス内になければなりません。Kotlinの言語の種類は何ですか?純粋なOOPまたは機能

だからこそ私はKotlinが真のオブジェクト指向言語であると思っています。 functionlプログラムをKotlinで書くことができるためです。

package functions 

fun sayHello(name: String): String { 
    val personName = name 
    return "hello $personName" 
} 
fun main(args: Array<String>) { 
    println(sayHello("Netra")) 
} 
+4

私はあなた自身の質問に答えたと思います。それはどちらでもありません。純粋にオブジェクト指向ではなく、純粋に機能的ではありません。 –

+0

"機能的な"プログラムの例は、Javaで静的メソッドで記述することもできます。 –

+2

私はJavaが「純粋なオブジェクト指向言語」ではないと主張します。 – marstran

答えて

3

実際、ほとんどの言語アナリストは、Javaを純粋にオブジェクト指向言語とみなしません。クラスに入れる必要があるすべてのコードは良いテストではなく、より良いテストはオブジェクトの言語のすべてです。 Javaでは、多くの言語要素、非常に注目すべきメソッドと関数(関数は長時間欠けていましたが最近lambdaを介して追加されました)はオブジェクトとして利用できませんでした。

JavaはOOでJavaの欠陥の多くを修正しますが、Java自体もこれらの欠陥を緩やかに修正しています。しかし、一般的に、KotlinはJavaよりも「OO」と考えられ、主に過去のエラーを修正できる新しいデザインのメリットと言えるでしょう。

LambdaでJavaで可能なように、関数を書くことができるようになると、 'アンチオブジェクト指向'ではなく、関数自体がファーストクラスのオブジェクトである可能性があります。関数を追加することにより、JavaはあまりOOにはなりません。実際、Javaは徐々に徐々にOO化しています。 JavaのOOは?

関数型プログラミングをサポートすることは、言語「非oo」を作成しません。スカラーを考える(または研究する)。

機能プログラミングはOOより古くても古いかもしれませんが、最近は普及しており、これは新しい言語であるより多くのFP機能を反映しています。言語は「純粋な」FPではなく、「印刷」ステートメントでさえ副作用があります。

Kotlinは両方のイディオムをサポートしていますが、Javaよりも多くのOIをサポートしていますが、より多くの専用FP言語よりも少ないFPと見なされます。時間の経過とともに、より多くのFP機能が追加される可能性があります。 OOに関してのJavaのソースのための参照 の

-----加えて、私は3つのエディション達しDeveloping Java Softwareの共著者、他の資格情報のうち、権威としてDr Russel Winderを示唆しています。声明で1時40分で、スライドで1つの参照、see this videoについて

Javaは本当にオブジェクト指向されていない1990年代の命令型言語です。

Javaの専門家として認められているように、Russelのビデオと他のプレゼンテーションの両方で、この見解についてさらに説明しています。このビューは他の多くのJava専門家によっても表現されていますが、参考文献を追加することもできますが、この例題を追加するにはあまりに時間がかかりすぎます。

+0

もし私が特定の信頼できるリソースに私を導くことができれば、それは助けになるでしょう – imGs

+1

私は元の投稿に特定の信頼できる情報源をコメントよりもリンク先の単語として追加しました。 – innov8

関連する問題