static 메소드가 non-static 맴버를 받을수 없는데 예제는 되는게 이해가 가지않습니다.

조회수 507회

class Number {

int n;
public Number(int n) { this.n = n; }

}

public class Example {

static void plusTen(Number x) { x.n += 10; }
public static void main(String args[]) {
    Number ob = new Number(5);
    plusTen(ob);
    System.out.println(ob.n);
}

}

명품자바 에센셜 연습문제 인데요 제가 공부하기론 static 메소드는 non-static 맴버로 접근할수가없는데 그렇다면 저기 static void plusTen(Number x) 줄에서 x.n은 논스태틱 맴버이니까 컴파일 오류가 나야되지않나요? 하지만 실제로 코딩해봤을떄 결과가 나옵니다. 도와주세요 ㅜㅜ이해가 가지 않습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • ob는 main 함수의 지역변수에요. 클래스의 멤버변수가 아니에요. static 함수에서 this 에 접근할 수 없다고 하면 좀 더 이해가 편하실것 같아요. toyseed 2021.4.18 06:55

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)