하나의 프로그램은 여러개의 목적성을 가지고 있는 로직들의 집합이다.
사이트의 규모가 커지고 오랜시간의 프로젝트 기간.
복잡한 로직, 절망감, 막장.
기능별로 그룹핑,분류화 하고 싶다.
자연스럽게 해소 할수 있는 방법을 모색. 모색된 결과 중 하나가 객체지향이라고 생각하면 된다.
1.하나의 프로그래밍, 여러개의 형태의 로직으로 이루어져 있다.
2.그 로직을 그룹핑 시켜놓고 그 로직과 관련된 변수, 관련된 메소드를 그룹핑 시켜 놓은 것을 객체라고 한다.
3.객체가 다른 곳에서도 사용할 수 있다. 재활용성이 높아진다. 다른 곳에서 일종의 부품으로 사용되고 있다.
4.좋은 객체를 만든다는 것은 그 로직을 재활용 가능하도록 부품화 하는 것.
객체 지향은 부품화의 정점.
메소드는 부품화의 예.
메소드를 사용하는 기본 취지는 연관되어 있는 로직들을 결합해서 메소드라는 완제품을 만드는 것이다. 그리고 이 메소드들을 부품으로 해서 하나의 완제품인 독립된 프로그램을 만드는 것이다. 메소드를 사용하면 코드의 양을 극적으로 줄일 수 있고, 메소드 별로 기능이 분류되어 있기 때문에 필요한 코드를 찾기도 쉽고 문제의 진단도 빨라진다.
-객체가 어떻게 생겼는지 모르고도 객체를 사용할 수 있도록 하겠다.
-즉 내부의 동작 방법을 단단한 케이스 안으로 숨기고 사용자에게는 그 부품의 사용방법만을 노출하고 있는 것
-상속
-여러가지 형태