신입 및 경력자를 위한 47 OOP 인터뷰 질문 및 답변을 읽어야 함 [2022]

게시 됨: 2021-06-22

프로그래밍 인터뷰 에 참석하고 어떤 질문과 토론을 하게 될지 궁금하십니까? 면접에 참석하기 전에 면접 질문 의 유형에 대한 아이디어를 가지고 마음속으로 답변을 준비할 수 있도록 하는 것이 좋습니다.

당신을 돕기 위해 OOP 인터뷰 질문의 깊이와 실제 의도를 이해하기 위해 최고의 OOP 인터뷰 질문 및 답변 가이드 를 만들었습니다. 시작하자.

프로그래밍 세계와 언어는 프로그래밍 언어가 시작된 이래로 먼 길을 왔습니다. 그러나 시간의 테스트에서 눈에 띄는 한 가지는 객체 지향 프로그래밍 개념입니다. 프로그래밍 경력을 시작하려는 사람이든 기술을 향상시키려는 사람이든 개체 지향 프로그래밍 또는 개체 지향 프로그래밍 시스템(OOP)에 대한 확실한 이해를 개발해야 합니다.
이 기사에서는 가장 중요한 OOP 면접 질문 을 준비하는 데 도움이 될 것입니다. OOP의 주요 기능, 장점 및 제한 사항에 대한 질문을 검토해 보겠습니다. 이 OOP 인터뷰 질문 은 객체 지향 프로그래밍의 필수 측면을 다룹니다. 이러한 개념과 질문을 이해하면 면접을 잘 준비하고 실제 프로그래밍 과제를 해결하는 데 도움이 됩니다.

인기 OOP 인터뷰 질문 및 답변

가장 흔한 OOPS 면접 질문과 답변에 대해 알아보겠습니다.

1. 객체 지향 프로그래밍이란 무엇입니까?

가장 기본적인 OOP 면접 질문 입니다. 귀하의 답변은 다음과 같아야 합니다.

객체 지향 프로그래밍은 함수와 메서드가 아닌 객체를 사용하여 정의된 프로그래밍 패러다임을 말합니다. 개체에는 필드 또는 특성이라고 하는 데이터와 논리 또는 지원 코드를 제공하는 메서드가 포함됩니다. 상속, 다형성, 캡슐화, 추상화와 같은 기능을 제공합니다.

2. 객체지향 프로그래밍의 주요 특징은 무엇입니까?

