이전 포스팅에서 string을 설명할 때 나온 클래스란 단어.
이 단어를 찾다보면 항상 따라오는 단어들이 있습니다.
클래스, 객체, 인스턴스
이 단어들이 왜 클래스와 연관이 있고 어떤식으로 차이가 있을까요?
처음소개 할 것은 클래스입니다.
클래스는 객체를 생성하기 위한 템플릿이나 설계도입니다.
클래스는 객체의 구조와 행동을 정의합니다.
이 구조에는 속성이 포함되며, 행동은 메서드로 정의됩니다.
클래스 자체는 실제 데이터를 포함하지 않습니다.
그것은 단지 객체가 실제 세계에 어떻게 구현될지를 설명합니다.
예시: Car
클래스는 color
, brand
, speed
같은 속성과 accelerate()
, brake()
같은 메소드를 정의할 수 있습니다.
객체는 클래스에 정의된 속성과 메소드를 실제로 가지고 있는 실체입니다. 객체는 클래스의 인스턴스이며, 프로그램 실행 중에 메모리에 할당됩니다. 객체 각각은 클래스에서 정의된 속성에 대해 고유한 값을 가질 수 있으며, 정의된 메소드에 따라 행동할 수 있습니다.
예시: Car
클래스의 객체는 red Tesla
또는 blue BMW
가 될 수 있으며, 각각 고유한 속성 값과 동일한 메소드를 가집니다.
인스턴스는 기술적으로 객체와 같은 의미로 사용되며, 클래스로부터 생성된 실제 객체를 지칭합니다.
다만, "인스턴스화"라는 용어는 특히 클래스의 객체가 메모리에 할당되어 실제로 생성되었을 때 사용됩니다.
간단히 말해, 클래스의 인스턴스는 해당 클래스의 정의를 사용하여 생성된 객체입니다.
예시: Car
클래스에서 new Car("red", "Tesla")
를 호출하면, Car
클래스의 새 인스턴스가 생성됩니다.
클래스는 객체의 설계도, 객체는 이 설계도를 바탕으로 생성된 실체, 인스턴스는 클래스로부터 메모리에 할당된 객체를 의미합니다.