1 minute read

개요

중첩 클래스란?
=> 클래스 내부에 클래스를 정의 하여 사용하는 구현방식을 말합니다.
중첩 클래스를 이용하여 클래스를 그룹화 할 수 있으며, 클래스의 사용 범위를 제한 할 수 있습니다.

중첩 클래스를 사용하는 이유

  • 클래스를 논리적으로 그룹화할 수 있습니다.
  • 특정 클래스 내부에서만 사용되기 때문에 코드를 더 쉽게 파악할 수 있으며, 유지 관리가 쉽습니다.
  • 특정 클래스 내부에서만 사용되므로 클래스 구조가 단순해집니다.


C++에서의 중첩 클래스또한 기본적인 개념은 비슷합니다.
참조 -> C++ Inner Class


예제


아래는 중첩 클래스의 예제 입니다. 클래스명은 간단하게 Outer, Inner Class로 지정하였습니다.

using System;

public class OuterClass
{
    public void ShowText()
    {
        Console.WriteLine("Test Inner Class by OuterClass");
    }

    public class InnerClass
    {
        public void ShowText()
        {
            Console.WriteLine("Test Inner Class by InnerClass");
        }
    }
}


중첩 클래스는 public으로 선언되어 있기 때문에 아래와 같은 방식으로 외부에서 접근 할 수 있습니다.
당연하지만 중첩 클래스 선언시 public이 아닌 private로 선언될 경우 아래와 같이 외부에서 접근 할 수 없습니다.

public class Program
{
    public static void Main()
    {
        OuterClass _outerClass = new OuterClass();
        _outerClass.ShowText();

        // 중첩 클래스 접근 방법
        OuterClass.InnerClass _innerClass = new OuterClass.InnerClass();
        _innerClass.ShowText();
    }
}



전체 소스코드

using System;

public class OuterClass
{
    public void ShowText()
    {
        Console.WriteLine("Test Inner Class by OuterClass");
    }

    public class InnerClass
    {
        public void ShowText()
        {
            Console.WriteLine("Test Inner Class by InnerClass");
        }
    }
}

public class Program
{
    public static void Main()
    {
        OuterClass _outerClass = new OuterClass();
        _outerClass.ShowText();

        OuterClass.InnerClass _innerClass = new OuterClass.InnerClass();
        _innerClass.ShowText();
    }
}


build result

Test Inner Class by OuterClass
Test Inner Class by InnerClass



Top