OOP(Object Oriented Programming)
하나의 객체(프로그램)는 여러 목적성을 가짐.
기능별로 객체로 구분(카테고라이징)
객체는 변수와 메소드를 그룹핑한 것이다.
################## 문법과 설계 ##################
문법 : 객체지향을 편하게 할 수 있도록 언어가 제공하는 기능을 익히는 것
설계 : 프로그램을 만든다는 것은 소프트웨어의 추상화. 현실을 좀 더 잘 반영하기 위한 노력의 산물. 고도의 추상화 능력이 필요.
################## 부품화 ##################
객체지향은 부품화의 정점. 메소드는 부품화의 예라고 할 수 있음.
연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑 하는 것.
################## 은닉화, 캡슐화 ##################
내부의 동작방법을 단단한 케이스(객체) 안으로 숨기고 사용자에게는 그 부품의 사용방법(메소드)만을 노출하고 있는 것.
은닉화(Information Hiding), 캡슐화(Encapsulation)
부품을 사용하는 방법이 중요한 것.
################## 인터페이스 ##################
프로그램을 부품에 비유하자면,
부품과 부품의 연결점을 인터페이스(Interface)라고 한다.
동작하지 않을 뿐 아니라 연결 자체가 되지 않는다.
인터페이스란 이질적인 것들이 결합하는 것을 막아주는 역할도 하는 것이다.
즉 인터페이스는 부품들 간의 약속이다.