[Java] - 클래스, 객체

링딩·2023년 4월 3일
0

Computer Science

목록 보기
20/49

1. 클래스, 객체, 인스턴스


📕 클래스란?

◽ 개념

  • 객체를 만들어 내기 위한 틀
  • 연관되어 있는 변수와 메서드들의 집합

📕 객체(Object)란?

◽ 개념

  • 클래스에 선언된 모양 그대로 생성된 실체

◾ 특징

  • ‘클래스의 인스턴스'
  • 모든 인스턴스를 대표하는 포괄적 의미를 띈다.
  • oop의 관점에서 클래스의 타입으로 선언되었을 때 '객체'라고 불림.

📕 인스턴스(Instance) 란?

◽ 개념

  • 객체를 소프트웨어에 실체화 한 것을 ‘인스턴스’

◾ 특징

  • 객체에 포함된다.
  • 모든 인스턴스를 대표하는 포괄적 의미를 띈다.
  • oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 ‘인스턴스’

이 셋을 코드로 비교하여 보면

/* 클래스 */
public class Animal {
  ...
}
/* 객체와 인스턴스 */
public class Main {
  public static void main(String[] args) {
    Animal cat, dog; // '객체'

    // 인스턴스화
    cat = new Animal(); // cat은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
    dog = new Animal(); // dog은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
  }
}
https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html

  • 클래스와 객체의 차이?
    => 클래스는 '설계도', 객체는 설계도를 통해 구현한 '대상'을 의미

+) 객체와 인스턴스는...

클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다고 하지만 실상 엄격하게 이 둘을 '원본'(추상적 개념)으로부터 생성되었다는 것을 보기 위해 나눈 것일 뿐이고 이 둘을 엄격히 나누기는 어렵다고 한다.

profile
초짜 백엔드 개린이

0개의 댓글