OOPs interview question OOP 인터뷰 질문 계승

  • 캡슐화
  • 다형성
  • 데이터 추상화
  • 3. 객체지향 프로그래밍의 장점은 무엇입니까?

    가장 흔한 oops 인터뷰 질문 중 하나.

    • 모든 수준의 복잡성 문제는 객체 지향 프로그래밍으로 지원할 수 있습니다.
    • 매우 복잡한 문제는 객체 지향 프로그래밍으로 처리할 수 있습니다.
    • 중복을 줄이는 상속 을 사용하여 코드 재사용을 위한 효율적인 메커니즘을 제공합니다.
    • 데이터를 숨기는 메커니즘을 제공합니다.
    • 상향식 접근 방식을 기반으로합니다.
    • 다형성을 통해 유연성 제공
    • 코드의 유지 보수성을 향상시킵니다.

    앗 인터뷰 질문과 답변

    4. 구조적 프로그래밍이란 무엇입니까?

    구조 프로그래밍은 기능을 기반으로 하는 전통적인 프로그래밍 방법을 말합니다. 전체 프로그램 로직은 논리적 구조를 제공하기 위해 기능으로 나뉩니다. 하향식 접근 방식을 기반으로 합니다. 구조적 프로그래밍은 쉬운 문제에서 중간 정도의 복잡한 문제에 적합합니다.

    5. 수업이란 무엇입니까?

    클래스는 템플릿 또는 개체의 정의를 정의합니다. 런타임에 개체를 만드는 데 사용됩니다. 데이터 구조를 제공하고 속성에 대한 초기 값을 제공하며 개체의 의도된 동작에 대한 논리를 제공하는 메서드를 제공합니다. 클래스는 런타임에 메모리를 사용하지 않습니다. 클래스는 논리적 엔터티를 나타냅니다. 예를 들어, 차량은 클래스로 정의될 수 있습니다.

    6. 물건이란 무엇을 의미합니까?

    개체는 프로그램 실행 중에 클래스에서 생성된 런타임 인스턴스를 나타냅니다. 객체는 속성이나 속성 및 동작을 지원하는 메서드가 있는 실제 개체를 참조할 수 있습니다. 객체는 초기화될 때 메모리 공간을 소비합니다.

    7. 항상 클래스에서 객체를 생성해야 합니까?

    아니요, 정적 메서드로 정의된 경우 기본 클래스 메서드를 호출할 수 있습니다.

    8. 생성자란 무엇입니까?

    생성자 메서드는 개체를 초기화하는 데 사용됩니다. 그들은 특별한 유형의 메소드이며 클래스와 동일한 이름을 갖습니다.

    읽기: Java 인터뷰 질문 및 답변

    9. 다양한 유형의 생성자 나열

    여러 객체 지향 프로그래밍 언어에서 지원되는 여러 유형의 생성자는 다음과 같습니다.

    • 기본 생성자
    • 복사 생성자
    • 정적 생성자
    • 개인 생성자
    • 매개변수화된 생성자

    10. 소멸자란 무엇입니까?

    소멸자는 개체에 할당된 리소스를 해제하는 데 사용되는 메서드입니다. 이 메소드는 객체가 파괴될 때 자동으로 호출됩니다.

    11. 복사 생성자는 무엇을 의미합니까?

    복사 생성자는 한 개체의 값을 같은 클래스에 속한 다른 개체로 복제하여 개체를 복제하는 데 도움이 됩니다.

    12. 클래스와 구조의 차이점을 강조할 수 있습니까?

    클래스는 런타임에 객체가 생성되는 사용자 정의 템플릿을 의미합니다. 클래스는 개체에서 지원하는 다양한 동작에 대한 논리를 제공하는 메서드로 구성됩니다.

    구조는 다양한 데이터 유형의 속성의 사용자 정의 조합을 의미합니다.

    13. 상속의 개념을 예를 들어 설명해 주시겠습니까?

    상속은 클래스가 다른 클래스의 속성과 메서드를 상속할 수 있도록 하는 객체 지향 프로그래밍의 강력한 기능입니다. 이는 코드 재사용을 개선하는 데 도움이 됩니다.

    예를 들어 기본 클래스는 모든 유형의 차량이 공유하는 공통 속성만 정의할 수 있는 차량과 같은 논리적 개념을 나타냅니다. 그러나 자식 클래스는 이 기본 클래스에서 상속하여 트럭, 자동차 또는 버스와 같은 보다 구체적인 유형의 클래스를 정의할 수 있습니다. 이 경우 자식 클래스는 차량의 공통 속성을 상속하고 고유한 메서드인 속성을 정의할 수 있습니다.

    14. 상속의 한계는 무엇입니까?

    상속은 실행 중에 다양한 클래스를 탐색해야 하므로 프로그램에 더 많은 처리 시간이 필요합니다. 상속으로 인해 부모 클래스와 자식 클래스가 밀접하게 연결됩니다. 로직에 변경이 필요한 경우 상위 및 하위 클래스 모두에서 변경이 필요할 수 있습니다.

    상속이 올바르게 구현되지 않으면 원하지 않는 결과가 발생할 수 있습니다.

    15. 다양한 유형의 상속은 무엇입니까?

    • 하나의
    • 다수의
    • 다단계
    • 계층적
    • 잡종

    앗 인터뷰 질문과 답변

    16. 계층적 상속의 의미는 무엇입니까?

    여러 하위 클래스가 기본 클래스를 상속하는 경우 이를 계층적 상속이라고 합니다.

    17. 다중 상속과 다중 상속을 구별합니까?

    다중 상속의 경우 클래스는 둘 이상의 부모 클래스를 상속합니다. 대조적으로, 다중 수준 상속은 클래스가 다른 부모 클래스의 하위 클래스인 다른 클래스에서 상속됨을 의미합니다.

    18. 하이브리드 상속을 어떻게 정의합니까?

    하이브리드 상속은 단일 클래스에서 다중 및 다중 레벨 상속의 사용으로 정의됩니다.

    읽기 : SQL 인터뷰 질문 및 답변

    19. 서브클래스란 무엇입니까?

    다른 클래스에서 상속받은 자식 클래스를 하위 클래스라고 합니다.

    20. 슈퍼클래스를 정의합니까?

    상위 클래스는 다른 클래스가 상속하는 클래스를 의미합니다. 예를 들어, 차량은 모두 동일한 수퍼클래스에서 상속된 경우 car, bus 또는 truck 클래스의 수퍼클래스로 참조됩니다.

    21. 인터페이스란 무엇을 의미합니까?

    인터페이스는 정의를 제공하지 않고 메소드 선언을 허용합니다.

    인터페이스에서 개체를 만들 수 없습니다. 클래스가 인터페이스를 구현할 때 인터페이스에서 제공하는 메서드를 구현해야 합니다.

    22. 다형성이란 무엇입니까?

    다형성은 객체 지향 프로그래밍의 중요한 기능입니다. 여러 형태로 존재할 수 있는 능력을 의미합니다. 다양한 정의를 제공하여 단일 인터페이스를 여러 가지 방법으로 구현할 수 있습니다.

    더 읽어보기: Java가 개발자들에게 인기 있는 6가지 이유

    23. 정적 다형성이란 무엇을 의미합니까?

    정적 다형성 또는 정적 바인딩을 사용하면 컴파일하는 동안 함수를 개체와 연결할 수 있습니다. 연산자 오버로딩의 메서드 오버로딩으로 구현할 수 있습니다.

    24. 동적 다형성이란 무엇을 의미합니까?

    동적 다형성 또는 동적 바인딩을 사용하면 런타임에 재정의된 메서드를 호출할 수 있습니다.

    25. 메소드 오버로딩이란?

    가장 흔한 oops 인터뷰 질문 중 하나. 메소드 오버로딩은 여러 메소드가 동일한 메소드 이름을 가질 수 있는 객체 지향 프로그래밍의 매우 유용한 기능입니다. 그러나 그들은 다른 주장을 가지고 있습니다. 메서드에 대한 호출은 인수를 기반으로 해결됩니다.

    26. 메소드 오버라이드의 의미는 무엇입니까?

    메서드 재정의를 통해 자식 클래스는 구현을 적용하여 부모 클래스의 메서드를 재정의할 수 있습니다. 그러나 메서드 이름, 인수 및 반환 유형은 동일하게 유지됩니다.

    27. 연산자 오버로딩이 무엇인지 설명할 수 있습니까?

    연산자 오버로딩이라는 용어는 전달된 인수에 따라 연산자의 동작이 변경될 수 있음을 의미합니다. 그러나 사용자 정의 유형에 대해서만 작동합니다.

    28. 오버로딩과 오버라이드의 차이점을 어떻게 설명합니까?

    메소드 오버로딩은 여러 메소드가 동일한 메소드 이름을 공유하지만 다른 인수를 가짐을 의미합니다. 그러나 재정의의 경우 자식 클래스는 동일한 인수를 유지하여 메서드 구현을 재정의할 수 있습니다. 또 다른 차이점은 오버로드는 컴파일 타임에 해결되고 재정의는 런타임에 해결된다는 것입니다.

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

    29. 캡슐화에 대해 무엇을 알고 있습니까?

    가장 일반적인 OOP 인터뷰 질문 중 하나입니다. 캡슐화는 객체 지향 프로그래밍의 중요한 기능입니다. 단일 엔터티에서 데이터와 논리를 함께 바인딩할 수 있습니다. 또한 데이터를 숨길 수 있습니다.

    30. 데이터 추상화란 무엇을 의미합니까?

    데이터 추상화는 논리의 구현 세부 사항을 숨길 수 있지만 중요한 정보에만 액세스할 수 있도록 하는 객체 지향 프로그래밍의 기능을 나타냅니다.

    확인: 전체 스택 개발자 인터뷰 질문

    31. 데이터 추상화는 어떻게 달성할 수 있습니까?

    데이터 추상화는 추상 클래스 또는 추상 메서드를 통해 수행할 수 있습니다.

    32. 추상 클래스는 무엇을 의미합니까?

    OOPS 인터뷰 질문 및 답변 가이드는 이 질문 없이 완성되지 않습니다. 추상 클래스는 추상 메서드로 구성됩니다. 추상 메서드는 선언만 하고 구현하지는 않습니다. 서브클래스가 메서드를 사용해야 하는 경우 해당 메서드를 구현해야 합니다.

    33. '접근 지정자'에 대해 자세히 설명해 주시겠습니까?

    OOPs interview question's 예를 들어 이 OOP 인터뷰 질문의 액세스 지정자는 메서드 또는 클래스 등의 액세스 가능성을 제어하는 ​​특수 키워드입니다. 액세스 한정자라고도 하며 캡슐화를 달성하는 데 사용됩니다. 예를 들어 public, private 및 protected 키워드는 액세스 지정자의 몇 가지 예입니다.

    34. 추상 클래스의 인스턴스는 어떻게 생성합니까?

    메서드에 구현 논리가 없기 때문에 추상 클래스의 인스턴스를 만들 수 없습니다. 객체를 초기화하기 전에 먼저 모든 메서드를 구현하는 하위 클래스를 만들어야 합니다.

    35. 가상 기능이란 무엇입니까?

    가상 함수는 부모 클래스에 정의되어 있고 정의가 구현되어 있을 수 있습니다. 하위 클래스는 이러한 정의를 재정의할 수 있습니다.

    36. 순수 가상 기능이란 무엇입니까?

    순수 가상 함수는 부모 클래스에서만 선언됩니다. 추상 함수라고도 합니다. 순수 가상 함수는 기본 클래스에 정의를 포함하지 않습니다. 필요한 구현을 위해 서브클래스에서 재정의해야 합니다.

    37. 데이터 추상화와 캡슐화를 구별하십시오.

    데이터 추상화는 원치 않는 정보를 숨기는 기능입니다.

    캡슐화는 데이터와 메서드를 함께 숨길 수 있는 기능을 말합니다.

    38. 인터페이스와 추상 클래스의 차이점은 무엇입니까?

    일반 oops 면접 질문 및 답변 안내 중 하나입니다. 추상 클래스는 추상 및 비추상 메서드를 모두 지원할 수 있습니다. 그러나 인터페이스는 추상 메서드만 허용합니다.

    추상 클래스의 경우 final 및 non-final 변수가 모두 지원됩니다. 그러나 인터페이스에는 기본적으로 final로 정의되는 변수가 있습니다.

    추상 클래스는 private 및 public 속성을 가질 수 있지만 인터페이스는 기본적으로 속성을 public으로 가집니다.

    39. 최종 변수는 무엇입니까?

    최종 변수는 값이 변하지 않는 변수를 의미합니다.

    40. 예외란 무엇을 의미합니까?

    예외는 바람직하지 않은 입력이나 추가 처리를 방해하는 조건으로 인해 프로그램 실행 중에 발생하는 이벤트입니다. 예외는 프로그램의 정상적인 실행을 방해하며 프로그램의 종료를 피하기 위해 예외 처리 논리를 통해 처리되어야 합니다.

    41. 예외 처리 정의

    예외 처리는 프로그램 실행 중에 발생한 예외를 처리하는 데 사용되는 메커니즘을 나타냅니다. 원하지 않는 결과를 적절하게 처리할 수 있습니다.

    42. 오류는 기본적으로 예외와 동일한가요?

    오류는 프로그램이 잡아야 하는 문제를 의미하고 예외는 프로그램이 잡아야 하는 조건을 의미합니다.

    43. try-catch 블록이란 무엇입니까?

    try-catch 블록은 예외 처리에 사용됩니다. 잠재적인 오류를 유발할 수 있는 명령문 세트는 try 블록으로 묶입니다. 예외가 발생하면 catch 블록에서 catch합니다. 예외를 처리하는 논리는 catch 블록 내부에 배치됩니다.

    44. finally 블록이란 무엇입니까?

    'finally' 블록은 예외가 발생하더라도 메모리 해제, 파일 닫기 또는 데이터베이스 연결과 같은 필수 명령문을 실행하는 데 사용됩니다. finally 블록은 항상 실행됩니다.

    45. '마무리' 방법은 무엇에 사용됩니까?

    가비지 수집기가 시작되기 전에 사용되지 않은 리소스를 해제하기 위해 finalize 메서드가 호출됩니다.

    46. ​​가비지 컬렉션이란 무엇이며 어떻게 작동합니까?

    가비지 수집은 자동 메모리 관리를 수행하는 프로그래밍 언어의 기능입니다. 더 이상 필요하지 않은 개체를 제거하여 자동으로 메모리를 해제합니다.

    47. 항상 객체 지향 프로그래밍을 사용해야 합니까? 객체 지향 프로그래밍의 한계가 있습니까?

    이것은 고급 oops 인터뷰 질문 중 하나입니다. 객체 지향 프로그래밍은 많은 이점을 제공하지만 몇 가지 단점도 있습니다. 우선 절차적 프로그래밍에 비해 학습 곡선이 가파르다. 많은 사람들이 사물의 관점에서 생각하고 프로그래밍하는 데 익숙해지는 데 시간이 걸릴 수 있습니다. 둘째, 객체의 관점에서 프로그램을 설계하는 데 더 많은 경험이 필요할 수 있습니다. 더 작은 프로그래밍 작업에 OOP 개념을 사용하는 것은 효율적이지 않을 수 있습니다.

    확인: 면접에서 돋보이게 하는 15가지 면접 팁

    결론

    Google Analytics 질문 및 답변 가이드가 도움이 되었기를 바랍니다. 최신 정보를 제공하기 위해 가이드를 정기적으로 업데이트할 것입니다. 객체 지향 프로그래밍은 마스터하는 데 시간이 걸립니다. 인터뷰 중 질문에 답하는 데 도움이 되는 기본 사항을 명확하게 하기 위해 많은 연습을 하는 것이 좋습니다. Google Analytics 질문 및 답변 가이드가 도움이 되었기를 바랍니다. 최신 정보를 제공하기 위해 가이드를 정기적으로 업데이트할 것입니다.

    실생활에서 개념을 연습하는 데 도움이 되는 한 가지 트릭으로 결론을 내리고자 합니다. 실제 객체를 볼 때마다 객체 지향 개념과 관련시키고 객체의 속성, 메서드를 식별하려고 합니다. 이것에 익숙해지면 프로그래밍이 훨씬 쉽고 재미있을 것입니다.

    전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 소프트웨어 개발 이그 제 큐 티브 PG 프로그램 - 전문가를 위해 설계되었으며 500 시간 이상의 엄격한 교육을 제공하는 전체 스택 개발 전문화를 확인하십시오. 9 + 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

    지금 소프트웨어 개발 경력을 계획하십시오.

    IIIT-B에서 소프트웨어 개발의 이그 제 큐 티브 PG 프로그램 신청