모든 프로그래머가 알아야 할 OOP 개념 및 예

게시 됨: 2021-02-26

이 기사에서는 객체 지향 프로그래밍에 대한 기본 개념을 다루고 일반적으로 사용되는 용어인 추상화, 캡슐화, 상속 및 다형성에 대해 논의합니다.

우선, OOP는 프로그래머가 개체를 만들고 작업에 이러한 개체가 필요한 기능 내에서 프로그램 전체에서 사용하도록 요구하는 프로그래밍 방법론입니다. 자바에서 OOP 개념이 광범위하게 사용되는 이유는 보안을 유지하면서 코드를 재사용할 수 있기 때문입니다.

객체 지향 프로그래밍의 네 가지 기둥에 대해 이야기하기 전에 객체 지향 언어를 사용할 때 자주 듣는 일반적인 용어인 Java, python, C++에 대해 알아보겠습니다.

목차

수업

클래스는 특정 유형의 모든 개체에 공통적인 속성 집합을 정의하는 개체 모음입니다. 객체 생성을 위한 청사진이라고도 할 수 있습니다. 클래스에는 다음 구성 요소가 포함됩니다.

클래스 이름: 대문자로 시작하는 클래스에 부여되는 이름.

수정자: 클래스 수정자는 기능에 따라 공개, 비공개 또는 기본값이 될 수 있습니다.

Body : 클래스 바디는 클래스에 존재하는 객체에 대한 모든 코드를 포함합니다. 이는 변수를 선언하거나 개체의 기능을 포함하는 생성자 또는 메서드를 만드는 것까지 다양합니다.

물체

개체는 클래스의 인스턴스로 정의되며 실제 엔터티를 포함합니다. 예를 들어 Animals라는 클래스의 경우 객체는 고양이, 개, 코끼리 등이 될 것입니다. 각 개체에는 고유한 ID, 속성 및 동작이 있습니다. 아래 코드는 Java 언어로 프로그래밍할 때 클래스, 객체, 메서드를 사용하는 방법을 보여줍니다.

행동 양식

메소드는 클래스 내에서 정의되며 특정 기능을 수행하는 데 사용됩니다. 메소드는 입력 매개변수를 포함하거나 포함하지 않을 수 있습니다. 아래 코드는 Java 언어로 프로그래밍할 때 클래스, 객체, 메서드를 사용하는 방법을 보여줍니다.

위의 코드에서 Player는 우리 클래스에 주어진 이름인 반면,runs는 myobj라는 객체를 통해 호출될 때 그가 득점한 런을 반환하는 Batsman 메서드에 전달된 매개변수입니다.

액세스 수정자

Java의 액세스 수정자는 메서드, 생성자 또는 클래스의 액세스 가능성 또는 범위를 정의합니다. 네 가지 유형의 액세스 수정자는 다음과 같습니다.

  1. Public : 클래스 내에 작성된 코드는 다른 클래스에서 액세스할 수 있습니다.
  2. Private : 작성된 코드는 해당 클래스 내에서만 액세스할 수 있습니다.
  3. 기본값 : 작성된 코드 동일한 패키지 내에서 액세스할 수 있습니다.
  4. Protected : 코드는 패키지 내에서 그리고 서브클래스를 통해서도 액세스할 수 있습니다. 자식 클래스가 없으면 코드에 액세스할 수 없습니다.

이제 객체 지향 프로그래밍의 핵심에 대해 이야기해 보겠습니다.

계승

상속이라는 용어는 한 클래스의 속성을 다른 클래스로 상속하는 것을 말합니다. 속성은 부모 클래스의 속성과 메서드를 참조합니다. 부모 클래스는 다른 클래스에서 속성을 상속해야 하는 클래스입니다. 부모 클래스의 속성을 상속하는 클래스를 자식 클래스 또는 하위 클래스라고 합니다. 부모 클래스의 속성을 자식 클래스로 상속하기 위해 extends 라는 키워드 를 사용합니다.

위의 예에서 스폰서는 소유자가 속성인 부모 클래스입니다. 상위 클래스인 스폰서를 상속하는 Team이라는 하위 클래스를 만들었습니다. 부모 클래스의 속성에 액세스할 수 있는 Team 개체를 만들었습니다. 위 코드의 출력은 다음과 같습니다.

다형성

이름에서 알 수 있듯이 다형성은 변수나 함수가 여러 형태로 존재할 수 있는 능력입니다. 다형성을 사용하면 프로그래머가 동일한 변수나 함수를 사용하여 다른 작업을 수행할 수 있습니다. 다형성의 실제 예는 열린 그라운드로 간주되며 이제 이 그라운드는 스포츠를 하는 데 사용할 수 있습니다.

게다가, 그것은 또한 결혼식과 콘서트를 조직하는 데 사용될 수 있습니다. 마지막으로 같은 지면을 주차 차량으로 사용할 수 있습니다. 이를 통해 단일 변수가 사용법에 따라 여러 구현을 가질 수 있음을 추론할 수 있습니다.

다형성은 일반적으로 메서드 오버로딩 메서드 오버라이드 라는 두 가지 용어를 접하게 됩니다.

Method Overloading 에서는 하나의 메서드를 여러 가지 방법으로 사용할 수 있으며 다양한 기능을 수행할 수 있습니다. 메소드의 이름은 같지만 다른 매개변수를 입력으로 사용할 수 있습니다.

메서드 재정의 에서 부모 클래스의 메서드는 자식 클래스에 의해 재정의될 수 있습니다. 이를 통해 부모 클래스와 자식 클래스에 의해 호출될 때 동일한 메서드가 다르게 수행될 수 있습니다.

