class Testing3 {
int num1 = 10;
static int num2 = 20;
void prn() {
System.out.println("prn()");
System.out.println(num2); //인스턴스 메서드 안에서는 정적 변수를 아무 문제없이 사용 가능
staticPrn(); //정적 메서드또한 아무 문제없이 사용 가능
}
static void staticPrn() {
System.out.println("staticPrn()");
// System.out.println(num1); 에러!! 정적 메서드 내부에서 인스턴스 변수를 사용할 수 없음
// prn(); 위와 마찬가지로 정적 메서드 내부에서 인스턴스 메서드 또한 사용 불가!
}
}
public class StaticTest3 {
public static void main(String[] args) {
//클래스명을 통해 정적 메서드에 바로 접곤
Testing3.staticPrn();
System.out.println("====================");
//인스턴스 메서드에 접근하기 위해 객체 생성
Testing3 t = new Testing3();
t.prn();
System.out.println("====================");
t.staticPrn(); //객체를 통해서도 정적 메서드나 변수에 접근은 가능하나 비효율적임
}
}