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

C# Object(객체) 클래스 완벽 정리 – 모든 클래스의 기반 클래스 이해하기

C# Object 클래스란?

C#에서 Object 클래스모든 클래스의 최상위 기반 클래스(Base Class)입니다. .NET의 모든 형식은 명시적으로 상속을 선언하지 않아도 암시적으로 Object 클래스를 상속받으며, 따라서 어떤 개체든 Object 타입의 변수에 할당할 수 있습니다.

Object 클래스가 제공하는 대표적인 메서드는 다음과 같습니다.

번호메서드 및 설명
1Equals(Object)
지정된 개체가 현재 개체와 같은지 여부를 확인합니다.
2Equals(Object, Object)
지정된 두 개체 인스턴스가 서로 같은 것으로 간주되는지 확인합니다.
3Finalize()
개체가 가비지 컬렉터에 의해 회수되기 전에 리소스를 해제하도록 허용합니다.
4GetHashCode()
개체의 기본 해시 함수 역할을 수행합니다.
5GetType()
현재 인스턴스의 정확한 런타임 형식(Type)을 반환합니다.
6MemberwiseClone()
현재 개체의 단순 복사본(Shallow Copy)을 생성합니다.
7ReferenceEquals(Object, Object)
지정된 두 개체 인스턴스가 동일한 인스턴스인지(참조가 같은지) 확인합니다.
8ToString()
현재 개체를 나타내는 문자열을 반환합니다.

이 메서드들은 필요에 따라 파생 클래스에서 재정의(override)하여 사용할 수 있습니다. 특히 ToString(), Equals(), GetHashCode()는 실무에서 자주 오버라이드하는 메서드입니다.

C#에서 클래스 개체 생성 예제

다음 예제는 C#에서 클래스의 개체를 생성하고, 상속받은 멤버에 접근하는 방법을 보여줍니다.

예제 코드

using System;
namespace MyApplication {
   class Demo {
      protected string name = "Website";
      protected void Display(string str) {
         Console.WriteLine("Tabs: " + str);
      }  
   }

   class Test : Demo {
      static void Main(string[] args) {
         Test t = new Test();
         Console.WriteLine("Details: " + t.name);
         t.Display("Product");
         t.Display("Services");
         t.Display("Tools");
         t.Display("Plugins");
      }
   }
}

위 코드에서 Test 클래스는 Demo 클래스를 상속하므로, 부모 클래스의 protected 멤버인 name 필드와 Display() 메서드를 그대로 사용할 수 있습니다.

실행 결과

Details: Website
Tabs: Product
Tabs: Services
Tabs: Tools
Tabs: Plugins

정리

Object 클래스는 C#의 모든 형식이 공통으로 갖추어야 할 기본 동작을 정의하는 뿌리 역할을 합니다. 개체 비교, 해시 코드 생성, 형식 확인, 문자열 변환 등 핵심 기능을 제공하므로, C# 개발자라면 반드시 숙지해야 할 필수 개념입니다.