실행 순서를 중요하게 생각하는 방식이다.
public class MusicPlayerData {
int volume = 0;
boolean isOn = false;
}
코드의 중복을 피하기 위해 메서드를 사용하여 각각의 기능을 구분하기
메서드를 통해 각각의 기능을 모듈화하고, 여러번 호출하면 된다.
데이터와 기능이 분리되어 있다는 점이다. 유지보수 할 때 관리 포인트가 2곳으로 늘어난다.
= 객체 지향 프로그래밍을 통해 데이터와 기능을 하나로 묶어서 사용할 수 있다.
메서드는 객체를 생성해야 호출할 수 있다. 그런데 static이 붙으면 객체를 생성하지 않고, 메서드를 호출할 수 있다.
객체를 지향한다. 객체를 중요하게 생각하는 방식이다.
객체들 간의 상호작용을 중심으로 프로그래밍 하는 방식이다. '무엇을' 중심으로 프로그래밍 한다.
public class ValueData {
int value; // 속성
void add() { // 기능
value++;
System.out.println("숫자 증가 value=" + value);
}
}
데이터와 기능을 한곳에 두는 것을 객체 지향 프로그래밍이라고 한다.
public class MusicPlayer {
int volume = 0;
boolean isOn = false;
void on() {
isOn = true;
System.out.println("음악 플레이어를 시작합니다.");
}
void off() {
isOn = false;
System.out.println("음악 플레이어를 시작합니다.");
}
}
절차를 지향한다. 실행 순서를 중요하게 생각하는 방식이다.
절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다.
프로그램의 흐름을 순차적으로 처리하는 방식이다. "어떻게"를 중심으로 프로그래밍한다.
객체를 지향한다. 객체를 중요하게 생각하는 방식이다.
객체들 간의 상호작용을 중심으로 프로그래밍 하는 방식이다.
객체지향은 데이터와 그 데이터에 대한 행동(메서드)가 하나의 '객체' 안에 포함되어 있다.
속성(데이터)와 기능 2가지로 설명할 수 있다.
객체 지향 프로그래밍은 모든 사물을 속성과 기능을 가진 객체로 생각하는 것이다.
ex. 자동차
속성 : 차량 색상, 현재 속도
기능 : 엑셀, 브레이크, 문 열기, 문 닫기
문제 1. 절차 -> 객체코드로 변경하기
문제 2. 은행 계좌를 객체로 설계하기