객체지향(OOP) 주요 개념 정리

YEOLAM·2022년 5월 20일
post-thumbnail

1. Encapsulation(캡슐화) 💊 :

 어떠한 데이터와 그 데이터를 이용하여 특정한 기능을 수행하는
함수를 하나의 캡슐(컨테이너)에 묶어 놓은 것을 의미하는데, 객체지향 개념에서는
이 캡슐을 클래스로써 정의하게 됩니다. 이렇게 캡슐화를 구성함으로써 클래스 멤버로
사용되는 변수 혹은 메서드의 접근을 제한할 수 있습니다. 예를 들어, 캡슐화된 클래스에서
특정 클래스 멤버에 접근 제어자(access modifier)를 사용하여 private로 설정하였다면,
해당 변수 및 메서드들은 위 클래스의 인스턴스 변수를 통한 값의 수정 및 조회를 제한(은닉)
시킬 수 있습니다. 따라서 클래스 정보의 접근 혹은 수정의 권한을 결정한다고 할 수 있습니다.

 

2. Inheritance(상속) :

 클래스 선언 시 내부에서 반복적으로 사용되는 코드를 부모(Parent) 클래스로
개별적으로 선언한 후 이를 상속받아 사용할 수 있도록 자식(Child) 클래스를 선언하여
사용하는 것을 의미합니다. 이렇게 함으로써 코드의 분할을 용이하게 해주고 코드의
재사용성을 높일 수 있다는 특징을 가지고 있습니다.

 

3. Abstraction(추상화) :

 구현된 세부 정보를 숨기는 일반 인터페이스를 지정하는 행위라고 정의합니다.
클래스에서 특정 데이터를 조작하는 기능을 수행하는 메서드가 정의되어 있다면,
해당 클래스를 인스턴스화하여 사용하는 사용자 입장에서는 일반 인터페이스를 이용하여
데이터를 제어할 수 있습니다. 따라서 해당 클래스의 설계자는 클래스 내부의 세부 정보를
사용자에게 노출시키지 않고도 설계자가 의도하는 기능을 사용자로 하여금 수행하게 할 수
있다는 특징이 있습니다.

 

4. Polymorphism(다형성) 🌈 :

 다형성의 한 예시로, 부모 클래스에서 정의된 메서드를 자식 클래스에서 상속받아
오버라이딩(Overriding) 할 수 있는데, 자식 클래스에서는 부모 클래스 내 메서드의 정해진
규칙에 따라 다양한 형태의 메서드로 재정의할 수 있습니다. 따라서 클래스의 특징은 유지하고
오버라이딩 하는 대상의 구현방식 모양은 다양하게 재정의할 수 있다는 특징을 가지고 있습니다.

profile
Frontend Web Developer

0개의 댓글