반응형
* 클래스 (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
각 시스템에 맞는 특성만을 가지면 된다.
게임에서의 고객 - 레벨, 성별 등등
병원에서의 고객 - 이름, 나이, 성별, 병원 기록 등등
은행에서의 고객 - 이름, 주소, 계좌번호 등등
반응형
'프로그래밍 > 객체지향' 카테고리의 다른 글
[객체지향] 다형성이란? (0) | 2023.03.12 |
---|---|
[객체지향] 객체 지향 프로그래밍이란? (0) | 2023.03.04 |