728x90
드디어 객체 지향 프로그래밍...
절차 지향 프로그래밍
절차 지향 프로그래밍
- 절차를 지향. 실행 순서를 중요하게 생각하는 방식
- 프로그램의 흐름을 순차적으로 처리. 즉, "어떻게"를 중심으로 프로그래밍 함
객체 지향 프로그래밍
- 객체를 지향한다. 객체를 중요하게 생각하는 방식
- 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식. 즉, "무엇을" 중심으로 프로그래밍
둘의 중요한 차이
- 절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리 됨.
- 반면 객체 지향은 데이터와 그 데이터에 대한 행동(메서드)이 하나의 객체 안에 함께 포함됨
모듈화
- 쉽게 얘기해서 레고 블럭
- 필요한 블럭을 가져다 꽂아 사용 가능. 여기서는 음악 플레이어의 기능이 필요하면 해당 기능을 메서드 호출 만으로 쉽게 사용할 수 있다.
절차 지향 프로그래밍의 한계
- 클래스를 사용하여 데이터를 묶고, 메서드를 사용해서 각각의 기능을 모듈화 함. 덕분에 깔끔해졌지만, 더 개선할 수 없을까?
- MusicPlayerData 클래스에 데이터만 있고, 메서드는 MusicPlayerMain에 있음. 즉, 나눠져 있음
- 하나로 묶는 것이 유지보수 관점에서 좋음 !
객체 지향 프로그래밍
- 음악 플레이어(사물)라는 개념을 온전히 하나의 클래스에 담아보자.
- 음악 플레이어라는 객체를 지향해보자 !
- 음악 플레이어를 개발하는 것과 사용하는 것을 분리해야함 !!
- 캡슐화
- 속성과 기능이 마치 하나의 캡슐에 싸여있는 것 같음. 이렇게 속성과 기능을 하나로 묶어서 필요한 기능을 메서드를 통해 외부에 제공하는 것을 캡슐화라고 함
- 객체 내부의 변경 사항에 대해 외부 사용하는 유저가 몰라도 됨. 수정 필요없음 (메서드 call signature 변경 제외)
728x90
'프로그래밍 > Java' 카테고리의 다른 글
[실전 자바-기본편] 접근 제어자 (0) | 2024.02.11 |
---|---|
[실전 자바-기본편] 패키지 (0) | 2024.02.09 |
[실전 자바-기본편] 생성자 (0) | 2024.02.08 |
[실전 자바-기본편] 기본형과 참조형 (0) | 2024.02.03 |
[실전 자바-기본편] 클래스와 데이터 (0) | 2024.02.03 |
댓글