- Java/NestingClass
static class NestedTopLevelClass
static class NestedTopLevelClass
TopLevelClass의 staticField 변수는 접근할 수 있다. 하지만, instanceField 변수는 접근할 수 없다. NestedTopLevelClass가 TopLevelClass의 instanceField 변수에 접근할 수 없기 때문에, NestedTopLevelClass는 어떤 TopLevelClass 객체에 독립적이다.
비록 NestedTopLevelClass가 TopLevelClass의 인스턴스 필드에 접근할 수 없다고 하더라도, static 키워드는 NestedTopLevelClass가 자신의 인스턴스 필드를 선언하거나 NestedTopLevelClass 객체를 만드는 것을 방지하지 않는다. Listing 4를 확인해보자.
//Listing 4. NestedTopLevelClassDemo.java
// NestedTopLevelClassDemo.java
static class NestedTopLevelClass
NestedTopLevelClass (int i)
class NestedTopLevelClassDemo
TopLevelClass.NestedTopLevelClass ntlc;
ntlc = new TopLevelClass.NestedTopLevelClass (5);
When run, NestedTopLevelClassDemo produces the following output:
NestedTopLevelClassDemo의 메인 함수에서 NestedTopLevelClass 변수 ntlc를 만들었다. 변수를 선언하기 위한 문법(syntax)는 Listing3의 Employee와 같다. 일반적으로, 중첩된 클래스 타입의 변수가 필요할 때, 최상위 중첩 클래스부터 점 구분자를 이용해서 최하위 중첩 클래스까지를 표현하면 된다. 예를 들면 다음과 같다. Nest1,Nest2,Nest3 3개의 중첩 클래스가 있다고 가정하고, Nest3의 인스턴스를 생성하고 싶을 때에는 다음과 같은 방법을 이용하면 된다. Nest1.Nest2.Nest3 nestedClass = Nest1.Nest2.Nest3()
static class NestedTopLevelClass
static class NestedNestedTopLevelClass
TopLevelClass.NestedTopLevelClass.NestedNestedTopLevelClass nntlc;
nntlc = new TopLevelClass.NestedTopLevelClass.
NestedNestedTopLevelClass ();
NestingAndShadowingDemo를 컴파일하고 실행하면 중첩된 최상위 클래스 안에 중첩된 최상위 클래스가 중첩될 수 있다는 것을 알 수 있다. 또한 결과 값은 NestedTopLevelClass의 필드가 TopLevelClass의 필드에 의해서 가려진다는 것을 보여준다. 결론적으로, NestedTopLevelClass의 필드의 값 2를 찍는다.
Found 1 matching page out of 7544 total pages
You can also click here to search title.