*JAVA-クラスメソッドとインスタンスメソッド
1.クラスを設計するときに、メンバー変数のすべてのインスタンスに共通の静的を加えます。
2.クラス変数はインスタンスを作成することなく使用できます。
3.クラスメソッドではインスタンス変数は使用できません。
4.メソッドでインスタンス変数が使用されていない場合は、静的変数の貼り付けを検討します。
クラスメンバーとインスタンスメンバー間の参照と呼び出し
同じクラスに属するメンバー間では、個別のインスタンスを作成することなく、相互参照または呼び出すことができます.ただし、クラスメンバーがインスタンスメンバーを参照または呼び出す場合は、インスタンスを作成する必要があります.
これは、インスタンス・メンバーが存在する場合、クラス・メンバーは常に存在しますが、クラス・メンバーが存在する場合、インスタンス・メンバーは存在しない可能性があります.
class TestClass{
void instanceMethod(){} // 인스턴스 메서드
static void staticMethod(){} // static 메서드
void instanceMethod2()
{
instanceMethod(); // 다른 인스턴스 메서드를 호출
staticMethod(); // static 메서드를 호출
}
static void staticMethod2()
{
instanceMethod(); // 에러! 인스턴스메서드 사용 불가
staticMethod(); // static메서드는 호출 가능
}
} //end of class
オブジェクトの作成や参照変数を必要とせずに、同じクラスのメソッドを直接呼び出すことができますが、静的メソッドではインスタンスメソッドを呼び出すことはできません.class TestClass2{
int iv; //인스턴스 변수
static int cv; // 클래스 변수
void instanceMethod() // 인스턴스 메서드
{
System.out.println(iv); // 인스턴스 변수 호출
System.out.println(cv); // 클래스 변수 호출
}
static void staticMethod2() //static 메서드
{
System.out.println(iv); //에러! 인스턴스변수 사용 불가
System.out.println(cv); //클래스 변수는 사용 가능
}
} //end of class
今回は変数とメソッドの呼び出しです.メソッド間の呼び出しと同様に、インスタンスメソッドではインスタンス変数を使用できますが、静的メソッドではインスタンス変数を使用できません.class MemberCall{
int iv = 10;
static int cv = 20;
int iv2 = cv;
//static int cv2 = iv;
//에러. 클래스변수는 인스턴스 변수 사용 불가능
static int cv2 = new MemberCall().iv;
//이처럼 객체를 생성해야 사용 가능.
static void staticMethod1()
{
System.out.println(cv);
//System.out.println(iv);
//에러. 클래스메서드에서 인스턴스변수를 사용 불가.
MemberCall c = new MemberCall();
System.out.println(c.iv);
// 객체를 생성한 후에야 인스턴스변수의 참조 가능.
}
void instanceMethod1()
{
System.out.println(cv);
System.out.println(iv);
//인스턴스메서드에서는 인스턴스변수를 바로 사용가능.
}
static void staticMethod2()
{
staticMethod1();
//instanceMethod1();
//에러. 클래스메서드에서는 인스턴스메서드를 호출할 수 없음.
MemberCall c = new MemberCall();'
c.instanceMethod1();
//인스턴스를 생성한 후에야 호출 가능.
}
void instanceMethod2()
{
//인스턴스메서드에서는 인스턴스메서드와 클래스메서드
//모두 인스턴스 생성없이 바로 호출이 가능하다.
staticMethod1();
instanceMethod();
}
}
Reference
この問題について(*JAVA-クラスメソッドとインスタンスメソッド), 我々は、より多くの情報をここで見つけました https://velog.io/@jo_dbsgh95/JAVA-클래스-메서드와-인스턴스메서드テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol