절차 지향 프로그래밍 vs 객체 지향 프로그래밍

절차 지향

-데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다.

-프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다

객체 지향

-객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 '객체' 안에 함께 포함되어 있다. -쉽게 이야기해서 객체를 중요하게 생각하는 방식이다

절차 지향 프로그래밍 코드 예시

package oop1;
 public class MusicPlayerData {
 int volume = 0;
 boolean isOn = false;
 }
package oop1;

 public class MusicPlayerMain3 {
 public static void main(String[] args) {
 MusicPlayerData data = new MusicPlayerData();
	 //음악 플레이어 켜기
	on(data);
	 //볼륨 증가
	volumeUp(data);
	 //볼륨 증가
	volumeUp(data);
	 //볼륨 감소
	volumeDown(data);
	 //음악 플레이어 상태
	showStatus(data);
	 //음악 플레이어 끄기
	off(data);
   }
   
 static void on(MusicPlayerData data) {
       data.isOn = true;
			 System.out.println("음악 플레이어를 시작합니다");
    }
 static void off(MusicPlayerData data) {
        data.isOn = false;
			 System.out.println("음악 플레이어를 종료합니다");
    }
 static void volumeUp(MusicPlayerData data) {
        data.volume++;
			 System.out.println("음악 플레이어 볼륨:" + data.volume);
    }
 static void volumeDown(MusicPlayerData data) {
        data.volume--;
			 System.out.println("음악 플레이어 볼륨:" + data.volume);
    }
 static void showStatus(MusicPlayerData data) {
			 System.out.println("음악 플레이어 상태 확인");
 if (data.isOn) {
			 System.out.println("음악 플레이어 ON, 볼륨:" + data.volume);
  } else {
				 System.out.println("음악 플레이어 OFF");
    }
    
    }
 }

객체 지향 프로그래밍 코드 예시

package oop;
 public class MusicPlayer {
    int volume = 0;
    boolean isOn = false;
    void on() {
        isOn = true;
        System.out.println("음악 플레이어를 시작합니다");
    }
    void off() {
        isOn = false;
        System.out.println("음악 플레이어를 종료합니다");
    }
    void volumeUp() {
        volume++;
        System.out.println("음악 플레이어 볼륨:" + volume);
    }
    void volumeDown() {
        volume--;
        System.out.println("음악 플레이어 볼륨:" + volume);
    }
    void showStatus() {
        System.out.println("음악 플레이어 상태 확인");
        if (isOn) {
            System.out.println("음악 플레이어 ON, 볼륨:" + volume);
        } else {
        }
 System.out.println("음악 플레이어 OFF");
    }
 }
 }
 package oop1;
 /**
 * 객체 지향
 */
 public class MusicPlayerMain4 {
 public static void main(String[] args) {
 MusicPlayer player = new MusicPlayer();
 //음악 플레이어 켜기
        player.on();
 //볼륨 증가
        player.volumeUp();
 //볼륨 증가
        player.volumeUp();
 //볼륨 감소
        player.volumeDown();
 //음악 플레이어 상태
        player.showStatus();
 //음악 플레이어 끄기
        player.off();
    }
 }

인스턴스의 메서드 호출

Untitled

Untitled