본문 바로가기
프로그래밍/Java

[실전 자바-기본편] 객체 지향 프로그래밍

by Dean30 2024. 2. 5.
728x90

드디어 객체 지향 프로그래밍...

 

절차 지향 프로그래밍

 절차 지향 프로그래밍

  • 절차를 지향. 실행 순서를 중요하게 생각하는 방식
  • 프로그램의 흐름을 순차적으로 처리. 즉, "어떻게"를 중심으로 프로그래밍 함

객체 지향 프로그래밍

  • 객체를 지향한다. 객체를 중요하게 생각하는 방식
  • 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식. 즉, "무엇을" 중심으로 프로그래밍

둘의 중요한 차이

  • 절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리 됨.
  • 반면 객체 지향은 데이터와 그 데이터에 대한 행동(메서드)이 하나의 객체 안에 함께 포함됨

모듈화

  • 쉽게 얘기해서 레고 블럭
  • 필요한 블럭을 가져다 꽂아 사용 가능. 여기서는 음악 플레이어의 기능이 필요하면 해당 기능을 메서드 호출 만으로 쉽게 사용할 수 있다.

절차 지향 프로그래밍의 한계

  • 클래스를 사용하여 데이터를 묶고, 메서드를 사용해서 각각의 기능을 모듈화 함. 덕분에 깔끔해졌지만, 더 개선할 수 없을까?
  • MusicPlayerData 클래스에 데이터만 있고, 메서드는 MusicPlayerMain에 있음. 즉, 나눠져 있음
    • 하나로 묶는 것이 유지보수 관점에서 좋음 !

 

 

 

객체 지향 프로그래밍

  • 음악 플레이어(사물)라는 개념을 온전히 하나의 클래스에 담아보자.
  • 음악 플레이어라는 객체를 지향해보자 !
  • 음악 플레이어를 개발하는 것과 사용하는 것을 분리해야함 !!
  • 캡슐화
    • 속성과 기능이 마치 하나의 캡슐에 싸여있는 것 같음. 이렇게 속성과 기능을 하나로 묶어서 필요한 기능을 메서드를 통해 외부에 제공하는 것을 캡슐화라고 함
  • 객체 내부의 변경 사항에 대해 외부 사용하는 유저가 몰라도 됨. 수정 필요없음 (메서드 call signature 변경 제외)
728x90

댓글