実際はとてもシンプルです。
クラスがインスタンス化されたクラスオブジェクトが作成されるたびに、ランタイムシステムは、インスタンスメンバと呼ばれるそのオブジェクト/インスタンスのすべての変数とメソッドのコピーを作成します。今私たちのオブジェクトは、これらのコピーメンバーだけを使用します。これらのメンバーにアクセスするには、obejctname.memberを使用します。
対照的に、クラスメンバと呼ばれるものがあります。クラスメンバは、staticキーワードを使用して定義されます。つまり、作成されるインスタンスの数に関係なく、クラスはこれらのメンバーのコピーを1つだけ作成します。これらのメンバーにアクセスするには、classname.staticmemberを使用します。
簡単な例:
クラス名はです。です。これには、名前、年齢、run()、sleep()などのインスタンスメソッドなどのインスタンス変数があります。クラスには1つの静的メソッドsalary()が含まれています。
public class Person {
//Instance Members
private String name;
private int age;
public void run() {
}
public void sleep() {
}
//Class Member
public static void salary() {
}
public static void main(String[] args) throws IOException {
Person person1 = new Person();
Person person2 = new Person();
//accessing instance members
String person1NameInMain = person1.name;
int person1AgeInMain = person1.age;
person1.run();
person2.sleep();
Person.salary(); // accessing static member
}
}
これだけです。私はこれが助けて欲しい
'static 'メソッドと' non-static'メソッドについて調べてください。 –
これは、インスタンスメソッドと静的メソッド(クラスメソッド)の違いです。 –
[静的クラスのJava]の可能な複写(http://stackoverflow.com/questions/7486012/static-classes-in-java) – nautical