Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaスタティック

Java静的キーワードの使用方法

Javaでクラスを操作している場合、通常、そのメンバーにアクセスする前に、クラスのインスタンスを作成する必要があります。ただし、クラスのインスタンスを作成せずにクラスメンバーを定義したい場合があります。

そこで登場するのがJavastaticキーワードです。Javastaticキーワードは、クラスのインスタンスを作成せずにアクセスできるクラスメンバーを定義するために使用されます。

このチュートリアルでは、例を使用して、Javastaticキーワードの基本とJavaプログラムでの使用方法について説明します。

Javaクラス

Javaでは、クラスはオブジェクトの青写真です。たとえば、OrderCoffeeというクラスには、注文、既存の注文の変更、注文への新しいアイテムの追加など、コーヒーの注文に関連するすべての機能を含めることができます。

次に、そのクラスのインスタンスであるオブジェクトを作成できます。たとえば、CoffeeOrder12というオブジェクトは、CoffeeOrderクラスのブループリントを使用して、個々のコーヒー注文のデータを格納できます。 CoffeeOrder12オブジェクトは、CoffeeOrderクラス内で宣言されたすべての関数とメソッドにアクセスできます。これらのアイデアの視覚的表現については、画像1を参照してください。

Javaスタティック

Javaクラスの基本について説明したので、次にJavastaticキーワードの調査に移ります。

Java静的メソッド

静的メソッドは、クラスメソッドとも呼ばれ、インスタンスではなくクラスに属するメソッドです。静的メソッドはクラスに属しているため、クラス自体からのみメソッドを呼び出すことができ、クラスのオブジェクトからは呼び出すことができません。

静的メソッドを呼び出すための構文は次のとおりです。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

Class.methodName();

これがどのように機能するかを確認するために例を見てみましょう。

コーヒーストアの注文を管理するプログラムを作成しているとします。コーヒーを注文するためのすべての関数を格納するCoffeeOrderというクラスを作成します。

新しい注文通知をバリスタのコンソールに印刷できるようにすることにしました。この新しい注文通知は、コーヒー注文オブジェクト内の他のコードに依存しないため、静的である必要があります。このタスクを実行するには、次のコードを使用できます。

class CoffeeOrder {
	int createOrder() {
		// Code here
		int orderNumber = 92;
		return orderNumber;
	}

	static void printOrder(int order) {
		System.out.println("Order #" + order + " order has been placed.");
	}
}

class Main {
	public static void main(String[] args) {
		CoffeeOrder order92 = new CoffeeOrder();

		int number = order92.createOrder();
		System.out.println("Order number: " + number);

		CoffeeOrder.printOrder(number);
	}
}

コードは次のようになります:

Order number: 92
Order #92 has been placed.

コードを段階的に分解してみましょう。まず、CoffeeOrderというクラスを宣言します。 CoffeeOrderには、createOrder()という2つのメソッドが含まれています。 およびprintOrder()

createOrder() は、注文を作成して注文番号を返す通常のメソッドです。 printOrder() は、新しい注文が行われたことをバリスタに通知するメッセージをコンソールに出力する静的メソッドです。

メインプログラムでは、order92というCoffeeOrderのオブジェクトを作成します。このオブジェクトは、注文番号92のデータを格納します。次に、createOrder()を使用します 注文番号を取得するメソッド。注文番号の前に注文番号:を付けて、コンソールに出力します。

createOrder()を呼び出すとき メソッドでは、order92.createOrder()を使用します 。これは、createOrder()が原因です は静的メソッドではないため、オブジェクトを操作するときにアクセスできます。

メインコードの最後に、CoffeeOrder.printOrder()を使用します 注文番号[注文番号]が注文されたことを示すメッセージを印刷します。コンソールに。このメッセージでは、order number 特定の注文に関連付けられている番号と同じです。 printOrder() は静的メソッドであるため、CoffeeOrder(クラス)を使用してアクセスする必要があります。

order92.printOrder()を使用しようとした場合 (これはクラスのインスタンスを呼び出します)createOrder()を使用したときと同じように 方法では、警告を出すことができます。

Java静的変数

Javaのstaticキーワードを使用して、静的インスタンス変数を作成することもできます。静的変数はクラスに属し、プログラムの実行の開始時に1回だけ初期化されます。

静的変数はオブジェクトに属していません。これは、それらにアクセスするには、関連するクラスを参照する必要があることを意味します。 Javaで静的変数を宣言するための構文は次のとおりです。

static String COFFEE_NAME = "Espresso";

この例では、COFFEE_NAMEという静的変数を宣言し、それに文字列値Espressoを割り当てました。

使用中のJava静的変数を紹介する例を見ていきましょう。

