正直に言うと、静的キーワードに初めて出会ったとき、誰もが次のように考えます。「これはどんな魔術ですか?」 ?でも心配しないでください。ここでは、シンプルで奥深く、そしておそらく少し楽しい方法でそれを詳しく説明します!
あなたがパーティーにいるところを想像してみてください?あなたもあなたの友達もみんな帽子をかぶっています。しかし、全員が共有しなければならない帽子は 1 つ だけです。これは基本的に Java で static キーワードが行うことです。友達ごとに帽子を作成する (面倒になる可能性があります) 代わりに、グループ (クラス) に属する帽子を 1 つ 用意し、全員が順番にそれをかぶることができます。
このイメージを念頭に置いたところで、Java における static が実際に何をするのかを詳しく見ていきましょう。
簡単に言えば、Java で static キーワードを使用すると、「ここにあるこれは、そのクラスの特定のオブジェクトではなく、クラス自体に属している」と言っていることになります。
これは次のことを意味します:
静的変数は、誰もが共有する 1 つの帽子のようなものです。帽子を変えると (例: 羽根を入れるなど)、全員がその変化を目にします。
class Party { static int numberOfGuests = 0; // static variable Party() { numberOfGuests++; // Increment the guest count every time someone joins the party } } public class Main { public static void main(String[] args) { Party guest1 = new Party(); Party guest2 = new Party(); Party guest3 = new Party(); System.out.println(Party.numberOfGuests); // Output: 3 ? } }
この例では、すべてのゲストがnumberOfGuests変数を共有します。新しいゲストはそれぞれ、独自のゲスト数を取得しません (混乱を想像してください!)。代わりに、全員が同じカウントを更新します。さて、何人のゲストが到着しても、ゲスト数は 1 つ だけであり、それは個々のゲストではなく パーティー クラス に属します。
静的メソッドはパーティーのピザの配達員のようなものです。電話をかけると、招待状 (オブジェクト) を必要とせずに現れます。パーティーの数に関係なく、同じピザ屋が全員にピザを配達します。ピザ屋 (クラス) に電話するだけで、彼らが来てくれます!
class PizzaShop { static void deliverPizza() { System.out.println("Pizza delivered! ?"); } } public class Main { public static void main(String[] args) { PizzaShop.deliverPizza(); // No need to create a PizzaShop object } }
上記の例では、ピザを入手するために PizzaShop オブジェクトを作成する必要はありません。クラスからメソッドを直接呼び出しました。だって、お腹が空くたびにお店を作りたいと思うのはなぜですか?
パーティーが始まる前にDJがサウンドチェックをしますよね?これは静的ブロックのようなものです。すべてが適切に配置されていることを確認するために、何かが起こる前に1 回実行されます。
class Party { static String music; // Static block to set up the DJ's playlist ? static { music = "Let's Dance by David Bowie"; System.out.println("Music is set up: " + music); } } public class Main { public static void main(String[] args) { System.out.println("Party is starting with: " + Party.music); } }
静的ブロックは、パーティが開始される前に実行されます。音楽は事前に設定されているため、ゲストが到着したときにはすでに興奮しています?
静的ネストされたクラスは、パーティーの VIP セクションのようなものです。彼らはメイン イベント内にいますが、独立しています。VIP セクションにアクセスするためにパーティーを作成する必要はありません。
class Party { static class VIPArea { void exclusiveService() { System.out.println("Welcome to the VIP area! ?"); } } } public class Main { public static void main(String[] args) { Party.VIPArea vip = new Party.VIPArea(); // No need for a Party object vip.exclusiveService(); // Output: Welcome to the VIP area! ? } }
VIP エリアはパーティーの一部ですが、それを使用するのに本格的なパーティーは必要ありません。それは独立したもので、荒れ狂うイベントの中にあるクールで静かな VIP ラウンジのようなものです。
さて、あなたは次のように考えているかもしれません。「これはとても素晴らしいことですが、実際に静的をいつ使用すればよいでしょうか?」 さて、これがチートシートです:
さて、カーテンの後ろを覗いてみましょう。魔法がどのように起こるかは次のとおりです:
ゲストが到着する前にスナックテーブルを準備するようなものです。各ゲストに自分の食べ物を持ってくるように頼む必要はありません。共有の軽食を自分で食べるだけです。
ほとんどのことと同様、静電気が多すぎると悪影響が生じる可能性があります。以下にいくつかの警告があります:
Java の静的キーワードは、DJ、ピザ屋、パーティーの VIP ラウンジのようなものです。これにより、すべてがよりスムーズに、より効率的になり、ゲスト全員で共有されます。ユーティリティ メソッド、共有データ、または単にメモリを節約したい場合でも、静的はあなたの味方です。
ただし、すべてを静的な自由に変えないでください。賢く使用すれば、コードはクリーンで効率的で、混乱がなくなります。
それだけです!これで、プロのように静的な知識を吸収する準備が整いました?
以上がJava の「static」の魔法: 1 つは全員のために、そして全員は 1 のために!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。