JAVA 자료실

클래스와 객체

작성자 정보

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

컨텐츠 정보

본문

클래스와 객체 지향 프로그래밍
우리는 앞서, 자바의 특징으로 객체지향 프로그래밍(Object-Oriented Programming) 언어임을 배웠습니다.
(복습링크: 자바란 무엇인가?) 요약 하자면, 자바는 프로그램을 만드는 언어이며,
이 프로그램은 객체(Object)들의 집합으로 이루어져 있다는 것입니다.

“자바 프로그램은 객체들로 이루어져있다”

다른 말로 표현하면, 객체를 만들어야만 프로그램을 만들 수 있다는 이야기 입니다.
그렇다면 객체는 어떻게 만들 수 있을까요?
정답은 “클래스(class) 사용하여 만든다” 입니다.

객체는 클래스를 사용하여 만든다

클래스와 객체의 관계는 설계도와 실제건물간의 관계로 설명 할 수 있습니다.
설계도를 통해 실제 건물이 지어지듯, 클래스를 통해 객체가 생성되기 때문입니다.

클래스를 작성하기위해 클래스의 구조와 클래스를 설계하는법을 알아보도록 합시다.

클래스의 구조
클래스는 필드(fields)와 메쏘드(methods)의 구조로 이루어 져 있습니다.
필드는 객체의 정보(상태)를 저장하며, 메쏘드는 객체의 동작(기능)을 서술합니다.

클래스 설계하기

두 캐릭터의 격투 게임을 만든다는 가정하에, 캐릭터 클래스를 설계해봅시다.
캐릭터의 정보(필드)로는 이름, 체력, 공격력 등이 있을 수 있겠네요.
캐릭터의 동작(메쏘드)으로는 상대를 공격하는 펀치와 무기공격이 있다고 합시다.
그렇다면 클래스는 다음과 같이 설계됩니다.

다음 예로 자동차 클래스를 설계해봅시다.
자동차의 정보로는 이름, 크기, 배기량, 사용연료 등이 있겠네요.
동작으로는 가감속, 기어변경, 경적울리기 등이 있습니다.

클래스 만들기
두둥!! 설계된 클래스를 실제 소스코드로 작성해보는 시간입니다!!
 어렵지 않아요~~

캐릭터 클래스 구현

class Character {

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

    void punch(Character enermy) {
        // 펀치의 동작을 작성..
    }

    void weaponAttack(Character enermy) {
        // 무기공격의 동작을 작성..
    }
}


자동차 클래스 구현

class Car {

    String name; // 이름
    int displacement; // 배기량
    String size; // 크기
    String powerSource; // 사용연료

    void accelate(int force) {
        // 가감속 기능 작성..
    }

    void gearChanging(int level) {
        // 기어 변속 작성..
    }

    void klaxon() {
        // 경적 울리기 작성..
    }
}


신용카드 클래스 구현

class CreditCard {

    String cardNumber; // 카드번호
    String ownerName; // 소유자명
    String expirationDate; // 유효기간

    void pay(int payment) {
        // 지불하기 작성..
    }

    void reward(int point) {
        // 포인트 적립 작성..
    }
}

관련자료

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