TOC

This article is currently in the process of being translated into Korean (~98% done).

Classes:

Introduction to C# classes

많은 프로그래밍 교재에서, 클래스에 대한 정보는 훨씬 나중을 위해 놔둴 것입니다. 하지만 C#이 곧 객체 지향 프로그래밍과 클래스와 관련된 모든 것이기 때문에, 가장 중요한 기능에 대한 기본 소개를 지금 살펴보도록 하겠습니다.

우선, 클래스는 관련 메서드와 변수들의 그룹입니다. 클래스는 이러한 것들을 설명하며, 대부분의 경우에 이 클래스의 인스턴스를 만들고 이를 객체라고 합니다. 이 개체에서 정의된 메서드와 변수를 사용합니다. 물론 클래스의 인스턴스는 원하는 만큼 많이 만들 수 있습니다. 일반적으로 클래스와 객체 지향 프로그래밍이란 큰 주제입니다. 이번 장과 이후의 장들에서 일부를 다루겠지만, 전부를 다루지는 않을 것입니다.

우리는 Hello world 챕터에서 처음으로 사용된 클래스를 보았습니다. 왜냐하면 C#의 모든 것은 클래스를 기반으로 하기 때문입니다. Hello world 예제를 우리가 만든 클래스로 확장해봅시다.

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Car car;

            car = new Car("Red");
            Console.WriteLine(car.Describe());

            car = new Car("Green");
            Console.WriteLine(car.Describe());

            Console.ReadLine();

        }
    }

    class Car
    {
        private string color;

        public Car(string color)
        {
            this.color = color;
        }

        public string Describe()
        {
            return "This car is " + Color;
        }

        public string Color
        {
            get { return color; }
            set { color = value; }
        }
    }
}

네, 새로운 내용이 많지만 거의 대부분이 교재 앞에서 이미 사용한 것들을 기반으로 하고 있습니다. 보시다시피 Car라고 하는 새로운 클래스를 정의했습니다. 쉽게 살펴볼 수 있도록 메인 애플리케이션과 같은 파일에 선언되었습니다. 하지만 새로운 클래스들은 보통 각자의 파일에 정의됩니다. Car 클래스는 color라고 하는 변수를 정의하고 있습니다. (물론 이 변수는 자동차의 색상을 알려주는 데 사용될 것입니다.) 우리는 이 변수를 private으로 선언하였는데, 이것은 좋은 관례입니다. 외부로부터의 변수 접근은 속성을 사용하여 이루어져야 합니다. color 변수에 접근할 수 있도록, 클래스의 끝에 Color 속성이 정의됩니다.

그 밖에도 Car 클래스는 생성자를 정의하고 있습니다. 생성자는 Car 개체를 '색상(color)'으로 초기화할 수 있도록 해주는 파라메터를 취합니다. 단 하나의 생성자가 있기 때문에, Car 개체들은 오직 색상으로만 초기화될 수 있습니다. Describe() 메서드는 자동차에 대하여 기록하는 정보들이 담긴 멋진 메시지를 얻을 수 있도록 해줍니다. 단순히 우리가 제공하는 정보가 담긴 문자열을 반환해줍니다.

이제 메인 내플리케이션에서는 Car라는 유형의 변수를 선언합니다. 그리고 파라메터로 "Red"를 사용하여 새로운 인스턴스를 만듭니다. 클래스의 코드에 따르면, 이것은 자동차의 색상으로 Red가 지정된다는 것을 의미합니다. 이를 확인하기 위해 우리는 Describe() 메서드를 호출하고, 같은 클래스의 인스턴스들을 얼마나 쉽게 만들 수 있는 지 보여주기 위해 같은 작업을 다른 색상을 사용하여 다시 수행합니다. 우리는 방금 첫 작동 클래스를 만들고 사용했습니다.

다음 장에서는, 속성(Property), 생성자(Constructor), 가시성(Visibility)와 같은 개념들에 대하여 더 깊이 설명할 것입니다.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!