객체 지향 프로그래밍

객체 지향 프로그래밍 정의


<aside> 💡 객체 지향 프로그래밍은 객체를 중심으로 데이터와 기능을 묶어서 관리하는 프로그래밍 패러다임입니다. 객체는 데이터와 그 데이터를 조작하는 메소드로 구성되어 있으며, 객체간 상호작용을 통해 프로그램을 구성합니다.

</aside>

캡슐화


<aside> 💡 캡슐화는 객체 지향 프로그래밍에서 데이터와 그 데이터를 다루는 메서드를 하나의 단위로 묶는 것입니다. 이러한 캡슐화는 객체의 내부 구현을 숨기고, 외부에서는 객체와 상호작용할 수 있는 공개 API만을 노출시키는 것을 의미합니다. 이를 통해 객체의 안정성과 보안을 높이고, 코드의 재사용성과 유지보수성을 높일 수 있습니다.

</aside>

상속


<aside> 💡 상속은 객체 지향 프로그래밍에서 기존 클래스를 확장하여 새로운 클래스를 만드는 방법입니다. 기존 클래스는 부모 클래스, 새로운 클래스는 자식 클래스라고 부릅니다. 자식 클래스는 부모 클래스에서 정의된 속성과 메서드를 그대로 사용할 수 있으며, 이를 통해 코드 중복을 방지하고 유지보수성을 높일 수 있습니다.

</aside>

추상화


<aside> 💡 추상화는 객체 지향 프로그래밍에서 객체의 공통적인 속성과 메서드를 추출하여 불필요한 세부사항을 제거하는 것을 의미합니다. 이를 통해 객체의 복잡성을 낮추고, 코드의 가독성과 재사용성을 높일 수 있습니다.

</aside>

다형성


<aside> 💡 다형성은 객체 지향 프로그래밍에서 하나의 인터페이스를 통해 다양한 구현을 제공하는 것을 의미합니다. 예를 들어, 하나의 도형 클래스에서 정의된 draw() 메서드는 사각형, 원, 삼각형 등 다양한 도형 클래스에서 다른 구현을 제공할 수 있습니다. 이를 통해 코드의 재사용성과 확장성을 높일 수 있습니다.

</aside>