Post

CS - 클래스, 객체, 인스턴스에 대해 알아보자.

CS - 클래스, 객체, 인스턴스에 대해 알아보자.

클래스

쉽게 말하면 객체를 만들기 위한 설계도이다.
객체를 만들기 위한 상태(필드), 행위(메서드)만 정의되어 있다.

클래스 예시

1
2
3
4
5
6
7
public class Book{
  private String title;
  private String content;
  private String isbn;

  // getter, setter
}

위와 같이 Book 이라는 클래스를 정의하였다.

이 Book 이라는 설계도를 토대로 객체를 만들 수 있게된다.

객체

정의한 클래스(설계도)를 기반으로 만든 실체이다.

객체 선언 예시

1
2
3
public static void main(String args[]){
  Book book1;
}

인스턴스

생성한 객체가 메모리에 할당된 상태를 뜻한다.

인스턴스 생성 예시

1
2
3
public static void main(String args[]){
  Book book1 = new Book();
}

위 코드와 같이 new 키워드를 사용하여 객체를 메모리에 할당시킨 상태를 인스턴스라고 한다.

객체와 인스턴스의 차이

  • 객체: 정의한 클래스로 만든 실체(개념적으로 존재하는 상태)
  • 인스턴스: 메모리에 할당된 객체(현실적으로 존재하는 상태)

즉, 모든 인스턴스는 객체지만, 모든 객체가 인스턴스는 아니다.

1
2
3
4
public static void main(String args[]){
  Book book1; // 객체 O, 인스턴스 X
  Book book2 = new Book(); // 객체 O, 인스턴스 O
}

그러나 보통은 객체와 인스턴스를 구분하지 않고 같은 의미로 사용한다.

This post is licensed under CC BY 4.0 by the author.