본문 바로가기
JAVA

[JAVA] 김영한의 실전 자바 기본편 - 절차 지향 프로그래밍

by 집돌이디벨로퍼 2025. 1. 21.

절차 지향 프로그래밍 - 실행 순서를 중요하게 생각하는 방식, 프로그램의 흐름을 순차적으로 따르며 처리하는 방식

=>어떻게 를 중심으로 프로그래밍

절차지향은 데이터와 해당 데이터에 대한 처리가 분리되어 있다.

 

객체 지향 프로그래밍 - 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들의 상호작용을 중심으로 프로그래밍하는 방식이다 =>무엇 을 중심으로 프로그래밍

객체지향은 데이터와 그 데이터에 대한 행동(메서드)이 하나의 객체안에 포함되어있다.

 

캡슐화

package oop1;

import javax.swing.plaf.multi.MultiScrollBarUI;

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");
        }
    }

}

 

MusicPlayer를 보면 음악 플레이어를 구성하기 위한 속성과 기능이 마치 하나의 캡슐에 싸여있는 것 같다. 이렇게 속성과 기능을 하나로 묶어서 필요한 기능을 메서드를 통해 외부에 제공하는 것을 캡슐화라고 한다.

=> 내부코드가 변하는 경우 다른 코드는 변경하지 않아도 되기때문에 수정에 유리하다.

==> 또한 MusicPlayer를 사용하는 개발자는 그 속에 있는 기능과 속성들을 알지 않아도 되기때문에 개발에 유리하게된다.

==> 하지만 MuiscPlayer의 메서드 이름을 변경하게 된다면 이것을 사용하는 개발자는 코드를 바꿔줘야한다.