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

img_6.png
  • 클래스

    • 객체(object)를 만들기 위한 설계도, 틀이며 객체를 기술하는 문법이라고 볼 수 있다.

  • 객체(object)

    • 클래스에서 설계한 대로, 즉 특정 클래스의 타입으로 선언된 변수를 객체라고 부른다.

  • 인스턴스

    • 인스턴스와 객체는 사실 같다고 볼 수 있지만, 차이는 객체는 변수만 선언되어 있을 뿐 아직 사용할 준비가 되지 않은 것이다.

    • 인스턴스는 new 연산자를 사용하여 클래스의 생성자 함수를 호출하여 생성된 객체를 인스턴스라고 한다.

    • 이를 인스턴스화한다고 하며, 인스턴스는 Heap 메모리 영역에 올라가게 된다.

    • 생성된 인스턴스 객체는 클래스의 프로퍼티와 메서드를 사용할 수 있게 된다.

    • 생성된 인스턴스 객체는 클래스와 독립적으로 존재하며, 각 인스턴스 객체는 자신만의 데이터를 가질 수 있다.

정리

  • 클래스는 객체를 정의해놓은 설계도이고, 객체는 클래스를 기반으로 만들어진 결과물이며, 인스턴스는 객체를 소프트웨어에서 사용하기 위해 인스턴스화시켜 메모리 영역에 올라간 객체의 상태를 말한다.

Person a; //객체
a = new Person(); //인스턴스

Person b = new Person(); //객체 -> 인스턴스

참고

Last updated