OOP(Object Oriented Programming), 객체지향 프로그래밍이 등장하기 전에는 절차적인 언어가 주로 사용되었습니다. 이전에 사용하던 C,포트란 같은 언어이며, 순차적인 명령이 조합된 언어였습니다.
객체지향 프로그래밍이 등장하면서, 위의 절차적 언어와는 다르게 데이터의 접근이나 실행을 각각 다른방법으로 접근하는 방식이 만들어졌습니다.
일종의 원형으로 객체를 만들어주기 위해 만드는 아이디어나, 청사진, 가장 큰 틀로 불려집니다. 사전적 의미로는 "같은 종류(또는 문제 해결을 위한)의 집단에 속하는 속성(attribute)과 행위(behavior)를 정의한 것"이라는 뜻을 포함하고 있습니다. 클래스는 다른 클래스 또는 외부 요소와 독립적으로 디자인하는것이 특징입니다.
클래스의 인스턴스입니다. 클래스 안에 들어있는 세부사항으로 생각할 수 있습니다. 객체는 자신 고유의 속성을 가지며 클래스에서 정의한 행위를 수행 할 수 있습니다.
클래스로부터 생성된 객체를 사용하는 방법으로서 객체에 명령을 내리는 메시지라 할 수 있습니다. 메서드는 객체의 속성을 조작하는 데 사용됩니다.
데이터와 기능을 하나의 단위로 묶어내는것을 의미합니다.
객체내의 작성된 코드의 수정이 편리하며, 데이터의 내부의 동작이 외부로 노출되지 않는것이 특징입니다.
내부의 복잡한 내용들을 실제로 노출시 필요한 부분만 간결하게 노출해주는것을 의미합니다. 추상화를 통해 좀더 직관적이고 단순한 인터페이스를 구현할 수 있습니다.
상속은 상위 클래스의 특징을 하위 클래스가 물려받아 그 특징을 사용 할 수 있는것을 의미합니다. 상속을 통해 중복되는 코드를 사용하지 않고 더 간결한 코드 작성이 가능합니다.
다양한 형태를 의미하는 뜻으로, 상위 클래스에서 같은 특징을 물려받더라도, 하위 클래스에서 사용되는 특징이나 기능이 다를수 있는것을 의미합니다.