본문 바로가기

개인공부/C#

[C#] 클래스(Class)

■ 클래스(Class) :

 - 유사한 성질의 속성(Field)과 동작(Method)을 하나의 단위로 결합한 것

 - 객체(object)를 만들기 위해 정의해 놓은 것

 - 비유적 설명 :

  · 붕어빵 틀(class), 붕어빵(object)

  · 설계도(class), 설계도로 만들어낸 물건(object)

 

객체지향 프로그래밍(OOP : Object Oriented Programming) :
 - 모든 것을 객체(object)로 표현하려는 프로그래밍 패러다임(방법론)
 - 추상화, 캡슐화, 상속, 다형성
 - 코드 재사용성이 좋음
 - 유지보수가 쉬움
 - 대규모 프로젝트에 적합

객체(Object) :
 - 세상의 모든 유형적(사람, 자동차 등), 무형적(개념, 행위)인 것을 표현한 것

 

■ Class 구조

 

■ Example

class Person
{
    // Field
    public string Name;
    public int Age;

    // Method
    public void Move()
    {
        Console.WriteLine($"{Name}이 움직입니다.");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Person person = new Person();
        person.Name = "홍길동";
        person.Age = 20;
        person.Move();
    }
}

 

Example 결과

 

■ 생성자(Constructor) :

 - 클래스 명으로 정

 - 객체가 생성 될 때 호출

 - 객체 생성, 초기화 역할

 - 명시적으로 구현하지 않으면 컴파일러가 자동으로 생성

 

■ 소멸자(Destructor) :

 - 객체가 소멸할 때 호출

 - 직접 호출 불가, 가비지 컬렉터의 판단에 호출

 - 매개 변수 없음, 오버로딩 불가

 

■ Example

class Memoo
{
    public Memoo()
    {
        Console.WriteLine("Memoo 생성");
    }

    public void Work()
    {
        Console.WriteLine("Memoo 작업");
    }

    ~Memoo()
    {
        Console.WriteLine("Memoo 소멸");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Memoo memoo = new Memoo();
        memoo.Work();
    }
}

 

Example 결과