프로그램을 서로 관련이 있는 Object로 묶어서 프로그래밍하는 것을 말합니다. 객체 지향 프로그래밍은 사람이 세상을 보고 이해하는 방법과 유사합니다. 코드를 추상화하여 직관적으로 생각할 수 있습니다.
객체 지향 프로그래밍은 오브젝트 단위로 만들어 나가기 때문에 어느 한 곳에서 문제가 발생했을 경우, 해당하는 부분만 수정할 수 있습니다. 또, 재사용성이 뛰어나고 확장성이 높아 코드를 작성하는 데에 큰 도움을 줄 수 있습니다.
즉, 생산성이 증가하고, 더 높은 퀄리티로 코드를 빠르게 작성할 수 있습니다.
클래스
라고 부르는 데이터 모델의 청사진을 사용해, 새로운 객체를 붕어빵처럼 생성할 수 있습니다.
constructor
를 포함합니다.class Cat{
constructor(name,age){
this.name = name;
this.age = age;
}
}
인스턴스 객체
, 줄여서 인스턴스라 부르며 클래스를 통해 만들어진 객체를 말합니다.
const cat = new Cat('navi',3);
예를들어, 다음과 같이 사람 그리고 학생이라는 클래스가 있다고 가정해봅시다.
// 사람
class Human{
name
age
sleep()
}
// 학생
class Student{
name
age
score
sleep()
learn()
}
Student
클래스는 Human
클래스와 공통된 특성을 가지고 있습니다.
학생의 본질은 결국 사람이므로 학생 클래스를 재구현 하지 않고, 사람 클래스로부터 속성과 메소드를 상속받을 수 있습니다.
예를들어, 우리가 휴대폰을 사용할 때 내부 구현 사항은 모르더라도 전화를 걸거나 인터넷 서치를 할 수 있습니다. 이처럼 추상화를 통해 외부에서 보이는 인터페이스, 즉 함수를 이용해 쉽게 사용할 수 있습니다.
말하다
라는 메소드가 있을 때 사람과 동물들이 말하는 방식과 제각각의 소리를 내는 것처럼 다양한 형태를 가질 수 있습니다.