객체지향 프로그래밍
객체지향 프로그래밍(Object Oriented Programming)은 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 조직을 상태와 행위로 이루어진 객체로 만드는 것이다.
문법과 설계
문법
하나는 객체지향을 편하게 할 수 있도록 언어가 제공하는 기능을 익히는 것이다. 이러한 기능들은 if,for문처럼 문법적인 구성을 가지고 있다. 이 문법을 이해라고 숙지해야 객체를 만들 수 있다. 객체를 만드는 법에 대한 학습이라고 할 수 있다.
설계
복잡한 현실을 추상화하는 것이 설계라고 할 수 있다.
부품화
메소드는 부품화의 예라고 할 수 있다. 메소드를 사용하는 기본 취지는 연관되어 있는 로직들을 결합해서 메소드라는 완제품을 만드는 것이다. 메소드를 사용하면 코드의 양을 극적으로 줄일 수 있고, 메소드 별로 기능이 분류되어 있기 때문에 필요한 코드를 찾기도 쉽고 문제의 진단도 빨라진다.
그런데 프로그램 성능이 높아지면서 메소드의 양이 늘어나, 다시 이전의 메소드가 없던 시절로 돌아가게 되었다. 그래서 나온 것이 객체지향 프로그래밍이다.
은닉화, 캡슐화
제대로된 부품이라면 그것이 어떻게 만들어졌는지 모르는 사람도 그 부품을 사용하는 방법만 알면 쓸 수 있어야 한다. 내부의 동작 방법을 단단한 베이스 안으로 숨기고 사용자에게는 그 부품의 사용방법만을 노출하고 있는 것이다.
이러한 컨셉을 정보의 은닉화, 캡슐화라고 부른다.
인터페이스
잘 만들어진 부품이라면 부품과 부품을 서로 교환 할 수 있어야 한다.