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

C#에서 비정적(Non-static) 클래스란 무엇인가?

C# 비정적 클래스의 개념

C#에서 비정적(non-static) 클래스는 인스턴스를 생성할 수 있는 일반적인 클래스를 의미합니다. 반면 정적(static) 클래스는 인스턴스화할 수 없어서 new 키워드를 사용해 해당 클래스 타입의 변수를 만들 수 없습니다.

비정적 클래스와 정적 클래스의 주요 차이점

  • 인스턴스 생성 가능 여부: 비정적 클래스는 new 키워드로 객체를 생성할 수 있지만, 정적 클래스는 그렇지 않습니다.
  • 메서드 구성: 비정적 클래스는 인스턴스 메서드와 정적 메서드를 모두 가질 수 있습니다. 정적 클래스는 정적 멤버만 포함할 수 있습니다.
  • 멤버 접근 방식: 정적 클래스의 멤버는 클래스 이름 자체를 통해 접근합니다.
  • 봉인(sealed) 특성: 정적 클래스는 암시적으로 봉인(sealed)되어 있으므로 상속될 수 없습니다.

비정적 클래스 예제

public class Calculate
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}

위와 같이 선언된 비정적 클래스는 다음과 같이 객체를 생성해 사용할 수 있습니다.

Calculate calc = new Calculate();
int result = calc.Add(3, 5);

정적 클래스 예제

public static class Calculate
{
    public static int Add(int a, int b)
    {
        return a + b;
    }
}

정적 클래스는 별도의 객체 생성 없이 클래스 이름으로 직접 호출합니다.

int result = Calculate.Add(3, 5);

정리

객체의 상태(state)를 유지하거나 여러 인스턴스가 필요한 경우에는 비정적 클래스를 사용하고, 유틸리티성 기능처럼 상태 없이 공통으로 사용되는 기능은 정적 클래스로 구현하는 것이 좋습니다.