- 객체를 만들어 내기 위한
설계도
혹은 틀 - 연관되어 있는 변수와 메서드의 집합.
- 소프트에어 세계에
구현할 대상
- 클래스에 선언된 모양 그대로 생성된 실체
특징
클래스의 인스턴스
라고도 부른다.- 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다
- oop의 관점에서 클래스의 타입으로 선언되었을때 '객체'라고 부른다.
- 설계도를 바탕으로 소프트웨어 세계에
구현된 구체적인 실체
- 즉, 객체를 소프트웨어에 실체화 하면 그것을 '인스턴스' 라고 부른다.
- 실체화된 인스턴스는 메모리에 할당된다.
특징
- 인스턴스는 객체에 포함된다고 볼 수 있다.
- 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 클래스의 인스턴스
}
- 클래스는 설계도, 객체는 설계도로 구현한 모든 대상을 의미한다
- 클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.
- 객체는 현실 세계에 가깝고, 인스턴스는 소프트웨어 세계에 가깝다.
- 객체는 '실체' , 인스턴스는 '관계'에 초점을 맞춘다
- 객체를 클래스의 인스턴스 라고도 부른다