20240201_클래스와 객체

2024. 2. 1. 23:35IT/TIL

오늘의 TIL은 C#에서 다루는 기본적인 CS 지식에서 중요하다고 생각되는 클래스와 객체에 대한 내용이다.

 

클래스와 객체는 객체 지향 프로그래밍(Object-Oriented Programming, OOP)의 핵심 개념 중 하나이다.

 

클래스(Class)

클래스란 객체를 생성하기 위한 템플릿으로 객체의 상태를 정의하는 필드와 객체의 행동을 정의하는 메서드를 포함한다.

 

예를 들어 자동차를 생각해보면, 자동차의 클래스는 자동차의 특성(제조사, 모델, 색상 등)을 필드로 정의하고,

 

자동차가 수행할 수 있는 동작(운전하기, 정지하기 등)을 메서드로 정의할 수 있다.

 

이를 코드로 작성하면 아래와 같다.

 

public class Car
{
    public string maker;
    public string model;
    public string color;
    
    public void Drive()
    {
        Console.WriteLine("Driving");
    }
    
    public void Break()
    {
        Console.WriteLine("Break");
    }
}

 

 

객체(Object)

객체는 클래스에 정의된 대로 메모리에 할당된 인스턴스이다.

 

클래스를 기반으로 생성되며, 클래스에서 정의한 필드와 메서드를 갖는다.

 

예를 들어서 자동차 클래스의 객체는 실제 자동차에 해당한다.

 

테슬라의 Model Y의 Deep Blue Metallic 색상 자동차는 자동차 클래스의 한 객체로 아래와 같이 나타낼 수 있다.

 

Car myCar = new Car();
myCar.maker = tesla;
myCar.model = modelY;
myCar.color = deepBlueMetallic;
myCar.Drive();

 

위의 코드에서 myCar는 Car 클래스의 객체로 maker, model, color 필드에 값을 할당하고,

Drive 메서드를 호출하여 "Driving"을 출력할 수 있다.

 

클래스와 객체의 관계

클래스는 일반적인 개념을 정의한다.

 

예를 들어서 자동차 클래스는 모든 자동차가 가질 수 있는 일반적인 특성(필드)과 동작(메서드)를 정의한다.

 

객체는 구체적인 인스턴스이다.

 

클래스를 기반으로 실제 메모리에 할당된 것으로, 각 객체는 클래스에 정의된 속성과 동작을 가지지만,

 

각각의 객체는 독립적인 상태(각각의 제조사, 모델, 색상)를 가질 수 있다.

 

 

오늘은 클래스와 객체에 대한 기본적인 지식을 알아봤는데,

 

많이 들었지만 제대로 이해하지 못했던 내용으로 정리하면서 어느정도 내 것으로 만들 수 있었다고 생각한다.

 

매우 중요한 내용이므로 이후에 좀 더 깊게 공부해서 다시 한 번 정리할 예정이다.

'IT > TIL' 카테고리의 다른 글

20240203_최종프로젝트 트러블슈팅  (2) 2024.02.03
20240202_객체지향의 특징  (0) 2024.02.03
20240131_그림 확대(프로그래머스)  (0) 2024.02.01
20240130_병합 정렬, 힙 정렬  (0) 2024.01.30
20240129_정렬 알고리즘  (0) 2024.01.30