객체지향 프로그래밍(1)
절차 지향 프로그래밍 vs 객체 지향 프로그래밍
- 프로그래밍 방식은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있습니다.
절차 지향 프로그래밍
- 절차 지향 프로그래밍은 이름 그대로 절차를 지향합니다.
- 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식입니다.
- 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식입니다.
- 즉, “어떻게”를 중심으로 프로그래밍 합니다.
객체 지향 프로그래밍
- 객체 지향 프로그래밍은 이름 그대로 객체를 지향합니다.
- 쉽게 이야기해서 객체를 중요하게 생각하는 방식입니다.
- 객체 지향 프로그래밍은 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식입니다.
- 즉, “무엇을” 중심으로 프로그래밍 합니다.
둘의 중요한 차이
- 절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있습니다.
- 반변 객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 ‘객체’안에 함께 포함되어 있습니다.
절차 지향에서 객체 지향으로 점진적으로 코드를 변경해보면서 객체 지향 프로그래밍을 이해해봅시다.
“음악 플레이어를 만들어보고 그것을 보면서 이해해봅시다.”
요구 사항:
- 음악 플레이어를 켜고 끌 수 있어야 합니다.
- 음악 플레이어의 볼륨을 증가, 감소할 수 있어야 합니다.
- 음악 플레이어의 상태를 확인할 수 있어야 합니다.
예시 출력:
음악 플레이어를 시작합니다.
음악 플레이어 볼륨:1
음악 플레이어 볼륨:2
음악 플레이어 볼륨:1
음악 플레이어 상태 확인
음악 플레이어 ON, 볼륨:1
음악 플레이어를 종료합니다.
절차 지향 음악 플레이어1
package oop1;
public class MusicPlayerMain1 {
public static void main(String[] args) {
int volume = 0;
boolean isOn = false;
// 음악 플레이어 켜기
isOn = true;
System.out.println("음악 플레이어를 시작합니다.");
// 볼륨 증가
volume++;
System.out.println("음악 플레이어 볼륨:" + volume);
// 볼륨 증가
volume++;
System.out.println("음악 플레이어 볼륨:" + volume);
// 볼륨 감소
volume--;
System.out.println("음악 플레이어 볼륨:" + volume);
// 음악 플레이어 상태
System.out.println("음악 플레이어 상태 확인");
if (isOn) {
System.out.println("음악 플레이어 ON, 볼륨:" + volume);
} else {
System.out.println("음악 플레이어 OFF");
}
// 음악 플레이어 끄기
isOn = false;
System.out.println("음악 플레이어를 종료합니다.");
}
}
실행 결과
음악 플레이어를 시작합니다.
음악 플레이어 볼륨:1
음악 플레이어 볼륨:2
음악 플레이어 볼륨:1
음악 플레이어 상태 확인
음악 플레이어 ON, 볼륨:1
음악 플레이어를 종료합니다.
“순서대로 프로그램이 작동하도록 단순하게 작성했습니다. 이 코드를 점진적으로 변경해봅시다.”
다음 포스트인 “절차 지향 프로그래밍(2)”에서 이어서 포스팅하겠습니다.