누군가가 내게 어떤 차이를 설명해 줄 수 있습니까? protected
/public
내부 클래스 사이의 차이점은 무엇입니까?protected/public 내부 클래스
나는 public
내부 클래스가 가능한 한 많이 피하는 것을 알고있다. (이 article에서 설명했다).
그러나 내가 알 수있는 바로는 protected
또는 public
수식어를 사용하는 경우에는 차이가 없습니다.
이 예를 살펴 보자
public class Foo1 {
public Foo1() { }
protected class InnerFoo {
public InnerFoo() {
super();
}
}
}
을 ...
public class Foo2 extends Foo1 {
public Foo2() {
Foo1.InnerFoo innerFoo = new Foo1.InnerFoo();
}
}
...
이 모든 컴파일 및 유효public class Bar {
public Bar() {
Foo1 foo1 = new Foo1();
Foo1.InnerFoo innerFoo1 = foo1.new InnerFoo();
Foo2 foo2 = new Foo2();
Foo2.InnerFoo innerFoo2 = foo2.new InnerFoo();
}
}
내가 InnerFoo
protected
를 선언 여부 또는 public
.
무엇이 누락 되었습니까? protected
또는 public
을 사용할 때 차이가있는 경우를 알려주십시오.
감사합니다.
확인. 나는 내 혼란을 겪는다. 내부 클래스는 둘러싼 클래스의 멤버와 비슷하기 때문에 보호 된 멤버 측면에서 생각하고있었습니다. 감사. –
@ bruno 콘돔 : protected 클래스는 * 보호 된 멤버와 같습니다. –
즉, Java에서 "protected"는 멤버 또는 내부 클래스에 적용되는지 여부에 관계없이 C++ 및 C#과 다릅니다. 동일한 패키지 (네임 스페이스)의 다른 클래스에 대한 액세스를 허용합니다. – Qwertie