OOP란? - goorm-6th-Als/for_study_Algorithm GitHub Wiki
OOP => 객체 지향 프로그래밍
작성자 : 김현빈 😊 작성일 : 0117
객체 지향 프로그래밍(OOP) 은 "객체" 를 사용하여 소프트웨어를 설계하는 프로그래밍 패러다임입니다.
소프트웨어 개발에 널리 사용되는 소프트웨어 프로그램을 구성하고 구조화하는 방법입니다.
현실 사물을 객체로 보고 해당 객체의 특성과 기능을 추출해 프로그래밍합니다.
- 🔥 장점으로는 재사용성과 변형 가능성을 높일 수 있습니다.
- 간단한 예시로는 책이라는 객체가 갖는 속성들을 (책 이름, 출판일, 저자) 클래스로 나누어 다른 객체로 분류합니다.
OOP의 주요 개념은 다음과 같습니다.
-
클래스 및 객체:
-
클래스: 객체 생성을 위한 청사진입니다. 클래스는 보유하는 데이터와 수행할 수 있는 작업(메서드)을 설명하여 개체 유형을 정의합니다.
-
객체: 클래스의 인스턴스입니다. 각 객체에는 고유한 데이터 세트(속성)가 있으며 작업(메서드)을 수행할 수 있습니다.
-
-
캡슐화: 정보은닉의 목적
- 이는 데이터(속성)와 데이터에 대해 작동하는 메서드를 단일 단위 또는 클래스로 묶는 것입니다. 또한 개체의 일부 구성 요소에 대한 직접 액세스를 제한하는 것도 포함되는데, 이는 우발적인 간섭과 방법 및 데이터의 오용을 방지하는 수단입니다.
-
상속: 코드의 재사용이 목적
- 이는 한 클래스가 다른 클래스의 속성과 메서드를 상속할 수 있는 메커니즘입니다. 부모 클래스가 자손 클래스에게 속성을 무려주는 방식이며, 이는 코드 재사용성과 계층적 분류 생성에 도움이 됩니다.
-
다형성: 같은 형태로 다른 기능을 수행하는것이 목적
- 다형성을 통해 서로 다른 클래스의 객체를 공통 슈퍼 클래스의 객체로 처리할 수 있습니다. 다형성의 가장 일반적인 용도는 부모 클래스 참조가 자식 클래스 객체를 참조하는 데 사용될 때입니다. 비슷한 방식으로 메소드를 사용할 수 있지만 객체마다 다르게 동작할 수 있습니다.
-
추상화: 목적과 관련이 없는 부분을 제외해서 필요한 부분을 포착하는 기법
- 추상화에는 복잡한 구현 세부 정보를 숨기고 객체의 필수 기능만 표시하는 작업이 포함됩니다. 프로그래밍의 복잡성과 노력을 줄이는 데 도움이 됩니다.