Java의 this 키워드 관련해서... 채택완료

https://www.w3schools.com/java/ref_keyword_this.asp

위 예제 경우, 

this 키워드 생략 시, 5대신 0이 된다고 써있어요.

실제로 위 실행파일에서 this 빼고 실행하니 0이 되네요.

 

그런데,

이클립스에서 실행하면 this 유무에 상관없이 5가 나오네요.

 

어떤 게 맞는건지?  (아님, 최근 Java가 바뀐 것인지?)

답변 2개

채택된 답변
+20 포인트

this 를 써주는 것이 맞습니다./적절합니다./권장됩니다.

 

이클립스의 경우는, 이클립스에서 컴파일시 this 를 자동으로 생성하여 처리한 것으로 추측/추정됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다.
PS.
이클립스가 아닌 CMD에서 실행해도 5 나오네요.

댓글을 작성하려면 로그인이 필요합니다.

int x;

  // Constructor with a parameter
  public Main(int x) {
    this.x = x;
  }

  // Call the constructor
  public static void main(String[] args) {
    Main myObj = new Main(5);
    System.out.println("Value of x = " + myObj.x);
  }

this.x => int x

=> this를 붙일경우 myObj 객체안의 x값

=> this를 뺀경우 myObj의 객체의 x 값이 아니라

public Main(int x) { this.x = x; }

=> 이 함수 내부의 함수값이므로 

=> int x 는 변경되지 않습니다.

 

이클립스에서 실행해도 this를 빼면 0이 나와야 정상입니다.

this를 빼서 5가 나온다면 int x 를 static 라던가 공용값으로 지정하지 않는한 0으로 나와야 됩니다.

 

2009211730_1608709661.4358.png

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

자세한 설명 감사합니다.
제가 실습을 하면서 매개변수 x를 클래스 속성 x와 다르게 a로 바꿔놔서 그런 거였네요.
x로 바꿔주니, 0이 나오네요.

댓글을 작성하려면 로그인이 필요합니다.

이 게시판은 회원만 글쓰기가 가능합니다. 로그인해 주세요.

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

로그인
🐛 버그신고