C#/클래스와 구조체

[C#] 클래스

도도돋치 2025. 4. 17. 16:16
Contents 접기
728x90

 

1. 클래스(Class)란?

클래스(붕어빵틀)는 객체(붕어빵)를 만들기 위한 설계도이다.

프로퍼티(속성), 필드(데이터), 메서드(동작)를 포함하여 하나의 개념 또는 기능을 캡슐화한다.

class Person
{
    public string Name;
    public int Age;

    public void SayHello()
    {
        Console.WriteLine($"안녕하세요, 저는 {Name}이고 {Age}살입니다.");
    }
}

🔹객체 생성

Person p = new Person();  // 클래스는 new 키워드로 생성해야 함
p.Name = "도치";
p.Age = 25;
p.SayHello();  // 출력: 안녕하세요, 저는 도치이고 25살입니다.

 

 

2. 클래스의 주요 구성요소 

클래스는 필드, 메서드, 생성자, 소멸자로 구성된다.

 

① 필드 (Fields)

  • 클래스 내부에서 선언된 변수
  • 객체의 상태(state) 를 저장
class Person {
    public string name;  // 필드
    public int age;      // 필드
}

 

 

메서드 (Methods)

  • 클래스에서 정의하는 기능이나 동작
  • 객체가 할 수 있는 일들을 정의
class Person {
    public void SayHello() {  // 메서드
        Console.WriteLine("안녕하세요!");
    }
}

 

 

생성자 (Constructors)

  • 객체를 초기화할 때 호출되는 특별한 메서드
  • 클래스 이름과 같고, 반환형이 없다
class Person {
    public string name;

    // 생성자
    public Person(string inputName) {
        name = inputName;
    }
}

 

 

소멸자 (Destructors)

  • 객체가 소멸될 때 실행되는 메서드(반환타입X, 매개변수X)
  • 주로 리소스 정리에 사용되며, C#에서는 잘 사용되지 않음 (가비지 컬렉터가 자동 관리함)
  • 자원해제, 메모리 해제, 로깅 및 디버깅(객체가 소멸되는 시점에 로깅하거나 디버깅 정보를 기록할 수 있다.)
class Person {
    ~Person() {
        Console.WriteLine("객체가 소멸됩니다.");
    }
}

 

 

 

3. 클래스의 특징

특징 설명
참조 타입 객체는 힙(Heap)에 저장되며, 변수는 참조(주소)를 저장
new 필요 인스턴스를 만들기 위해 new 키워드를 사용해야 함
캡슐화 관련 데이터를 하나의 구조로 묶어 다룰 수 있음
상속 가능 다른 클래스를 상속받아 기능 확장 가능
메서드 포함 클래스 내부에 기능(메서드)을 정의할 수 있음

 

 

📖 정리

  • 클래스는 데이터를 표현하고 기능을 함께 정의하는 설계도
  • 객체를 생성할 때는 new 키워드를 사용
  • 참조 타입이라 여러 참조가 같은 객체를 가리킬 수 있음
  • 복잡한 프로그램을 모듈화하고 재사용하기 쉽게 도와줌

 

728x90

'C# > 클래스와 구조체' 카테고리의 다른 글

[C#] 상속(Inheritance)  (0) 2025.04.17
[C#] 프로퍼티 (Property)  (0) 2025.04.17
[C#] 객체  (0) 2025.04.17
[C#] 클래스 구조체 차이  (0) 2025.04.17
[C#] 구조체  (0) 2025.04.17