새로운 자료형

강9·2023년 11월 15일
0

Java

목록 보기
14/71
post-thumbnail

💡 객체(Object)란?

class선언된 모양 그대로 생성된 실체
▶️ 객체(Object) = 이질적인 구조 = 모델(Model) = 덩어리(Value Object) = 바구니 = 이동(Data Transfer Object)

  • '클래스의 인스턴스(instance)'라고도 한다.

    ex.
    책 데이터 --> BookDTO
    영화 데이터 --> MovieVO
    --> 클래스의 의미를 부여하기 위해 DTO, VO를 표기하기도 한다. (Data Transfer Object, Value Object)


💡 인스턴스(Instance)란?

설계도를 바탕으로 구현된 구체적인 실체


개발자가 다루는 대부분의 데이터는 객체(Object)데이터 입니다.

객체데이터 : 하나의 구조(하나의 변수)로 이루어진 데이터가 아니라
여러개의 구조(여러개의 변수)로 이루어진 데이터이다.

  • 이러한 객체 데이터를 변수에 저장하기 위해서는 새로운 자료형이 필요하기에
    개발자가 직접 자료형을 만들어서 사용할 수 있다.
    (객체지향프로그래밍)

💡 Class란?

새로운 자료형만들고, 설계하고, 모델링하는 도구

  • 객체를 만들어 내기 위한 설계도(틀)
  • 연관되어 있는 변수와 메서드의 집합

✅ 객체지향 측면 : 현실세계에 있는 객체를 객체지향 프로그램에서 사용하기 위해 객체상태정보(멤버변수)행위정보(멤버메서드)를 뽑아서 설계하는 도구


// 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("걷다.");
    }
}

🔖 클래스의 설계(Modeling)

ex. 책 이라는 자료형을 생성하라.
-> 책(Object)이라는 데이터를 분석
-> 속성 : 책을 이루고 있는 항목
-> 속성 중 필요성에 따라 꼭 필요한 속성만 남기고 제외한다.(클래스 설계)
-> 기억공간을 개별로 만들지 않고 하나의 구조로 만든다.(여러개의 개별 기억공간으로 만들게되면 이동 등에 어려움이 있음)


Book 클래스 생성 예제)

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 데이터를 저장하기 위한 객체 생성(인스턴스 생성)

Book b = new Book();
b.title = "제목";
b.price = "10000";
b.company = "출판사";
b.author = "저자";
b.page = 100;
b.isbn = "12345";
profile
코린이 일기

0개의 댓글