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

C#에서 객체(Object)와 클래스(Class)의 차이점 완벽 정리

C#의 객체와 클래스란?

C#은 Java와 마찬가지로 객체 지향 프로그래밍 언어로, 클래스(Class)객체(Object)라는 핵심 개념을 사용합니다.

클래스는 객체를 만들기 위한 설계도(템플릿)입니다. 데이터(필드)와 동작(메서드)을 하나로 묶어 정의하며, 그 자체로는 실체가 아닙니다.

객체는 현실 세계의 실체를 프로그램으로 표현한 것으로, 클래스의 인스턴스(instance)입니다. 하나의 클래스로부터 여러 개의 독립적인 객체를 생성할 수 있으며, 객체를 통해서만 클래스의 멤버에 접근할 수 있습니다.

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

클래스의 멤버(필드나 메서드)에 접근하려면 객체 이름 뒤에 점(.) 연산자를 붙여야 합니다. 점 연산자는 객체 이름과 멤버 이름을 연결하는 역할을 합니다.

먼저 new 키워드로 객체를 생성합니다.

Box Box1 = new Box();

위 코드에서 Box1이 바로 생성된 객체입니다. 이 객체를 사용해 멤버 변수에 값을 할당할 수 있습니다.

Box1.height = 3.0;

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

Box1.getVolume();

예제 코드

다음 예제는 C#에서 객체와 클래스가 실제로 어떻게 동작하는지 보여줍니다. Box 클래스는 상자의 길이, 너비, 높이를 저장하고 부피를 계산하는 기능을 제공합니다.

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

클래스와 객체의 차이점 한눈에 보기

구분클래스객체
개념객체를 만들기 위한 설계도클래스의 실제 인스턴스
메모리선언 시에는 메모리가 할당되지 않음new로 생성될 때 메모리가 할당됨
개수하나만 정의하나의 클래스로 여러 개 생성 가능
역할데이터와 동작의 구조 정의실제 데이터를 담고 동작 수행

예제에서 Box1과 Box2는 동일한 Box 클래스로부터 생성된 두 개의 독립적인 객체입니다. 각 객체는 자신만의 length, breadth, height 값을 가지며, 같은 getVolume() 메서드를 호출했음에도 각각 210과 1560이라는 서로 다른 부피 값이 출력됩니다. 이것이 바로 클래스는 하나지만 객체는 여러 개 존재할 수 있다는 점, 그리고 각 객체가 독립적인 상태를 유지한다는 점을 잘 보여주는 예입니다.