Javaの静的メソッドと非静的メソッドの違い
Javaメソッドは、操作を実行するためにグループ化されたステートメントのコレクションです。たとえば、System.out.println()メソッドを呼び出すと、システムは実際にいくつかのステートメントを実行して、コンソールにメッセージを表示します。
静的メソッド
静的メソッドはクラスメソッドとも呼ばれ、クラスのオブジェクト全体で共通であり、このメソッドにはクラス名を使用してアクセスすることもできます。
非静的メソッド
静的でないクラスのメソッドは、非静的メソッドまたはインスタンスメソッドと呼ばれます。
以下は、静的メソッドと非静的メソッドの重要な違いです。
Sr。いいえ。 | キー | ||
---|---|---|---|
1 | アクセス | 静的メソッドは静的メンバーにのみアクセスでき、非静的メンバーにはアクセスできません。 | 非静的メソッドは、静的メンバーと非静的メンバーの両方にアクセスできます。 |
2 | バインド | 静的メソッドは、準拠時間バインディングまたは早期バインディングを使用します。 | 非静的メソッドは、実行時バインディングまたは動的バインディングを使用します。 |
3 | オーバーライド | 静的メソッドは、コンパイル時のバインディングでオーバーライドできません。 | 非静的メソッドは動的バインディングでオーバーライドできます。 |
4 | メモリ割り当て | 静的メソッドは占有するスペースが少なく、メモリ割り当ては1回だけ行われます。 | 非静的メソッドはより多くのスペースを占める可能性があります。メモリの割り当ては、メソッドが呼び出されたときに発生し、メソッドが完全に実行されるとメモリの割り当てが解除されます。 |
5 | キーワード | 静的メソッドはstaticキーワードを使用して宣言されます。 | 通常の方法では、特別なキーワードは必要ありません。 |
静的メソッドと非静的メソッドの例
JavaTester.java
public class JavaTester { public static void main(String args[]) { Tiger.roar(); Tiger tiger = new Tiger(); tiger.eat(); } } class Tiger { public void eat(){ System.out.println("Tiger eats"); } public static void roar(){ System.out.println("Tiger roars"); } }
出力
Tiger roars Tiger eats
-
Javaのpaint()メソッドとrepaint()メソッドの違いは何ですか?
Paint()とRepaint() paint(): このメソッドは、このコンポーネントをペイントするための命令を保持します。 Java Swingでは、paintが paintBorder()を呼び出すときに、paint()メソッドの代わりにpaintComponent()メソッドを変更できます。 paintComponent() およびpaintChildren() メソッド。このメソッドを直接呼び出すことはできません。代わりに、 repaint()を呼び出すことができます。 。 repaint() :このメソッドはオーバーライドできません。 paint()を制御します サイ
-
Javaでの静的バインディングと動的バインディング
はい!コンパイラは、メソッドの実行に使用するオブジェクトを知っている場合、参照をオブジェクトに静的にバインドできます。たとえば、静的変数、プライベート変数、final変数は静的バインディングを使用しています。一方、オブジェクトの識別が実行時に行われる場合は、動的バインディングが使用されます。メソッドのオーバーライドは動的バインディングの場合です。 一方、メソッドのオーバーロードは静的バインディングの場合です。