다형성의 예는 다음과 같습니다.

이 예에서는 동일한 방법을 사용하여 여러 작업을 수행할 수 있습니다. Bird에서 사용하는 것과 동일한 방식의 Voice는 "Turr Turr"을 출력하고 Duck과 함께 사용하면 "Quack Quack"을 출력합니다. 출력 스냅샷은 아래와 같습니다.

추출

추상화는 사용자에게 특정 데이터를 숨기고 필요한 정보만 표시하는 프로세스입니다. 예를 들어, 자동차를 운전하는 동안 우리는 내부 기능이나 메커니즘에 대해 걱정하지 않습니다. 우리에게 보여지는 것은 차가 운전되는 속도와 사용 가능한 휘발유 리터입니다. 다른 모든 주변화된 데이터는 운전자에게 표시되지 않습니다.

abstract 키워드는 추상화를 수행하는 동안 메서드 및 클래스에 사용됩니다. 추상 클래스의 경우 추상 메서드에 본문이 포함되지 않아야 하는 동안 객체를 만들 수 없습니다. 두 규칙 중 하나라도 위반되면 출력에서 ​​오류가 생성됩니다.

여기에서 기본 클래스 Bird에서 상속된 Duck 하위 클래스의 개체를 만들었습니다. 출력은 아래와 같습니다.

캡슐화

캡슐화는 코드와 데이터를 단일 단위로 결합하는 프로세스입니다. 여기에서 클래스의 변수는 private 키워드를 사용하여 다른 클래스에서 숨겨 지지만 멤버 함수를 통해서만 액세스할 수 있습니다. Setter 및 getter 함수는 추상 클래스의 개인 변수에 액세스하는 데 사용됩니다.

지금까지 우리는 Java를 사용한 객체 지향 프로그래밍과 관련된 모든 것을 다루었습니다. 결론을 내리기 전에 OOP 개념의 몇 가지 장점을 살펴보겠습니다.

  1. 코드는 쉽게 재사용할 수 있으므로 코드 개발에 많은 시간과 비용을 절약할 수 있습니다.
  2. 새로운 프로그래머가 코드를 이해하는 데 오랜 시간을 할애할 필요가 없도록 잘 구조화된 방식으로 코드를 설계하는 데 도움이 됩니다.
  3. 사용자가 코드를 효율적으로 작성하도록 돕는 것 외에도 보안이 손상되지 않도록 합니다.

체크아웃: OOPs 인터뷰 질문 및 답변

세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

결론적으로 이 블로그에서는 OOP의 기본 개념을 다뤘습니다. 이러한 개념은 산업 및 기타 응용 프로그램에서 광범위하게 사용됩니다. 능숙한 프로그래머가 되려면 이러한 개념을 확실히 이해해야 합니다. 다음 블로그에서는 이 도메인의 전문성을 개발하는 데 도움이 되는 몇 가지 다른 필수 프로그래밍 개념을 알아낼 것입니다.

전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 이그 제 큐 티브 PG 프로그램을 확인하십시오. 과제, IIIT-B 동문 상태, 실질적인 실습 캡스톤 프로젝트 및 최고 기업과의 취업 지원]

팩토리얼이란?

계승은 주어진 숫자와 그 아래의 모든 숫자의 곱을 계산하는 수학 연산입니다. 계승은 숫자에 1을 곱한 횟수를 나타내는 곱입니다. 예를 들어, 5의 계승은 5x4x3x2x1이며, 이는 120과 같습니다. 1의 계승은 1이고 0의 계승도 1입니다. 숫자의 계승을 찾는 프로그램은 면접에서 가장 많이 받는 질문이며 어떤 것입니다. 그것은 당신의 손 끝에 있어야합니다.

계승 재귀 프로그램을 작성하는 방법은 무엇입니까?

숫자 n의 계승은 n으로 정의됩니다! = 1 × 2 × 3 × 4 × … × n. 5의 계승은 120입니다. 계승 함수는 factorial(5) = 120으로 정의됩니다. 재귀 함수는 자신을 호출하는 함수입니다. 이것은 재귀 스타일 factorial(n) = n * factorial(n - 1)의 계승 함수의 예입니다. 계승 재귀 프로그램을 작성하는 것은 매우 간단하며 코드는 반복 버전과 매우 유사합니다. 반복 버전을 작성하기 위해 n이라는 변수를 사용하고 1씩 증가시키고 n의 연속 값을 추적하는 prod라는 변수와 곱합니다. 출력 값은 prod라는 변수에도 저장됩니다. 재귀 버전에서는 여전히 n이라는 변수를 사용합니다. 그러나 prod의 값을 저장하기 위해 변수가 필요하지 않으며 함수에서 직접 prod를 반환할 수 있습니다.

프로그래밍에서 재귀란?

재귀(recursion)라는 단어는 반환을 의미하는 라틴어 recurrere에서 파생됩니다. 대부분의 프로그래밍 언어에서 자신을 호출하는 함수를 재귀라고 합니다. 이 반복 프로세스는 재귀 함수에서 정의되지 않은 기본 케이스에 도달할 때까지 계속됩니다. 재귀는 구조화되고 조직적인 방식으로 문제를 해결하는 효과적인 기술입니다. 좋은 프로그래밍 전략입니다. 예를 들어, 피보나치 급수 문제, 계승 문제 등은 반복 방식과 재귀 방식 모두에서 풀 수 있습니다.