본문 바로가기
Java

[Java] 클래스로 객체 모델링

by JooRi 2024. 4. 9.
728x90
SMALL

* 사용자정의 자료형

사용자정의 자료형 = 새로운 자료형, 객체 자료형

 

변수에 데이터를 저장하려면 자료형이 필요하다.

1개의 정수 데이터를 저장하기 위해 int 자료형으로 변수를 선언해야 하듯이,

1개의 책 데이터를 저장하기 위해 book이라는 자료형을 만들어서 사용해야 한다.

 

* Class(클래스)

클래스는 객체를 모델링(설계)하는 도구이다.

 

- 자료형 측면에서의 클래스: 새로운 자료형을 만드는 도구

 

package fc.java.part3;

// 책 데이터를 담을 객체
public class BookDTO {  // 클래스 fullname: fc.java.part3.BookDTO
    public String title;
    public int price;
    public String company;
    public String author;
    public int page;
    public String isbn;
}

 

package fc.java.part3;

// 회원 정보를 담을 객체
public class MemberDTO {
    public String name;
    public int age;
    public String phone;
    public String email;
    public String addr;
    public float weight;
}

 

package fc.java.part3;

// 영화 정보를 담을 객체
public class MovieDTO {
    public String title;
    public int day;
    public String major;
    public String part;
    public float time;
    public int level;
}

 

(String도 java.lang 패키지에 만들어져 있는 사용자정의 자료형이지만, import 부분이 디폴트 되어 있기 때문에 생략 가능한 것이다.)

 

 

- 객체지향 측면에서의 클래스: 객체의 상태정보(멤버변수)와 행위정보(멤버메서드)를 뽑아서 설계하는 도구

 

객체지향 측면에서의 클래스

 

코드 예시

package fc.java.part3;
// 객체 = 상태정보(멤버변수) + 행위정보(멤버메서드)
public class Person {  // person 객체
    // 3개의 상태정보(멤버변수)
    public String name;
    public int age;
    public String phone;

    // 3개의 행위정보(멤버메서드)
    public void play(){
        System.out.println("운동을 한다.");
    }
    public void eat(){
        System.out.println("음식을 먹다.");
    }
    public void walk(){
        System.out.println("걷다.");
    }
}

 

* 객체 생성 과정 

모델링 된 객체를 사용하려면 메모리에 객체를 생성해야 한다.

 

1. 한 사람의 데이터를 저장할 변수 선언

여기서 p는 객체를 저장하는 '객체 변수'이다.

 

Person p;  // p는 객체변수(객체를 저장하는 변수)

 

 

 

2. 사람의 이름, 나이 등 정보를 저장할 객체 생성

객체를 실제로 메모리에 생성하는 단계이다. = 인스턴스 생성

new 연산자와 생성자 메서드를 사용하여 객체를 생성한다.

 

new Person();  // new 연산자와 생성자 메서드()

 

 

3. 생성된 객체를 변수에 할당

이때 p는 인스턴스 변수이다.

 

Person p=new Person();

 

 

4. 최종 코드

 

package fc.java.part3;

public class PersonTest {
    public static void main(String[] args) {
        Person p=new Person();  // 인스턴스 생성
        
        p.name="홍길동";
        p.age=30;
        p.phone="010-1311-3113";
        System.out.println(p.name+"\t"+p.age+"\t"+p.phone);
        
        p.play();
        p.eat();
        p.walk();
    }
}

// 출력
홍길동	30	010-1311-3113
운동을 한다.
음식을 먹다.
걷다.

 

 

* 생성자 메서드(Constructor)

1. new 연산자에 의해 호출된다.

2. 자신이 가지고 있는 멤버들을 메모리에 올려 객체를 생성하는 역할

3. 메서드 이름은 클래스 이름과 같아야 한다.

4. 접근제한자가 public인 경우에만 호출된다.

5. 객체의 초기화를 위해 사용된다.

6. 리턴 타입이 없다.(void도 사용 x)

 

728x90
LIST

댓글