클래스, 객체, 인스턴스의 차이

유경우·2024년 2월 13일
0

CS

목록 보기
5/21
post-custom-banner

들어가기 전

이전 포스팅에서 string을 설명할 때 나온 클래스란 단어.
이 단어를 찾다보면 항상 따라오는 단어들이 있습니다.

클래스, 객체, 인스턴스

이 단어들이 왜 클래스와 연관이 있고 어떤식으로 차이가 있을까요?

클래스(Class) - 설계도

처음소개 할 것은 클래스입니다.

클래스는 객체를 생성하기 위한 템플릿이나 설계도입니다.
클래스는 객체의 구조와 행동을 정의합니다.
이 구조에는 속성이 포함되며, 행동은 메서드로 정의됩니다.
클래스 자체는 실제 데이터를 포함하지 않습니다.
그것은 단지 객체가 실제 세계에 어떻게 구현될지를 설명합니다.

예시: Car 클래스는 color, brand, speed 같은 속성과 accelerate(), brake() 같은 메소드를 정의할 수 있습니다.

객체(Object) - 실체

객체는 클래스에 정의된 속성과 메소드를 실제로 가지고 있는 실체입니다. 객체는 클래스의 인스턴스이며, 프로그램 실행 중에 메모리에 할당됩니다. 객체 각각은 클래스에서 정의된 속성에 대해 고유한 값을 가질 수 있으며, 정의된 메소드에 따라 행동할 수 있습니다.

예시: Car 클래스의 객체는 red Tesla 또는 blue BMW가 될 수 있으며, 각각 고유한 속성 값과 동일한 메소드를 가집니다.

인스턴스(Instance) - 메모리에 할당된 객체

인스턴스는 기술적으로 객체와 같은 의미로 사용되며, 클래스로부터 생성된 실제 객체를 지칭합니다.
다만, "인스턴스화"라는 용어는 특히 클래스의 객체가 메모리에 할당되어 실제로 생성되었을 때 사용됩니다.
간단히 말해, 클래스의 인스턴스는 해당 클래스의 정의를 사용하여 생성된 객체입니다.

예시: Car 클래스에서 new Car("red", "Tesla")를 호출하면, Car 클래스의 새 인스턴스가 생성됩니다.

결론

클래스는 객체의 설계도, 객체는 이 설계도를 바탕으로 생성된 실체, 인스턴스는 클래스로부터 메모리에 할당된 객체를 의미합니다.

출처

profile
개발자
post-custom-banner

0개의 댓글