```
public class Circle {
private int radius;
public Circle(int radius) { this.radius = radius; }
public int getRadius() { return radius; }
}
public class NamedCircle extends Circle {
String name;
public NamedCircle(int radius, String name){
super(radius);
this.name=name;
}
public void show(){
System.out.println(this.name+", 반지름 = "+this.radius);
}
public static void main(String[] args) {
NamedCircle w = new NamedCircle(5, "Waffle");
w.show();
}
}
```
상속관계에서 생성자를 호출시키고
이름과 반지름값을 출력하는 문제인데요
Circle class의 소스는 이미 정해져있었습니다.
그런데 저는 여기서 반지름(radius)값을 그냥 this.radius로 나타냈는데요
이 부분이 빨간줄이 쳐집니다.
생각해보니 슈퍼클래스에서 radius값이 private으로 지정되어있고
circle 생성자에서 this.radius=radius라고 했으므로 this.radius도 private속성을 가지게 되서 끌어올 수 없게된것 같습니다. 근데 이 문제 해답을 보면 this.radius대신 getRadius()를 집어넣어서 radius값을 출력하는데요.
저는 왜 return값의 경우는 private속성이 무시된건지 궁금합니다.
return radius라고 되어있어도 private속성때문에 return 명령자체에 빨간줄이 쳐져야 되는 것 아닌가요?
return명령이 속성을 무시하는 우선권을 지니는건가요?
sehongpark님의 답변
# 접근제한자 private 키워드는 외부 클래스로부터 데이터 접근을 제한 합니다.
`getRadius()`메소드는 Circle 클래스 내부이므로 얼마든지 멤버변수 radius 에 접근할 수 있습니다.
따라서, getRadius() 메소드는 정상 동작 합니다.
답변이 늦었네요! 질문 주셔서 감사합니다 ^^