중첩, 내부 클래스

하승진·2024년 7월 29일
0
post-thumbnail

중첩 클래스(Nested Class)

: 클래스 안에 클래스를 정의하는 클래스
: 하나의 클래스가 다른 클래스의 기능과 강하게 연관되어 있다는 의미를 전달하기 위해 만들어진 형식

  • 중첩 클래스는 형태만 내부에 존재할 뿐 실질적으로는 서로 내용을 공유할 수 없다.
Outer.Nested() // 호출 시 부르는 방법

class Outer {
	class Nested {
    
    }
}

내부 클래스

: 혼자서 객체를 만들 수는 없고, 외부 클래스의 객체가 있어야만 생성과 사용이 가능한 클래스

  • 외부 클래스 객체 안에서 사용되는 클래스이므로 외부 클래스의 속성과 함수 사용이 가능하다.
class Outer {
	inner class Inner {
    
    }
}

위와 같은 형태로 내부 클래스 정의 시에는 클래스 앞에 inner라는 키워드를 명시해야 한다.

Outer 클래스 안에 Nested라는 중첩 클래스를 선언하고, Inner라는 내부 클래스를 선언하였다.

outer.text에서 헷갈릴 수 있ㄴ느데 outer은 Outer클래스의 text값을 업데이트한 것이기 때문에 inner.introduceOuter() 함수는 외부 클래스인 Outer클래스의 text를 참조하고, Changed Outer Class로 출력하게 된다.

클래스간의 연계성을 표현하여 코드의 가독성 및 작성 편의성이 올라갈 수 있으므로 적절한 상황에 사용하는 것이 좋다.

profile
기어갈지언정 한 발자국씩이라도 가보자

0개의 댓글