java/객체지향
[객체지향] 메서드 간의 호출과 참조
각시탈코더
2021. 7. 9. 15:44
같은 클래스에 속한 멤버들 간에는 별도의 인스턴스를 생성하지 않고도 서로 참조 또는 호출이 가능하다. 그런데 인스턴스 멤버가 존재하는 시점에 클래스 멤버는 항상 존재하지만, 클래스멤버가 존재하는 시점에 인스턴스 멤버가 존재하지 않을 수도 있기 때문에 클래스 멤버가 인스턴스 멤버를 참조 또는 호출하고자 하는 경우에는 인스턴스를 생성해야한다.
<메서드 호출>
class TestClass {
void instanceMethod() {} //인스턴스메서드
static void staticMethod() {} //static메서드
void instanceMethod2() { //인스턴스메서드
instanceMethod(); //다른 인스턴스메서드를 호출한다.
staticMethod(); //static메서드를 호출한다.
}
static void staticMethod2() { //static메서드
instanceMethod(); //에러! 인스턴스 메서드를 호출할 수 없다.
staticMethod(); //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); // 클래스 변수는 사용할 수 있다.
출처: 자바의 정석 기초편(저자: 남궁성, 출판사: 도우출판)