Java では、メソッドはクラスとオブジェクトの動作を定義します。静的メソッドとインスタンス メソッドの違いを理解することは、クリーンで効率的なコードを作成するために不可欠です。
JavaScript文字列置換
静的メソッドとは何ですか?
あ 静的メソッド 特定のオブジェクトではなくクラスに属します。
- クラスのインスタンスを作成せずに呼び出すことができます。
- 静的メソッドはオブジェクト固有であるため、静的メンバー (データとメソッド) にのみアクセスでき、非静的メンバーにはアクセスできません。
import java.io.*; class Geeks { // static method public static void greet() { System.out.println('Hello Geek!'); } public static void main(String[] args) { // calling the method directily greet(); // using the class name Geeks.greet(); } }
出力
Hello Geek! Hello Geek!
説明: 上の例は、Geeks クラス内の静的メソッドgreet() を示しています。静的メソッドはオブジェクトを作成せずに呼び出すことができます。メインメソッドでは、Geek クラスのオブジェクトを作成せず、Geeks というクラス名でメソッドを直接呼び出し、出力を出力しています。
インスタンスメソッドとは何ですか?
アン インスタンスメソッド オブジェクトに属します。
- 呼び出すクラスのインスタンスを作成する必要があります。
- インスタンス変数、他のインスタンス メソッド、およびクラスの静的メンバーにアクセスできます。
- にアクセスできる
this参照 これは現在のオブジェクトを指します。
import java.io.*; class Test { String n = ''; // Instance method public void test(String n) { this.n = n; } } class Geeks { public static void main(String[] args) { // create an instance of the class Test t = new Test(); // calling an instance method in the class 'Geeks' t.test('GeeksforGeeks'); System.out.println(t.n); } }
出力
GeeksforGeeks
説明: 上の例は、Java でインスタンス メソッドを使用する方法を示しています。 Test クラスのオブジェクトを作成し、テスト メソッドを呼び出して値を設定し、出力を出力しています。
静的メソッドとインスタンスメソッドの違い
次の表に、 Java の静的メソッドとインスタンス メソッドの主な違い。
特徴 | 静的メソッド | インスタンスメソッド |
|---|---|---|
意味 | static キーワードを使用して作成され、オブジェクトを作成せずに取得されます。 | そのクラスのオブジェクトを呼び出す必要があります。 |
アクセス | 静的変数とメソッドのみにアクセスしてください。 | 静的メンバーとインスタンス メンバーの両方にアクセスできます。 |
| は使用できません これ 静的メソッド内のキーワード。 | this キーワードを使用して現在のオブジェクトを参照できます。 |
オーバーライド | 実行時ポリモーフィズムをサポートしません | ランタイムポリモーフィズムをサポート |
メモリの割り当て | クラスごとに 1 回ロードされる | 各オブジェクトには独自のコピーがあります |