객체란 실생활에 존재하거나 생각할 수 있는 어떠한 것을 말한다. 예를 들어 책, 영화, 자동차 등을 말하는데, 책이라는 객체는 많은 데이터를 담고 있다. 책의 제목, 저자, 가격, 출판사 등.. 이는 하나로 표현될 수 없는 개념이다.
이것을 프로그래밍 관점에서 보면, 책은 char, int, double, boolean 등 기본자료형에 의해 정의될 수 없다. 따라서 새로운 자료형이 필요하게되고, 이를 사용자정의 자료형이라 한다.
즉, 사용자정의 자료형이란 객체데이터를 정의하기 위한 자료형이다. 그리고 사용자정의 자료형을 만들기 위한 도구가 바로 클래스이다.
package com.tutorials;
public class Book {
public String title;
public int price;
public String company;
public String author;
public int page;
public String isbn;
}
책이라는 객체(Object)를 정의하기 위한 Book 클래스를 정의하였다.
package com.tutorials;
public class BookTest {
public static void main(String[] args) {
Book book = new Book();
book.title = "이것이 자바인가?";
book.price = 35000;
book.company = "미디어자바";
book.author = "Dean";
book.page = 325;
book.isbn = "115421589";
printBook(book);
}
public static void printBook(Book book) {
System.out.println(book.title + "\t" + book.price + "\t" + book.company + "\t" + book.author + "\t" + book.page + "\t" + book.isbn);
// 이것이 자바인가? 35000 미디어자바 Dean 325 115421589
}
}
앞서 정의된 클래스를 실제로 사용하기 위해서는 생성이 필요하다. 생성 방법은 위와 같다.
클래스 : 정의되어있는 클래스
변수 : 해당 클래스로 생성될 객체의 이름
new : new 연산자로 객체 생성을 알려준다.
생성자 : 객체 생성 및 초기값 설정 시 사용하는 생성자메서드
이때 객체 book을 클래스 Book의 인스턴스라 한다.
객체 생성의 과정을 좀 더 구체적으로 표현하면 아래와 같다.