2017-11-21 7 views
-5

私は、Javaには宣言できるクラス以外の機能があるのですか? method to be staticを宣言(同様に、メインクラスの前に) これは私がC++とJSで行うことができるものである、などJavaには通常の機能がありますか?

+3

[なぜJavaでは、関数定義がクラス外に存在することができないのですか?](https://softwareengineering.stackexchange.com/questions/185109/why-java-does-not-allow-function-definitions-to存在する - クラスの外にある) – azurefrog

答えて

1

staticメソッド

は、非オブジェクト指向ます。そのスコープは、そのクラスのインスタンスの範囲外です。インスタンスではなく、クラス名Person.doSomethingによって呼び出されます。

class method」とよく呼ばれますが、それは私の心に誤った名前のようです。その名前は存在しないオブジェクト指向を示唆しています。 Javaには単に「単なる関数」を格納する場所がないため、そのような関数はクラスに固定されます。私はそれらを孤立したコードとして、他にどこに住んでいなくてもないと思います。一部の人々は、非オブジェクト指向コードの明示的な所有者がより良くなっていたJavaでは、この配置を設計上の選択肢が貧弱だと考えています。

クラスメソッドは、オブジェクトの動作ではないため、「単なる関数」と考えることができます。

ラムダ

のJava 8以降あなたは私たちがデータを渡すのと同じ方法で実行可能ファイルのチャンクを渡すlambda expressionsをサポートしています。これはfunctional programmingと呼ばれ、object-oriented programmingとは異なります。

これは「単なる機能」のようなものですが、そのスコープにはその定義クラス内の要素が含まれています。

関連する問題