Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 중첩 클래스(Nested Class)의 개념과 활용 방법

C# 중첩 클래스란 무엇인가?

중첩 클래스(Nested Class)는 다른 클래스, 즉 외부 클래스(Enclosing Class) 내부에 선언된 클래스를 의미합니다. 이러한 구조에서는 바깥쪽 외부 클래스와 안쪽 내부 클래스가 함께 존재하며, 중첩 클래스는 외부 클래스의 멤버 중 하나로 취급됩니다.

여기서 주목해야 할 점은 접근 권한입니다. 외부 클래스의 멤버들이라고 해서 중첩 클래스의 멤버에 자동으로 접근할 수 있는 것은 아닙니다. 단순히 클래스 간에 포함 관계가 있다는 이유만으로 서로의 내부 멤버에 자유롭게 접근하는 것은 허용되지 않습니다.

중첩 클래스 예제 코드

다음은 C#에서 중첩 클래스를 선언하고 사용하는 방법을 보여주는 코드 예제입니다. 이 예제에서 Two 클래스가 바로 중첩 클래스에 해당합니다.

class One {
   public int num1;
   public class Two {
      public int num2;
   }
}
class Demo {
   static void Main() {
      One x = new One();
      x.num1++;

      One.Two xy = new One.Two();
      xy.num2++;
   }
}

예제 코드 분석

위 예제에서 Two 클래스는 One 클래스의 선언문 내부에 감싸져 있는 형태이기 때문에 중첩 클래스로 분류됩니다.

Two 클래스에는 public 접근 한정자가 적용되어 있으므로, One 클래스의 범위(scope) 밖에서도 자유롭게 접근할 수 있습니다. 실제로 Main() 메서드에서는 One.Two처럼 외부 클래스의 이름을 경유하여 중첩 클래스에 접근하고, 인스턴스를 생성해 멤버 변수 num2를 조작하는 과정을 확인할 수 있습니다.

정리

중첩 클래스는 연관성이 높은 클래스들을 논리적으로 묶어 코드의 구조를 명확하게 하고 캡슐화를 강화하는 데 유용한 기능입니다. 다만 접근 한정자 설정에 따라 외부 노출 범위가 크게 달라지므로, 클래스 설계 시 접근 수준을 신중하게 결정하는 것이 좋습니다.