[parent 클래스 소스]

package parent.xy;
public class Parent {
 protected int x;
 int y;
public Parent( )
{
 x = 1;
 setY(2); 
}
public int getY() {
 return y;
}
public void setY(int y) {
 this.y = y;
}
}



[pta 클래스 소스]

package parent.xy;
public class pta extends Parent {
public void printxy( )
{
 System.out.println(x);  // 접근할 수 있음
 System.out.println(y);  // 접근할 수 없음
}
}



[ptb 클래스 소스]


package subclass.ab;
import parent.xy.*;
public class ptb extends Parent
{
public void outxy( )
{
 System.out.println(x); // 접근할 수 있음
}
}



[TestProtected 클래스 소스]


import parent.xy.pta;
import subclass.ab.ptb;
public class TestProtected {
public static void main (String[ ] args)
{
 pta a = new pta( );
 a.printxy( );
 ptb b = new ptb( );
 b.outxy( );
}
}




책에 있는 예제 소스를 그대로 실행 하였을 경우 아래와 같은 에러 결과값이 출력됀다.

책의 저자는 해외 원문의 소스 내용을 그대로 펌해서 번역만 한것으로 판단  됀다.


원본 소스를 그대로 참고하더라도 실제 출력 값은 정상적으로 출력된다.

분명 저작자는 자기가 출력된 결과 값만을  참고하여 책으로 출판한 것으로 판단됀다.


실제 책의 예제 소스를 그대로 입력하였을 겨우


1

2

1


의 결과 값이 정상적으로 출력된다.





위 책은 초보자에게 혼란을 줄뿐이다.

위 책의 스샷 내용과 나의 소스 내용은 일치하며, 초보자에게 혼란을 충분히 줄수 있다고 판단하여

있는 그대로 게시글을 남깁니다.