객체지향 프로그래밍(OOP) 특징 요약
특징 | 설명 | 장점 |
---|---|---|
캡슐화 | 데이터와 메서드를 하나의 객체로 묶고, 외부에서 접근을 제한 | 데이터 보호, 유지보수 용이, 코드 복잡성 감소 |
상속 | 부모 클래스의 속성과 메서드를 자식 클래스가 물려받아 확장 | 코드 재사용, 유지보수 편리, 확장성 향상 |
다형성 | 동일한 인터페이스나 부모 클래스로 여러 형태의 객체 사용 가능 | 유연한 설계, 코드 간결화, 다양한 객체 관리 가능 |
추상화 | 필요한 부분만 노출하고 세부 구현은 숨김 | 복잡성 감소, 코드 유연성 증가, 표준화 및 일관성 유지 |
1. 캡슐화 (Encapsulation)
- What is Encapsulation?
- 데이터와 메서드를 하나의 객체로 묶어 외부로부터 숨기는 방식
- Why we do Encapsulation?
- 정보 은닉 : 내부 구현을 숨기고, 객체 간의 상호작용을 제한하여 안전성과 유지보수성을 높임
- 데이터 보호 : 직접 데이터에 접근할 수 없으므로 잘못된 데이터 변경이나 조작을 방지할 수 있음.
2. 상속 (Inheritance)
- What is Inheritance?
- 기존 클래스의 속성과 매서드를 새로운 클래스가 물려받아 재사용하는 기능
- Why we do Inheritance?
- 코드의 재사용성 : 부모 클래스에서 이미 구현된 코드를 재사용함으러써 중복코드를 줄일 수 있음.
- 확장성 : 기존 기능을 확장하여 새로운 기능을 쉽게 추가할 수 있음
- 유지보수성 향상
3. 다형성 (Polymorphism)
- What is Polymorphism?
- 하나의 메서드나 객체가 여러 가지 형태로 동작할 수 있는 것
- 주로 메서드 오버로딩과 메서드 오버라이딩으로 구현됨
- Why we do Polymorphism?
- 유연한 설계 : 동일한 인터페이스로 다양한 객체를 처리할 수 있어 코드의 유연성 증가
- 확장성 : 기능이 확장될 대 기존 코드를 수정하지 않고 새로운 기능을 추가할 수 있음
- 코드의 간결화 : 여러 형태의 객체를 하나의 참조로 관리할 수 있어 간결하게 유지할 수 있음.
4. 추상화 (Abstraction)
- What is Abstraction?
- 필요한 정보만 제공하고 불필요한 세부사항은 숨기는 것
- 주로 추상클래스 혹은 인터페이스로 구현됨.
- Why we do Abstraction?
- 복잡성 감소 : 복잡한 시스템을 단순화하여 핵심 로직만 노출
- 코드의 유연성 증가 : 구체적인 구현을 추상화하여 변경에 유연하게 대응 가능
- 표준화 : 인터페이스를 통해 객체의 공통된 동작을 정의하고 이를 통해 객체의 일관성을 유지할 수 있음.
'CS' 카테고리의 다른 글
Little Endia & BigEndian (0) | 2024.11.13 |
---|---|
[Archtecture DesignPattern] MVP / MVC / MVVM 패턴 (0) | 2024.11.04 |
[CS] SOLID 원칙 (0) | 2024.10.14 |
[CS] UML_ClassDiagram (0) | 2024.10.14 |