Java クラスでは、static キーワードがよく使用されます。これは、static と呼ばれることがよくあります。静的修飾子はデータ メンバーやメソッド メンバーの変更に使用できますが、クラス (ここでは外部クラスを指します) やコンストラクターを変更することはできません。例:
package com.csst.vo; public class User { private String name; private static int count; public String getName() { return name; } public void setName(String name) { this.name = name; } public static int getCount() { return count; } public static void main(String[] args){ User user1=new User(); User user2=new User(); user1.setName("Rose"); user2.setName("Kate"); user1.count=10; user2.count=20; System.out.println("user1.name:"+user1.getName()+" user2.name:"+user2.getName()); System.out.println("user1.count:"+User.getCount()+"user2.count:"+user2.count); } }
このプログラムの実行結果は次のとおりです:
user1.name:Rose user2.name:Kate user1.count:20 user2.count:20
user1 と user2 の name 属性はそれぞれ異なり、オブジェクトの setName を呼び出すことによって指定されていることがわかります。 、user1 と user2 User2 は count 属性に異なる値を指定しましたが、最終的に出力される count 値はすべて 20 でした。その理由は、count は static によって変更されますが、name は count によって変更されないためです。
static 修飾子によって変更されたデータ メンバーまたはメソッド メンバーを静的メンバーまたはクラス メンバーと呼び、静的修飾子によって変更されないものをインスタンス メンバーと呼びます。静的メンバーは 1 回だけ初期化され、すべてのオブジェクトで共有されるため、count は 20 を 2 つ出力します。インスタンス メンバーはオブジェクトの初期化時にのみ初期化され、オブジェクトが作成されるたびに 1 回初期化されます。 name は user1 と user2 の作成時に 2 回初期化されたため、最終出力は Rose と Kate になります。
さらに、静的メンバーはクラスによって共有されるため、オブジェクトだけでなくクラス名からも呼び出すことができます。静的メソッドでは非静的メンバーを直接使用することはできず、使用する場合はオブジェクトを初期化して呼び出す必要があります。上記例のUser.javaに以下のコードがあるとコンパイルエラーとなります。
public static void test(){ setName("test"); }
は次のように変更できます:
public static void test(){ User user=new User(); user.setName("test"); }
以上がJava言語における静的修飾子の機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。