클래스와 객체(Object), 인스턴스의 차이는 무엇인가요?

클래스
객체(
object)를 만들기 위한 설계도, 틀이며 객체를 기술하는 문법이라고 볼 수 있다.
객체(object)
클래스에서 설계한 대로, 즉 특정 클래스의 타입으로 선언된 변수를 객체라고 부른다.
인스턴스
인스턴스와 객체는 사실 같다고 볼 수 있지만, 차이는 객체는 변수만 선언되어 있을 뿐 아직 사용할 준비가 되지 않은 것이다.
인스턴스는
new연산자를 사용하여 클래스의 생성자 함수를 호출하여 생성된 객체를 인스턴스라고 한다.이를 인스턴스화한다고 하며, 인스턴스는 Heap 메모리 영역에 올라가게 된다.
생성된 인스턴스 객체는 클래스의 프로퍼티와 메서드를 사용할 수 있게 된다.
생성된 인스턴스 객체는 클래스와 독립적으로 존재하며, 각 인스턴스 객체는 자신만의 데이터를 가질 수 있다.
정리
클래스는 객체를 정의해놓은 설계도이고, 객체는 클래스를 기반으로 만들어진 결과물이며, 인스턴스는 객체를 소프트웨어에서 사용하기 위해 인스턴스화시켜 메모리 영역에 올라간 객체의 상태를 말한다.
Person a; //객체
a = new Person(); //인스턴스
Person b = new Person(); //객체 -> 인스턴스참고
Last updated