コーヒーショップで注文を処理するプログラムを作成しているとします。このプログラムでは、勤務中のバリスタの数を保存する必要があります。注文が作成されると、プログラムはその注文を、その注文を準備するバリスタの名前に関連付ける必要があります。

このコードを使用して、コーヒー処理プログラムを作成できます。

class CoffeeOrder {
	int baristasOnDuty = 2;
	static String name = "Hannah Johnson";

	public static void main(String[] args) {
		CoffeeOrder order111 = new CoffeeOrder();

		System.out.println("Baristas on duty: " + baristasOnDuty);
		System.out.println("Assigned barista: " + order111.name);
	}
}

コードは次のようになります:

Baristas on duty: 2
Assigned barista: Hannah Johnson

このコードでは、次の2つの変数を宣言します。

  • baristasOnDuty。これは標準変数であり、クラス全体でアクセスできることを意味します。
  • 名前。これは静的変数です。つまり、値を取得するには、関連付けられているオブジェクトを参照する必要があります。

メインプログラムでは、CoffeeOrderクラスのインスタンスを作成し、それをorder111と呼びます。次に、メッセージBaristas on Duty:に続いて、baristasOnDuty変数の内容を出力します。これは標準変数であるため、クラス名を参照する必要はありません。

コードの次の行に、「割り当てられたバリスタ:」というメッセージをコンソールに出力し、その後に注文が割り当てられているバリスタの名前を出力します。ただし、バリスタの名前は静的変数として保存されます。

つまり、バリスタの名前を取得するには、その変数が関連付けられているオブジェクトの名前を参照する必要があります。この場合、order111.nameを使用してバリスタの名前を取得します。これは、変数名が静的であるため、order111オブジェクトを参照する場合にのみアクセスできるためです。

Java静的ブロック

Java staticキーワードを使用して、静的ブロックを作成することもできます。クラスに個別に初期化する必要のあるさまざまな静的変数がある場合は、静的ブロックを使用する必要があります。

静的ブロックは、クラスが最初にコンピュータのメモリにロードされたときに1回実行されます。 Javaの静的コードブロックの構文は次のとおりです。

static {
	// Code here
}

静的ブロックがどのように機能するかを示す例を見ていきましょう。 A new order is incoming …というメッセージを作成するように求められたとします。 プログラムが注文をバリスタに割り当てる前にコンソールに印刷して、バリスタが準備することを認識できるようにします。静的クラスを作成することでこれを行うことができます。静的クラスは、プログラムが最初に実行されたときに実行されます。

前述のメッセージを出力してから、バリスタに注文を割り当てる静的クラスの例を次に示します。

class CoffeeOrder {
	int baristasOnDuty = 2;
	static String name = "Hannah Johnson";
	static {
		System.out.println("A new order is incoming …");
	}

	public static void main(String[] args) {
		CoffeeOrder order111 = new CoffeeOrder();

		System.out.println("Baristas on duty: " + baristasOnDuty);
		System.out.println("Assigned barista: " + order111.name);
	}
}

コードは次のようになります:

A new order is incoming …
Baristas on duty: 2
Assigned barista: Hannah Johnson

このコードでは、最初にbaristasOnDuty変数とname変数を初期化しました。次に、プログラムは「新しい注文が着信しています…」というメッセージをコンソールに出力しました。このメッセージは、静的なコードブロック内に保存されました。プログラムが静的ブロックの内容を実行した後、メインプログラムを実行しました。これにより、最後の例のメインプログラムと同じ出力が返されました。

結論

Java staticキーワードには、いくつかの用途があります。 staticキーワードを使用して、静的メソッド、静的変数、および静的コードブロックを作成できます。

このチュートリアルでは、例を使用して、staticキーワードの基本と、メソッド、変数、およびコードブロックでstaticキーワードを使用する方法について説明しました。このチュートリアルを読んだら、プロのようにJavastaticキーワードを使い始める準備ができています。


  1. Javaの抽象クラス

    宣言にabstractキーワードを含むクラスは、abstractクラスと呼ばれます。 抽象クラスには、抽象メソッド、つまり本体のないメソッドが含まれる場合と含まれない場合があります(public void get();) ただし、クラスに少なくとも1つの抽象メソッドがある場合、そのクラスは抽象として宣言する必要があります。 クラスが抽象として宣言されている場合、インスタンス化することはできません。 抽象クラスを使用するには、それを別のクラスから継承し、そのクラスに抽象メソッドの実装を提供する必要があります。 抽象クラスを継承する場合は、その中のすべての抽象メソッドに実装を提供する必要がありま

  2. Javaの最終クラス

    finalとして宣言されているクラスを使用する主な目的は、クラスがサブクラス化されないようにすることです。クラスがfinalとしてマークされている場合、どのクラスもfinalクラスから機能を継承できません。 public final class Test {    // body of class }