static을 언제 붙여야 할까?
ㄴ속성(멤버변수) 중에서 공통속성에 static을 붙인다
ㄴ인스턴스 멤버(iv,im)을 사용하지 않는 메서드(명령문 집합)에 static을 붙인다.
메서드간의 호출과 참조
class TestClass2{
int iv; // 인스턴스 변수 (객체생성 후 사용가능)
static int cv; // 클래스 변수 (언제나 사용가능)
void instanceMethod() { // 인스턴스 메서드 (객체 생성 후 호출가능)
System.out.println(iv); // 인스턴스 변수를 사용할 수 있다.
System.out.println(cv); // 클래스 변수를 사용할 수 있다.
}
static void staticMethod() { // static메서드
System.out.println(iv); // 에러!! 인스턴스 변수를 사용할 수 없다.
System.out.println(cv); // 클래스 변수는 사용할 수 있다.
}
} // end of class
2.static메서드는 인스턴스 메서드(im)를 사용할 수 없다.
class TestClass{
vide instabceMethod(){} // 인스턴스메서드
static void staticMethod() {} // static메서드
void instanceMethod2(){ // 인스턴스메서드
instanceMethod(); // 다른 인스턴스메서드를 호출한다.
staticMethod(); // static메서드를 호출한다.
} ㄴ 항상 OK
static void staticMethod2(){ // static메서드
instanceMethod(); // 에러!! 인스턴스메서드를 호출할 수 없다.
ㄴ iv로 작업하는 메서드, 객체가 필요
staticMethod(); // static메서드는 호출 할 수 있다.
}
} // end of class