목차
- Class
- Object
- Instance
- 그럼 객체가 왜 필요할까?
핵심
- Class: 객체를 설계하는 도구
- Object: 선언된 객체 변수
- Instance: 생성되고 값이 있는 객체
- 객체를 만드는 이유는 다양한 자료형을 한 번에 이동하기 위함이다.
Class
Java를** 배우면 자주 등장하는 용어가 있다. Class, Object, Instance이다. 이 용어들이 객체와 관련되어 있다는 건 알겠는데, 정확하게 어떤 차이가 있는지 모르는 경우가 있다. 한번 알아보자.
먼저 Class다. Class는 객체를 설계하는 도구이다. 내가 Book이라는 객체를 만드려고 할 때 먼저 BooK이라는 객체의 속성을 설계해야 한다. 아래 코드처럼
public class Book {
public String title; // 제목
public int price; // 가격
}
책이 가지는 속성(제목, 가격)으로 책을 설계했다. 물론 현실 세계에서 책은 저렇게 단순하지는 않지만 우리는 컴퓨터에서 책을 정의해야 하기 때문에 필요한 속성만 가지고 책을 만들 수 있다. 이제 컴퓨터에서는 책이라는 건 저 Class를 의미한다. 이와 같이 Class는 객체를 설계하는 도구이다. Class가 만들어졌다고 해서 객체가 생성된 것은 아니다.
Object
Object는 선언된 객체 변수이다. Class로 객체를 설계하고 객체를 사용하기 위해선 객체를 생성해야 한다. 생성하기 전에 객체 변수를 선언해야 하는데, 그 객체 변수를 Object라 한다. 변수라는 이름을 생략한 것이다. Object는 구체적이지 않다. 책 예시처럼 책은 큰 범주일 뿐이지 구체적인 책을 지칭하지 않는다. 이처럼 Object는 객체를 담을 수 있는 변수를 말한다. 여기서 특정한 책이 만들어지면 그것을 Instance라고 한다.
Book book; // 객체 변수를 선언했다. 저 book변수를 객체(변수)라 한다.
Instance
Instance는 메모리에 로딩된 구체적인 객체를 말한다. 객체를 사용하려면 무조건 메모리에 객체를 생성해야 한다. 그때 new 연산자와 생성자 메서드를 사용한다. 객체를 생성하면 메모리 에 객체가 만들어지는데 이 객체를 Instance라고 한다. 이전 객체 변수보다 훨씬 구체적인 객체가 된다. 왜냐하면 값이 들어가 있기(초기화) 됐기 때문이다. 예를 들어, 책이라 해도 'java의 정석'이라는 구체적인 객체가 된 것이다.
Book book = new Book(); // 이렇게 생성된 객체를 Instance라고 한다.
하지만 Object와 Instance를 무 자르듯 딱 자를 수 없다. 객체가 생성되면 이제 객체 변수도 인스턴스 변수라고 이름이 변경된다. 그래서 Object를 책이라고 한다면 Instance는 'java의 정석'과 같이 구체적인 책 한 권을 말한다.
그럼 객체가 왜 필요할까?
객체가 필요한 이유는 현실 세계의 사물을 컴퓨터에 표현한다는 목적도 있지만 결국엔 데이터를 이동하기 위함이다. 다양한 자료형을 하나로 묶어 객체로 표현하면 그 여러 개 자료형은 바구니(객체)에 담겨서 이동하기가 편해진다.
'프로그래밍 > Java' 카테고리의 다른 글
19.12.22) Java - private constructor (0) | 2019.12.23 |
---|---|
19.12.22) Java - 메서드 오버로딩(Method Overloading) (0) | 2019.12.23 |
19.12.19) Java - Calendar 프로젝트 (0) | 2019.12.20 |
19.12.19) Java - 변수와 배열 (0) | 2019.12.20 |
19.12.19) Java - 기본 자료형과 객체 자료형 (0) | 2019.12.20 |