Technical Interview 에서 받았던 질문 中 1
Object에서의 State / Behavior 를 비교해 설명해주세요.
객체(Object)란?
객체는 현실 세계의 사물과 유사하게, 데이터와 기능을 하나로 묶어놓은 프로그래밍 요소이다. 자바 같은 객체지향 언어에서 모든 객체는 특정 클래스(Class)의 인스턴스로, 해당 클래스는 객체의 특성(속성)과 할 수 있는 행동을 정의한다.
상태(State)란?
객체의 상태는 객체가 갖는 데이터나 속성을 의미한다. 객체의 상태는 시간이 지남에 따라 변할 수 있으며, 이 상태는 객체의 변수에 저장된다. 상태는 객체가 특정 시점에서 가지고 있는 모든 정보를 포함한다. 예를 들어, Car 객체가 있다면, 그 객체의 상태는 "현재 속도", "연료량", "차 색상" 같은 데이터로 구성될 수 있다.
행동(Behavior)이란?
객체의 행동은 객체가 무엇을 할 수 있는지를 정의한다. 행동은 주로 객체가 수행할 수 있는 메서드(Method)로 표현된다. 예를 들어, Car 객체는 "달리기(run)", "정지하기(stop)" 같은 행동을 가질 수 있다.
class Car {
// 상태 (State)
// 이 코드에서 speed와 color는 Car 객체의 상태를 나타낸다.
// 객체가 생성되면, 이 변수들에 따라 상태가 정해진다.
int speed;
String color;
// 행동 (Behavior)
// run()과 stop() 메서드는 Car 객체의 행동을 정의한다.
// Car 객체는 달릴 수 있고 멈출 수 있으며, 이 행동이 메서드로 표현된 것이다.
void run() {
System.out.println("The car is running.");
}
void stop() {
System.out.println("The car has stopped.");
}
}
상태와 행동의 관계
객체는 상태와 행동이 서로 연결되어 있으며, 상태는 행동에 의해 변할 수 있다. 예를 들어, Car 객체의 speed 상태는 run() 메서드를 호출할 때 변할 수 있다.
class Car {
int speed;
String color;
// run() 메서드는 객체의 speed 상태를 바꿈.
void run(int increaseSpeed) {
speed += increaseSpeed;
System.out.println("The car is running at " + speed + " km/h.");
}
// stop() 메서드는 객체의 speed를 0으로 설정하여 정지 상태로 바꿈.
void stop() {
speed = 0;
System.out.println("The car has stopped.");
}
}
최종 정리
객체의 상태(State)는 객체가 특정 시점에서 가지고 있는 데이터이고, 행동(Behavior)는 객체가 수행할 수 있는 동작을 의미한다. 상태와 행동은 객체지향 프로그래밍에서 객체를 구성하는 두 가지 핵심 요소로, 이 둘의 상호작용을 통해 객체는 현실 세계의 사물을 모방할 수 있다.
'JAVA > JAVACORE' 카테고리의 다른 글
[TOOL] Debugging on Eclipse (1) | 2024.10.20 |
---|---|
[OVERVIEW] OOP (0) | 2024.10.16 |
[COMPARISON] Object / Class (2) | 2024.10.03 |