정수, 실수 문자 같은 경우 단일 데이터로 저장할 수 있지만(기본 자료형), 회원의 데이터나 책 데이터 같은 경우를 저장하기 위해선 단일 데이터로 저장할 수 없다. 이를 하나의 구조로 만들어 데이터로 저장해 관리하기 위해 데이터 저장을 위한 새로운 자료형을 만들 수 있다.
이렇게 필요에 의해 만들어지는 새로운 자료형을 객체(Object)라고 한다.
객체 = 모델(Model) = 덩어리(Value Object) = 바구니 = 데이터의 이동(Data Transfer Object)
Class는 객체의 상태정보(멤버변수)와 행위정보(멤버메서드)를 설계하고 모델링하기 위한 도구로 쓰인다.
객체를 만들기 위한 속성을 설계하고 생성하기 위한 도구로 Class를 사용한다.
쉽게 말해, 객체를 찍어내기 위한 틀, 설계도 라고 보면 된다.
public class BookDTO {// Class에 객체를 모델링 하였다.
public String title;
public int price;
public String publisher;
public author;
public int page;
public String isbn;
}
상태정보(멤버변수)와 행위정보(멤버메서드)를 가진 객체
public class Person {
public String name;
public int age;
public int phone;
public void play() {
System.out.println("운동을 한다.");
}
public void eat() {
System.out.println("음식을 먹다.");
}
public void walk() {
System.out.println("걷다.");
}
}
객체 = 상태정보(멤버변수) + 행위정보(메서드)
모델링 된 객체를 사용하기 위해서는 메모리에 객체를 생성 해야 한다.
Person p; //객체를 생성하기 위한 객체변수 선언(p: 객체변수)
-----
Person p = new Person(); 객체 생성 및 할당(p: 인스턴스 변수)
메모리에 생성되어 실체화된 객체는 인스턴스라고 부른다.
인스턴스 : 실체화된 객체
객체가 만들어지는 메모리 영역을 Heap Memory라고 한다.
생성자메서드(Constructor) : 객체를 메모리에 생성하는 역할을 한다.
Person p = new Person();
모든 클래스는 기본 생성자를 가지고 있기 때문에 객체 생성이 가능하다.
this : 객체가 생성된 후 자신을 가리키는 레퍼런스변수(참조변수, 포인터변수)
객체가 생성된 후 멤버에 접근하기 위해선 도트 연산자(.)로 접근한다.
Person p = new Person(); // 객체 생성 및 초기화
p.name = "김이박"; // 멤버 변수에 접근
p.age = 26;