- 객체라는 독립된 다위들로 나누어 설계하는 방법
객체 지향 프로그래밍의 핵심은 '객체'라는 개념에서 시작된다.
객체 지향 프로그래밍의 기본 구성 요소인 클래스와 객체, 메서드와 속성, 상속, 다형성, 캡슐화, 추상화에 대해 개인적으로 학습하기 위해 작성한다.
추상화 (Abstraction):
중요한 정보
와 기능
만을 드러내고, 세부 사항은 숨기는 과정.핵심 기능
에 집중할 수 있으며, 시스템의 복잡성을 줄임.
- 예: TV 리모콘의 버튼만 알면 된다. 어떠한 방식으로 TV가 작동하는 지는 알 필요 없다.
상속 (Inheritance):
기존 클래스(부모 클래스)
의 속성
과 메소드
를 새로운 클래스(자식 클래스)
가 물려받는 기능.재사용성
을 높이고, 클래스 간의 계층 구조를 형성
- 예: 동물 클래스가 있을 때, 이를 상속받아 고양이, 개와 같은 구체적인 동물 클래스를 만들 수 있습니다.
다형성 (Polymorphism):
유연성
을 높이고, 다양한 형태로 기능을 확장
할 수 있게 합니다.
- 예:
소리내기()
라는 메소드를 사용하면, 강아지는 짖고, 고양이는 야옹거리는 것. 같은 메소드지만 각 동물에 따라 다르게 행동한다.
캡슐화 (Encapsulation):
하나의 단위
로 묶고, 외부에서 직접 접근
하지 못하게 하는 것.무결성을 보호
하고, 객체 내부의 구현 세부 사항을 숨길 수 있음.
- 예: 스마트폰에는 전화기, 음악 플레이어, 등 여러기능이 있지만, 사용자에게는 복잡한 작동 원리는 숨겨져 있다. 사용자는 버튼을 눌러 원하는 기능을 사용할 수 있다.
객체지향에 대해 아직 모르는 것이 많으며... 객체 지향이라는 산을 아직까지 넘지 못한 것에 많은 생각과 반성을 하게 되는 것 같다.
바로 SOLID 원칙을 공부해야겠다.