절차 지향 프로그래밍 - 실행 순서를 중요하게 생각하는 방식, 프로그램의 흐름을 순차적으로 따르며 처리하는 방식
=>어떻게 를 중심으로 프로그래밍
절차지향은 데이터와 해당 데이터에 대한 처리가 분리되어 있다.
객체 지향 프로그래밍 - 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들의 상호작용을 중심으로 프로그래밍하는 방식이다 =>무엇 을 중심으로 프로그래밍
객체지향은 데이터와 그 데이터에 대한 행동(메서드)이 하나의 객체안에 포함되어있다.
캡슐화
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의 메서드 이름을 변경하게 된다면 이것을 사용하는 개발자는 코드를 바꿔줘야한다.
'JAVA' 카테고리의 다른 글
[JAVA] 자바의 메모리 구조 (1) | 2025.02.05 |
---|---|
[JAVA] 접근제어자 (0) | 2025.02.04 |
[JAVA] 김영한의 실전 자바 - 기본편 : 클래스, 배열 (1) | 2025.01.14 |
[JAVA] 김영한 자바 입문 - 배열 문제와 풀이 3 (0) | 2025.01.09 |
[JAVA] 2차원 배열 (0) | 2025.01.07 |