object oriented programming c
C ++의 객체 지향 프로그래밍 소개.
이 튜토리얼에서는 객체 지향 프로그래밍 언어로서의 C ++에 대해 배우기 위해 일련의 튜토리얼을 시작합니다.
아시다시피 객체 지향 프로그래밍 (OOP) 이전에 프로그램은 절차 언어를 사용하여 작성되었습니다. 절차 적 언어는 기능을 강조합니다. 더 큰 문제는 더 작은 하위 문제로 분류되어 함수로 작성됩니다.
=> 전체 C ++ 자습서 목록을 탐색하려면 여기를 참조하십시오.
절차 적 언어는 데이터에주의를 기울이지 않았습니다. 그 결과 효과적인 방식으로 문제를 해결하지 못할 가능성이 높아졌습니다. 또한 데이터가 거의 무시되어 데이터 보안이 쉽게 손상되었습니다.
절차 적 프로그래밍의 이러한 모든 단점은 객체 지향 프로그래밍으로 극복되었습니다.
이 튜토리얼에서는 객체 지향 프로그래밍의 기본 사항과 OOP의 모든 기능에 대해 간략히 설명합니다.
학습 내용 :
C ++의 객체 지향 프로그래밍
객체 지향 프로그래밍은 데이터를 중심으로합니다. OOP의 주요 프로그래밍 단위는 객체입니다. 객체는 실시간 엔터티의 표현이며 데이터와 데이터에서 작동하는 메서드 또는 함수로 구성됩니다. 이렇게하면 데이터와 기능이 밀접하게 결합되고 데이터 보안이 보장됩니다.
OOP에서는 모든 것이 객체로 표현되고 프로그램이 실행될 때 객체는 메시지를 전달하여 서로 상호 작용합니다. 개체는 통신을 위해 다른 개체의 구현 세부 정보를 알 필요가 없습니다.
객체 외에도 OOP는 아래 나열된 다양한 기능을 지원합니다.
- 클래스
- 캡슐화
- 추출
- 계승
- 다형성
OOP를 사용하여 위의 기능을 활용하여 클래스와 객체를 사용하여 프로그램을 작성합니다. 프로그래밍 언어는 표현하는 모든 것이 객체를 사용하는 경우 진정한 객체 지향 프로그래밍 언어라고합니다. 스몰 토크는 순수한 객체 지향 프로그래밍 언어 인 하나의 언어입니다.
반면에 C ++ 및 Java와 같은 프로그래밍 언어는 부분적인 객체 지향 프로그래밍 언어라고합니다.
C ++가 부분 OOP 인 이유
C ++ 언어는 객체 지향 기능을 C 언어에 사용하려는 주된 의도로 설계되었습니다.
C ++ 언어는 클래스, 객체, 상속, 캡슐화, 추상화 및 다형성과 같은 OOP의 기능을 지원하지만 C ++가 부분 객체 지향 프로그래밍 언어로 분류되는 이유는 거의 없습니다.
안드로이드 용 5 대 mp3 다운로더
이러한 이유 중 몇 가지를 아래에 제시합니다.
# 1) 클래스 / 객체 생성은 선택 사항입니다.
C ++에서 주 함수는 필수이며 항상 클래스 외부에 있습니다. 따라서 프로그램에서 하나의 주요 기능 만 가질 수 있으며 클래스와 객체 없이도 할 수 있습니다.
이것은 모든 것이 객체로 표현되는 Pure OOP 언어의 첫 번째 위반입니다.
# 2) 전역 변수 사용
C ++에는 프로그램 외부에서 선언되고 프로그램의 다른 엔티티에서 액세스 할 수있는 전역 변수 개념이 있습니다. 이것은 캡슐화를 위반합니다. C ++는 클래스 및 객체와 관련하여 캡슐화를 지원하지만 전역 변수의 경우 처리하지 않습니다.
# 3) 친구 기능의 존재
C ++는 친구로 만들어 다른 클래스의 비공개 및 보호 된 멤버에 액세스하는 데 사용할 수있는 친구 클래스 또는 함수를 지원합니다. 이것은 OOP 패러다임을 위반하는 C ++의 또 다른 기능입니다.
결론적으로 C ++은 위에서 언급 한 모든 OOP 기능을 지원하지만 이러한 기능에 대한 해결 방법으로 작동 할 수있는 기능도 제공하므로 이러한 기능 없이도 수행 할 수 있습니다. 이것은 C ++를 부분적인 객체 지향 프로그래밍 언어로 만듭니다.
OOP 기능
여기에서는 프로그래밍에 사용되는 다양한 OOP 기능을 소개합니다.
클래스 및 개체
객체는 객체 지향 프로그래밍의 기본 단위입니다. 개체에는 데이터와 해당 데이터에서 작동하는 메서드 또는 함수가 포함됩니다. 개체는 메모리 공간을 차지합니다.
반면에 클래스는 객체의 청사진입니다. 반대로 객체는 클래스의 인스턴스로 정의 될 수 있습니다. 클래스는 객체의 골격을 포함하며 메모리 공간을 차지하지 않습니다.
우리가 예 자동차 개체의. 'Maruti'라는 이름의 자동차 객체는 색상과 같은 데이터를 가질 수 있습니다. 제조업체, 모델, 속도 제한 등 및 가속과 같은 기능. 또 다른 개체 'ford'를 정의합니다. 이것은 이전 객체와 유사한 데이터 및 기능과 더 많은 추가 사항을 가질 수 있습니다.
마찬가지로 데이터와 기능이 비슷하고 약간의 변형이있는 다른 이름의 수많은 객체를 가질 수 있습니다.
따라서 이러한 서로 다른 개체에서 이러한 유사한 데이터와 함수를 정의하는 대신 Car라는 클래스 인 이러한 개체의 청사진을 정의합니다. 위의 각 개체는이 클래스 자동차의 인스턴스가됩니다.
추출
추상화는 사용자로부터 관련없는 정보를 숨기는 프로세스입니다. 예를 들어 , 우리가 차를 운전할 때 먼저 키를 삽입하여 엔진을 시동합니다. 엔진 시동을 위해 백그라운드에서 진행되는 프로세스를 알지 못합니다.
프로그래밍에서 추상화를 사용하여 불필요한 세부 사항을 사용자로부터 숨길 수 있습니다. 애플리케이션에서 추상화를 사용하면 내부 구현을 변경하더라도 최종 사용자는 영향을받지 않습니다.
캡슐화
캡슐화는 데이터와 데이터에서 작동하는 메서드 또는 기능을 함께 묶는 프로세스입니다. 이렇게하면 외부 세계에서 데이터에 쉽게 액세스 할 수 없습니다. OOP에서는 데이터 멤버를 비공개로 만들고 이러한 데이터 멤버에 액세스 할 수있는 공용 기능을 사용하여 캡슐화를 수행합니다.
계승
한 클래스의 상속 객체를 사용하면 다른 클래스의 객체 속성을 상속하거나 획득 할 수 있습니다. 상속은 코드의 재사용 성을 제공합니다.
따라서 다른 클래스의 속성과 기능을 획득하여 새 클래스를 디자인 할 수 있으며이 과정에서 부모 클래스의 기능을 수정할 필요가 없습니다. 클래스에 새로운 기능 만 추가합니다.
다형성
다형성은 다양한 형태를 의미합니다.
다형성은 OOP의 중요한 기능이며 일반적으로 연산자 오버로딩 또는 함수 오버로딩으로 구현됩니다. 연산자 오버로딩은 연산자가 다른 상황에서 다르게 행동하는 프로세스입니다. 마찬가지로 함수 오버로딩에서 동일한 함수가 다른 상황에서 다르게 작동합니다.
동적 바인딩
OOP는 런타임에 함수 호출이 해결되는 동적 바인딩을 지원합니다. 이는 함수 호출의 결과로 실행될 코드가 런타임에 결정됨을 의미합니다. 가상 함수는 동적 바인딩의 예입니다.
mkv 파일을 어떻게 재생할 수 있습니까
메시지 전달
OOP에서 개체는 메시지를 사용하여 서로 통신합니다. 개체가 통신 할 때 정보는 개체간에 앞뒤로 전달됩니다. 메시지는 일반적으로 다른 개체로 보낼 개체 이름, 메서드 이름 및 실제 데이터로 구성됩니다.
OOP의 장점
OOP의 몇 가지 장점에 대해 논의하겠습니다.
# 1) 재사용 성
OOP는 상속을 통해 기존 코드를 재사용 할 수 있습니다. 코드를 다시 작성하지 않고도 기존 기능을 쉽게 획득하고 개선 할 수 있습니다. 이로 인해 코드가 덜 부풀어집니다.
# 2) 모듈성
OOP에서 프로그램을 모듈화하므로 문제가 발생하거나 새로운 기능 또는 개선 사항이 추가 될 경우 프로그램을 쉽게 수정하거나 문제를 해결할 수 있습니다. 모듈화는 코드의 명확성을 높이고 더 읽기 쉽게 만듭니다.
# 3) 유연성
OOP는 다형성 기능을 사용하는 유연한 프로그래밍을 지원합니다. 다형성은 다양한 형태를 취하기 때문에 많은 객체와 함께 작동하는 연산자 또는 함수를 가질 수 있으므로 각 객체에 대해 다른 함수를 작성하지 않아도됩니다.
# 4) 유지 보수성
많은 재구성이나 변경없이 새 클래스, 객체 등을 쉽게 추가 할 수 있으므로 코드 유지 관리가 더 쉽습니다.
# 5) 데이터 및 정보 숨기기
OOP는 데이터를 숨기는 데 도움이되므로 정보가 누출되지 않도록 보호합니다. 프로그램의 원활한 작동에 필요한 데이터 만 고유 한 세부 정보를 숨겨 사용자에게 노출됩니다.
결론
OOP는 현대 프로그래밍에서 가장 중요하고 유연한 프로그래밍 패러다임입니다. 실제 문제를 모델링하는 데 특히 유용하므로 매우 인기가 있습니다.
이 튜토리얼에서 OOP의 다양한 기능에 대해 논의했습니다. 계속해서 이러한 모든 기능에 대해 자세히 설명하겠습니다.
이 시리즈의 다음 주제 인 'OOP with C ++'에서는 클래스와 객체에 대해 자세히 설명합니다.
=> Absolute C ++ 교육 시리즈를 보려면 여기를 클릭하십시오.