[java] 클래스로 객체 모델링해보기

송어·2023년 11월 11일

사용자정의 자료형

정수, 실수 문자 같은 경우 단일 데이터로 저장할 수 있지만(기본 자료형), 회원의 데이터나 책 데이터 같은 경우를 저장하기 위해선 단일 데이터로 저장할 수 없다. 이를 하나의 구조로 만들어 데이터로 저장해 관리하기 위해 데이터 저장을 위한 새로운 자료형을 만들 수 있다.

이렇게 필요에 의해 만들어지는 새로운 자료형을 객체(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라고 한다.

생성자메서드와 this

생성자메서드(Constructor) : 객체를 메모리에 생성하는 역할을 한다.

Person p = new Person();

모든 클래스는 기본 생성자를 가지고 있기 때문에 객체 생성이 가능하다.

생성자 메서드?

  • new 연산자에 의해 호출이 된다.
  • 자신이 가지고 있는 멤버들을 메모리에 올려 객체생성한다.
  • 메서드 이름은 클래스의 이름과 동일하다.
  • 접근제한자가 piblic일 경우에만 호출이 된다.
  • 모든 클래스는 기본생성자(default constructor)를 가지고 있다.
  • 객체의 초기화를 위해 사용된다.
  • 객체는 리턴 타입이 없다.

this

this : 객체가 생성된 후 자신을 가리키는 레퍼런스변수(참조변수, 포인터변수)

객체가 생성된 후 멤버에 접근하기 위해선 도트 연산자(.)로 접근한다.

Person p = new Person(); // 객체 생성 및 초기화

p.name = "김이박"; // 멤버 변수에 접근
p.age = 26;

0개의 댓글