class에 선언된 모양 그대로 생성된 실체
▶️ 객체(Object) = 이질적인 구조 = 모델(Model) = 덩어리(Value Object) = 바구니 = 이동(Data Transfer Object)
인스턴스(instance)
'라고도 한다.ex.
책 데이터 --> BookDTO
영화 데이터 --> MovieVO
--> 클래스의 의미를 부여하기 위해 DTO, VO를 표기하기도 한다. (Data Transfer Object, Value Object)
설계도를 바탕으로 구현된 구체적인 실체
객체데이터 : 하나의 구조(하나의 변수)로 이루어진 데이터가 아니라
여러개의 구조(여러개의 변수)로 이루어진 데이터이다.
- 이러한 객체 데이터를 변수에 저장하기 위해서는 새로운 자료형이 필요하기에
개발자가 직접 자료형을 만들어서 사용할 수 있다.(객체지향프로그래밍)
새로운 자료형을 만들고, 설계하고, 모델링하는 도구
✅ 객체지향 측면 : 현실세계에 있는 객체를 객체지향 프로그램에서 사용하기 위해 객체의 상태정보(멤버변수)와 행위정보(멤버메서드)를 뽑아서 설계하는 도구
// class 생성
public class Book {
public String title; // 제목
public int price; // 가격
public String company; // 출판사
public String author; // 저자
public int page; // 페이지수
public String isbn; // isbn
}
-> Book b; // 새로운 자료형(객체자료형)
public class Person {
public String name;
public int age;
public String phone;
public void play() {
System.out.println("운동을 한다.");
}
public void eat() {
System.out.println("음식을 먹다.");
}
public void walk() {
System.out.println("걷다.");
}
}
ex. 책 이라는 자료형을 생성하라.
-> 책(Object)이라는 데이터를 분석
-> 속성 : 책을 이루고 있는 항목
-> 속성 중 필요성에 따라 꼭 필요한 속성만 남기고 제외한다.(클래스 설계)
-> 기억공간을 개별로 만들지 않고 하나의 구조로 만든다.(여러개의 개별 기억공간으로 만들게되면 이동 등에 어려움이 있음)
public class BookDTO {
// 상태정보, 멤버변수, 속성, 프로퍼티
public String title; // 제목
public int price; // 가격
public String company; // 출판사
public String author; // 저자
public int page; // 페이지수
public String isbn; // ISBN
}
제목 | 가격 | 출판사 | 저자 | 페이지수 | ISBN |
---|
변수 선언 | 객체 생성(실체 생성) | 생성된 객체 연결(저장) |
---|---|---|
Book b; | new Book(); | b = new Book(); |
↓ | ↓ | |
Book b; --> 객체변수 | new --> new연산자 Book(); --> 생성자 메서드() |
Book b = new Book();
b.title = "제목";
b.price = "10000";
b.company = "출판사";
b.author = "저자";
b.page = 100;
b.isbn = "12345";