Java의 this 키워드 관련해서... 채택완료
https://www.w3schools.com/java/ref_keyword_this.asp
위 예제 경우,
this 키워드 생략 시, 5대신 0이 된다고 써있어요.
실제로 위 실행파일에서 this 빼고 실행하니 0이 되네요.
그런데,
이클립스에서 실행하면 this 유무에 상관없이 5가 나오네요.
어떤 게 맞는건지? (아님, 최근 Java가 바뀐 것인지?)
답변 2개
this 를 써주는 것이 맞습니다./적절합니다./권장됩니다.
이클립스의 경우는, 이클립스에서 컴파일시 this 를 자동으로 생성하여 처리한 것으로 추측/추정됩니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
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으로 나와야 됩니다.

답변에 대한 댓글 1개
제가 실습을 하면서 매개변수 x를 클래스 속성 x와 다르게 a로 바꿔놔서 그런 거였네요.
x로 바꿔주니, 0이 나오네요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
PS.
이클립스가 아닌 CMD에서 실행해도 5 나오네요.