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

C#에서 클래스와 객체의 차이점은 무엇일까요? 개념과 예제로 쉽게 이해하기

C#에서 클래스(Class)란 무엇인가?

클래스(Class)는 하나의 데이터 타입을 만들기 위한 설계도(블루프린트)입니다. 클래스 자체는 실제 메모리에 존재하는 것이 아니라, 객체를 생성하기 위한 틀 역할을 합니다. 즉, 어떤 데이터와 기능을 가질지 미리 정의해 두는 것이라고 할 수 있습니다.

객체(Object)는 이러한 클래스의 인스턴스(instance)입니다. 클래스에 정의된 메서드와 변수가 실제로 동작하려면 반드시 객체를 생성해야 하며, 이때 클래스를 구성하는 메서드와 변수들을 클래스 멤버(member)라고 부릅니다.

점(.) 연산자로 클래스 멤버에 접근하기

클래스의 멤버에 접근하려면 객체 이름 뒤에 점(.) 연산자를 사용합니다. 점 연산자는 객체의 이름과 멤버의 이름을 연결해 주는 역할을 합니다.

Box Box1 = new Box();

위 코드에서 Box1이 바로 새롭게 생성된 객체입니다. 이 객체를 통해 다음과 같이 멤버 변수에 접근할 수 있습니다.

Box1.height = 7.0;

멤버 함수(메서드)를 호출할 때도 마찬가지로 점 연산자를 사용합니다.

Box1.getVolume();

C# 클래스와 객체 예제

다음 예제는 C#에서 클래스와 객체가 어떻게 동작하는지 보여줍니다. 상자(Box)를 나타내는 클래스를 정의한 뒤, 두 개의 객체를 생성하여 각각의 부피(volume)를 계산하고 출력합니다.

using System;

namespace BoxApplication {
    class Box {
        private double length;   // 상자의 길이
        private double breadth;  // 상자의 너비
        private double height;   // 상자의 높이

        public void setLength( double len ) {
            length = len;
        }

        public void setBreadth( double bre ) {
            breadth = bre;
        }

        public void setHeight( double hei ) {
            height = hei;
        }

        public double getVolume() {
            return length * breadth * height;
        }
    }

    class Boxtester {
        static void Main(string[] args) {
            // 두 개의 객체 생성
            Box Box1 = new Box(); // Box 타입의 Box1 선언
            Box Box2 = new Box();
            double volume;

            // 객체를 통해 멤버 함수 호출
            Box1.setLength(6.0);
            Box1.setBreadth(7.0);
            Box1.setHeight(5.0);

            // Box2 사양 설정
            Box2.setLength(12.0);
            Box2.setBreadth(13.0);
            Box2.setHeight(10.0);

            // Box1의 부피 계산
            volume = Box1.getVolume();
            Console.WriteLine("Volume of Box1 : {0}", volume);

            // Box2의 부피 계산
            volume = Box2.getVolume();
            Console.WriteLine("Volume of Box2 : {0}", volume);

            Console.ReadKey();
        }
    }
}

실행 결과

Volume of Box1 : 210
Volume of Box2 : 1560

실행 결과를 보면 같은 Box 클래스로부터 생성된 두 객체가 서로 다른 값을 가지고 독립적으로 동작하는 것을 확인할 수 있습니다. Box1은 길이 6.0, 너비 7.0, 높이 5.0으로 설정되어 부피 210이 출력되었고, Box2는 길이 12.0, 너비 13.0, 높이 10.0으로 설정되어 부피 1560이 출력되었습니다.

정리

클래스는 객체를 만들기 위한 설계도이며, 객체는 그 설계도를 바탕으로 실제 메모리에 생성된 인스턴스입니다. 하나의 클래스로부터 여러 개의 객체를 생성할 수 있으며, 각 객체는 자신만의 고유한 데이터를 가질 수 있습니다. 객체의 멤버에 접근할 때는 점(.) 연산자를 사용한다는 점도 꼭 기억해 두세요.