JAVA 자료실

객체의 생성과 사용

작성자 정보

  • 작성자 최고관리자
  • 작성일

컨텐츠 정보

본문

객체(인스턴스)의 생성
객체(또는 인스턴스: 클래스의 실제 구현물)는 아래와 같은 형식으로 생성합니다.


public static void main(String[] args) {
    CLASS reference = new CLASS();
}


실제 예를 들어 객체를 생성해봅시다.
이전 수업(클래스와 객체)에서 구현했던 캐릭터 클래스를 생성하려면 어떻게 할까요?
아래와 같이 MainTest.java 파일을 작성하면 됩니다.


class MainTest {
    public static void main(String args[]) {
        // 캐릭터 인스턴스를 생성한 뒤,
        // 변수 a에 해당 객체를 연결(참조).
        Character a = new Character();
    }
}


캐릭터 클래스는 Character.java 라는 파일로 아래코드와 같이 작성되어있습니다.


class Character {

    String name; // 이름
    int hp; // 체력
    int attackPoint; // 공격력

    void punch() {
        System.out.println("펀치!!");
    }

    void weaponAttack() {
        System.out.println("무기공격!!!!");
    }
}


객체의 사용
그럼 본격적으로 객체(또는 인스턴스: 클래스의 실제 구현물)를 사용해봅시다.
앞에서 만든 캐릭터의 두 가지 동작(펀치, 무기공격)을 수행해 볼까요?

MainTest.java


class MainTest {
    public static void main(String args[]) {
        // 캐릭터 인스턴스를 생성한 뒤,
        // 변수 a에 해당 객체를 연결(참조).
        Character a = new Character();

        // 펀치
        a.punch();

        // 무기공격
        a.weaponAttack();
    }
}


생성자의 필요성
생성자(contructor)는 인스턴스를 생성해주는 메쏘드이며, 생성시 필요한 내용들을 초기화 하여줍니다.
 캐릭터 클래스의 기능을 확장시켜 이해를 도와봅시다.
아래와 같이 상태보기 기능을 캐릭터 클래스에 구현하였습니다.


public class Character {
    String name;
    int hp;
    int attackPoint;

    void punch() {
        System.out.println("펀치!!");
    }

    void weaponAttack() {
        System.out.println("무기공격!!!!");
    }

    void status() {
        System.out.println("<상태보기>");
        System.out.println("t캐릭터: " + name);
        System.out.println("t체 력: " + hp);
        System.out.println("t공격력: " + attackPoint);
    }
}


구현된 기능을 실제로 실행해봅시다.


class MainTest {
    public static void main(String[] args) {
        Character a = new Character();
        a.status(); // 상태보기 수행
    }
}


결과화면을 보면 캐릭터의 이름, 체력, 공격력 모두가 자료형의 초기값으로 설정이 되어있습니다.

이와같은 결과를 얻기위해 우리는 생성자를 추가하려 합니다.
생성자(contructor)는 인스턴스를 생성해주는 메쏘드이며,
생성시 필요한 내용들을 초기화 하여줍니다.


생성자 만들기
적당한 생성자가 완성되어있다면 인스턴스의 생성은 생각보다 간단합니다.


class MainTest {
    public static void main(String[] args) {
        // Character a = new Character();

        // 새로 만든 생성자에 의한 인스턴스 생성
        Character a = new Character("트레이서", 150, 60);
        a.status(); // 상태보기 수행
    }
}


위에서 사용한 생성자는 파라메터를 3개를 받고 있습니다.
그리고 그 값들은 캐릭터 인스턴스의 생성정보로 초기화 됩니다.
먼저 결과화면을 확인합시다.

다음으로 실제 생성자 코드의 구현은 아래와 같습니다.


public class Character {
    String name;
    int hp;
    int attackPoint;

    // 생성자(constructor)
    public Character(String name, int hp, int attackPoint) {
        this.name = name;
        this.hp = hp;
        this.attackPoint = attackPoint;
    }

    ...
}

관련자료

댓글 0
등록된 댓글이 없습니다.
알림 0