본문 바로가기

프로그래밍/객체지향

[객체지향] 클래스,객체에 대해 생각해보기(계속 추가)

반응형

* 클래스 (Class)

  - 객체지향에서 실제 객체를 모델링(추상화)하여 공통적인 상태행위를 설계(명세)한 것

  - 객체의 공통된 부분을 명세하여 같은 상태행위를 가진 객체 생성 할 때 사용

    => 클래스가 없다면? 객체를 생성/사용할때 마다 속성과 메서드를 넣어줘야한다. (익명클래스 느낌?)

  - 게임을 플레이 하는 유저 객체가 있을때, 유저의 기본적인 상태행위를 명세

 

class GameUser {
  private int hp = 100;
  private int mp = 100;

  public void attack() {
    System.out.println("attack");
  }
}

 

* 객체 (Instance)

  - 실제 데이터를 추상화하여 상태행위를 가지는 프로그램 단위

  - 클래스에서 정의한 상태행위를 공유해서 사용(실제 메모리를 가짐)

  - 게임을 플레이 하는 유저의 실체

 

GameUser gameUser = new GameUser(); // 객체 생성
gameUser.attack(); // 실제 동작

 

* 추상화

  - 실제 복잡한 자료나 모듈, 시스템 등에서 핵심적인 개념이나 기능을 간추려낸 것

  - 구체적인 것을 분해해서 관심영역에 대한 특성만을 가지고 재조합 하는것

  ex)

   게임 시스템에서의 사람, 병원 시스템에서의 사람, 은행 시스템에서의 사람은 사람이 가진 특성을 모두 가질 필요X

    각 시스템에 맞는 특성만을 가지면 된다.

        게임에서의 고객 - 레벨, 성별 등등

        병원에서의 고객 - 이름, 나이, 성별, 병원 기록 등등

        은행에서의 고객 - 이름, 주소, 계좌번호 등등

 

 

 

반응형