본문 바로가기

Java

[Java] 객체 지향 프로그래밍 클래스 인스턴스

public class Animal {
	
}

 

위 형태가 클래스이다. 객체 지향 프로그래밍에서 변수와 메소드를 정의하는 일종의 틀이다. 

Class(클래스)

  • 클래스는 객체를 생성하기 위해 사용한다.
  • 클래스에는 서로 연관된 변수와 메소드를 모아놓는 그릇이다.

Object(객체)

  • 사전적 의미는 "실제로 존재하는 것" 이다.
  • 클래스에 선언된 것이다.

Instance(인스턴스)

  • 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.
  • 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 한다.
  • 인스턴스를 객체라고 말해도 무관하다.
쉽게 정리해서 클래스는 집을 만드는 설계도이고 설계도로 만든 집을 인스턴스 할 수 있다. 클래스로 만든 모든 것을 객체라고 부른다. 인스턴스는 객체라고 말할 수 있다.

Object(객체) vs Instance(인스턴스) 차이가 무엇인가?

결국 Instance(인스턴스)와  Object(객체) 둘 다 아래 의미를 내포한다.

  • 사전적 의미는 "실제로 존재하는 것"이다.
  • 무언가로부터 생성됐다.

하지만 오브젝트는 첫 번째, 인스턴스는 두 번째에 무게가 실려있다.

즉, 인스턴스는 무언가(클래스)로 부터 생성됐다는 것을 조금 더 내포되어있다고 할 수 있다.

Java 클래스 인스턴스 구현

/* 클래스 */
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 클래스의 '인스턴스'(객체를 메모리에 할당)
  }
}

 

 

인용

'Java' 카테고리의 다른 글

[Java] 접근 제어자 (Access level modifier)  (0) 2020.02.01
[Java] Java의 동작 원리와 순서  (0) 2020.01.29