[Java] 객체 지향 프로그래밍

황은하·2021년 7월 5일
0

알고리즘

목록 보기
60/100

객체 지향 프로그래밍(Object-Oriented Programming)

좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임.
로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것.
이 객체들을 레고 블럭처럼 조립해서 하나의 프로그램을 만드는 것 => 객체 지향 프로그래밍

객체 지향 프로그래밍의 시작 -> 객체가 무엇인가? 이해하기

추상화

복잡함 속에서 필요한 관점만을 추출하는 행위

지하철 노선도 -> 디자인의 추상화
프로그램 만들기 -> 소프트웨어의 추상화

객체지향 프로그래밍은 현실을 더 잘 반영하기 위한 노력의 산물이다.
-> 단순한 문법으로 객체를 만드는 것이 아니라 고도의 추상화 능력이 필요하다.

부품화

모든 기능이 다 있는 초창기 컴퓨터 => 모니터 + 키보드 + 본체 (분리)

문제 발생 시 해당 문제가 어디에서 발생한 것인지 파악하고 해결하기 쉬워진다.
더 좋은 부품을 선택할 수 있다.

객체 지향은 부품화의 정점이다.

메소드는 부품화의 예다.

객체지향 프로그래밍의 핵심은 연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑 하는 것이다.
그룹핑한 대상이 객체(Object)다.

파일 => 변수, 메소드
디렉토리 => 객체

은닉화, 캡슐화

제대로 된 부품이라면 그것이 어떻게 만들어졌는지 모르는 사람도 그 부품을 사용하는 방법만 알면 쓸 수 있어야 한다.
정보의 은닉화(Information Hiding) 또는 캡슐화(Encapsulation).
사용자에게는 그 부품을 사용하는 방법이 중요한 것이 된다.

인터페이스

잘 만들어진 부품이라면 부품과 부품을 서로 교환할 수 있어야 한다.
각 부품은 미리 정해진 약속에 따라서 신호를 입, 출력하고, 연결점의 모양을 표준에 맞게 만들면 된다.

위의 연결점 => interface
부품들 간의 약속이다.
이질적인 것들이 결합하는 것을 막아주는 역할

객체 지향 프로그래밍 강의

profile
차근차근 하나씩

0개의 댓글