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 |