[ 개요 ]
C#은 객체지향 프로그래밍 언어(Object Oriented Programming)라는 말은 많이 들어봤을 것이다.
객체지향은 말 그대도 객체를 이용하는 프로그래밍 언어라는 뜻이다.
프로그래밍에서 객체(Object), 클래스(Class), 인스턴스(Instance)라는 용어가 자주 언급되는데 이것들이 무엇인지 알아보도록 하자
[ 객체(Object) ]
기본적인 정의는 물리적이나 추상적으로 존재하는 사물이다.
프로그래밍에서는 클래스를 통해 생성한 인스턴스를 의미한다.
위키피디아에서는 “클래스에서 정의한 것을 토대로 메모리(실제 저장 공간)에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간”라고 말한다.
[ 클래스(Class) ]
객체를 생성하기 위해 만들어놓은 설계도이다.
프로그래밍에서는 멤버 변수와 메서드를 가지는 객체를 만들기 위해 정의한 자료형이라고 볼 수 있다.
[ 인스턴스(Instance) ]
클래스를 통해 메모리에 할당된 실체라고 볼 수 있다.
[ 객체 vs 클래스 vs 인스턴스 ]
프로그래밍을 시작한 사람들이 가장 헷갈려 하는 개념들 중에 하나다.
특히 객체와 인스턴스를 정의하는 부분에서 조사한 자료들마다 의견이 다른데 저자는 이렇게 정의하고 싶다.
객체는 추상적(소프트웨어)으로 구현되는 개념이고 인스턴스는 실제 메모리에 할당되는 실체로서 인스턴스는 객체에 포함된다고 볼 수 있다.
그럼 클래스와 인스턴스의 관계를 설명해 주자면, 보통 붕어빵 틀과 붕어빵으로 설명을 할 수 있다.


붕어빵 틀 하나에는 수많은 붕어빵들을 생성할 수 있다.
그리고 붕어빵 틀을 이용하여 팥 붕어빵, 슈크림 붕어빵 등 다양한 붕어빵들을 만들 수 있다.
클래스 하나로 수많은 인스턴스를 만들어 낼 수 있으며, 클래스의 멤버 변수와 메서드들을 활용하여 다양한 인스턴스를 생성할 수 있다.
[ 참고자료 ]
https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)
[ 이미지 참고 ]
붕어빵틀 사진
붕어빵 사진
'C#문법' 카테고리의 다른 글
| [C#문법] Part13 생성자(Constructor)와 소멸자(Destructor) (4) | 2024.10.09 |
|---|---|
| [C#문법] Part12 클래스(Class) (2) | 2024.10.04 |
| [C#문법] Part11 구조체(struct) (0) | 2024.10.04 |
| [C#문법] Part10 지역변수와 전역변수(Local variable, Grobal variable) (0) | 2023.03.15 |
| [C#문법] Part9-3 함수: params (1) | 2023.03.15 |