Java で静的メソッドを使用する

Rashmi Patidar 2023年10月12日
Java で静的メソッドを使用する

Java では、static キーワードは、クラスのインスタンスをインスタンス化せずにメソッドまたは変数を呼び出します。インスタンス変数を作成する必要はありません。クラス名は、メンバー変数とメソッドの呼び出しに直接使用されます。

このようなパブリックメソッドの例は、main メソッドです。この関数は、このコマンドを呼び出すためにオブジェクトを必要としません。したがって、プログラムの実行はメインから始まります。

静的メソッドまたは変数は、オブジェクトではなくクラスに属します。静的メソッドを呼び出すためにクラスのインスタンスを作成する必要はありません。静的メンバーは、静的変数にアクセスして同じ変数の値を変更することもできます。

静的メソッド内のコードは変更される可能性が低くなります。さらに、静的メソッドはオーバーライドできません。コードは変更される可能性が低いため、関数で抽出する必要があります。

静的変数から得られる利点を以下に示します。

  1. 静的変数を使用すると、プログラムのパフォーマンスが向上します。それらが作成されると、必要に応じて直接注入されます。
  2. メソッド名と一緒に new キーワードを追加する必要がない場合、メソッド呼び出しが簡単になります。代わりに、クラス名はメソッドの呼び出しに慣れています。

以下は、Java での static の使用を示すプログラムです。

public class Main {
  public static void main(String[] args) {
    College clg = new College();
    clg.display();
    System.out.println(clg.clgName);
    System.out.println(College.getName());
  }
}

class College {
  static String name = "IJK";
  String clgName = "IIT";

  static String getName() {
    //        return clgName;
    return name;
  }

  public void display() {
    System.out.println("I am in College");
  }
}

上記のコードブロックでは、静的メソッドと静的変数の使用が存在します。

このコードは、StaticMethodRepresentation という名前のパブリックドライバークラスと非パブリック College クラスを作成します。大学のクラスには、静的メンバーと非静的メンバーの両方が含まれます。ドライバー関数は、new キーワードを使用して College クラスのインスタンスを作成しようとします。new キーワードは、College クラスのパブリックコンストラクターを呼び出します。

パブリックコンストラクターが定義されていないため、JVM はクラスのデフォルトコンストラクターを呼び出します。クラスインスタンスは、College クラスのパブリック display 関数を呼び出すために使用されます。それが呼び出され、存在する文字列を出力します。

同様に、そのクラスのインスタンスを使用して、そのメンバー変数にアクセスできます。ただし、静的関数にアクセスするために、新しいクラスインスタンスを作成する必要はありません。代わりに、クラス名を使用して呼び出すことができます。したがって、最後の print ステートメントでは、クラス名が静的関数を呼び出します。

関数定義には、コメント行があります。この行は、クラスの非静的メンバーにアクセスしようとします。それでも、static メンバーは静的メンバーにのみアクセスできます。したがって、それらにアクセスすることは不可能です。したがって、静的文字列が関数から返されます。

静的キーワードの使用法を示す上記のコードブロックの出力を以下に示します。

I am in College IIT IJK
著者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

関連記事 - Java Method