차례[숨다][보여 주다]
- 1. 객체 지향 프로그래밍이란 정확히 무엇입니까?
- 2. OOP가 필요한 이유는 무엇입니까?
- 3. OOPS 원칙은 어떤 이점을 제공합니까?
- 4. OOP 개념의 기둥은 무엇입니까?
- 5. 클래스란 정확히 무엇인가요?
- 6. 객체란 정확히 무엇입니까?
- 7. OOP의 한계는 무엇입니까?
- 8. 상속이란 무엇입니까?
- 9. 캡슐화란 정확히 무엇입니까?
- 10. 다형성이란 무엇입니까?
- 11. 추상화란 정확히 무엇입니까?
- 12. 메소드 오버로딩이란 정확히 무엇입니까?
- 13. 메소드 오버라이드란 정확히 무엇입니까?
- 14. 슈퍼클래스란 정확히 무엇입니까?
- 15. 하위 클래스는 정확히 무엇입니까?
- 16. 정적 다형성이란 정확히 무엇입니까?
- 17. 동적 다형성이란 정확히 무엇입니까?
- 18. 생성자의 개념을 설명하십시오.
- 19. 액세스 한정자는 정확히 무엇입니까?
- 20. 소멸자가 정확히 무엇입니까?
- 21. 하이브리드 상속이란 정확히 무엇입니까?
- 22. 계층적 상속이란 정확히 무엇입니까?
- 23. 상속의 단점은 무엇입니까?
- 24. 예외란 정확히 무엇입니까?
- 25. 예외 처리란 정확히 무엇이며 어떤 이점이 있습니까?
- 26. 가상 기능이란 정확히 무엇입니까?
- 27. 친구 기능이 정확히 뭔가요?
- 28. 가비지 컬렉션이란 정확히 무엇입니까?
- 29. 커플링이란 정확히 무엇입니까?
- 30. 응집력이란 정확히 무엇입니까?
- 31. try/catch 블록을 설명하십시오.
- 32. 마지막 블록을 설명하십시오.
- 33. 인터페이스란 정확히 무엇입니까?
- 34. 구성이란 정확히 무엇입니까?
- 35. 생성자 연결이란 정확히 무엇입니까?
- 결론
가장 영향력 있는 프로그래밍 패러다임 중 하나는 OOP 또는 객체 지향 프로그래밍이라고 합니다. 기능과 프로세스 대신 클래스와 객체를 강조합니다.
주요 목표는 데이터와 사물을 연결하여 작업하기가 더 간단하도록 하는 것입니다. OOP의 각 객체는 프로시저 또는 메소드 형태의 코드와 필드 형태의 데이터로 구성됩니다.
C++, Objective C, Python, Perl 및 Java와 같은 언어는 가장 인기 있는 객체 지향 언어입니다. 프로그래밍 언어.
oops 인터뷰 질문은 매우 일반적이기 때문에 이것에 대해 더 많이 이해하는 것이 중요합니다. 대부분의 기업은 객체 지향 방식과 패턴에 익숙한 엔지니어를 찾고 있습니다. 따라서 인터뷰에 참석하려면 OOP 아이디어에 정통해야 합니다.
이 포스트에서는 초심자부터 전문가 수준까지 다양한 객체 지향 프로그래밍 면접 질문을 보여줍니다. 따라서 모든 수준의 면접을 통과하고 꿈의 위치를 확보할 수 있습니다.
1. 객체 지향 프로그래밍이란 정확히 무엇입니까?
객체 지향 프로그래밍(OOP)은 기능과 프로세스가 아닌 실제 객체를 기반으로 합니다. 개별 제품에 대한 클래스가 생성됩니다.
상속, 다형성 및 은닉은 OOP가 프로그래밍에 통합하는 실제 개념의 예입니다. 또한 데이터와 코드를 연결할 수 있습니다.
2. OOP가 필요한 이유는 무엇입니까?
OOP가 선호되는 몇 가지 이유가 있지만 다음이 가장 중요합니다.
- OOP는 사람들이 구현에 익숙하지 않더라도 소프트웨어를 쉽게 이해할 수 있도록 합니다.
- 죄송합니다. 코드 가독성, 이해도 및 유지 관리 가능성을 XNUMX분의 XNUMX로 향상시키십시오.
- OOP를 사용하면 매우 큰 애플리케이션도 간단하게 구축하고 제어할 수 있습니다.
3. OOPS 원칙은 어떤 이점을 제공합니까?
- OOPS, 프로그래밍 개체는 실제 개체를 시뮬레이션하여 복잡성을 줄이고 프로그램 명확성을 향상시킵니다.
- 객체는 많은 프로그램에서 반복적으로 사용될 수 있습니다.
- 각 개체는 내부 작업이 다른 시스템 구성 요소와 독립적인 고유한 엔터티를 만듭니다.
- 몇 가지 새로운 개체를 도입하고 몇 가지 이미 존재하는 개체를 업데이트하여 새로운 기능을 추가하거나 변화하는 작동 조건에 적응할 수 있습니다.
- OOPs 프로그램의 프로세스 또는 데이터 표현은 쉽게 약간의 조정을 거칠 수 있습니다.
4. OOP 개념의 기둥은 무엇입니까?
다음은 OOP의 주요 기둥입니다.
계승: 클래스가 다른 클래스의 속성을 상속할 수 있도록 합니다.
캡슐화: 중요한 정보를 숨기는 객체 속성으로 정의됩니다. 이렇게 하면 클래스 구성원에게 데이터가 숨겨집니다. 지정자는 코드에서 개체의 특성에 액세스하는 방법을 설명합니다.
다형성: 이렇게 하면 여러 가지 방법으로 단일 활동을 수행할 수 있습니다. 이는 인터페이스를 통해 수행되며, 여기서 우리는 이후에 여러 번 구현되는 하나의 인터페이스를 선언합니다.
추출: 이 기능을 사용하여 중요한 정보를 외부 세계로부터 숨기고 핵심적인 사실만 제시할 수 있습니다.
5. 클래스란 정확히 무엇인가요?
클래스는 다양한 상태와 다양한 동작을 가진 객체로 구성된 프로토타입입니다. 해당 클래스의 개체가 공유하는 여러 메서드가 있습니다.
6. 객체란 정확히 무엇입니까?
객체는 의자, 고양이 또는 개와 같은 OOP의 기본 단위 역할을 하는 실제 개체입니다. 다양한 개체에는 다양한 상태, 속성 및 작업이 있습니다.
7. OOP의 한계는 무엇입니까?
- 크기는 다른 응용 프로그램의 크기보다 큽니다.
- 어느 정도 적응이 필요합니다.
- 특정 종류의 문제는 필요하지 않습니다.
- 만드는 데 노동 집약적이었고 다른 응용 프로그램에 비해 더 느리게 작동합니다.
8. 상속이란 무엇입니까?
상속이라는 개념은 클래스의 확립된 구조와 동작을 다른 클래스가 공유하는 것을 말합니다. 상속이 단일 클래스에 적용되는 경우 이를 단일 상속이라고 합니다. 여러 클래스에 종속되는 경우 다중 상속이라고 합니다.
9. 캡슐화란 정확히 무엇입니까?
OOP의 개념에는 캡슐화도 포함됩니다. 데이터와 데이터 조작 기술의 혼합에 대해 설명합니다. 또한 개체의 일부에 대한 직접 액세스를 방지하는 데 도움이 됩니다.
10. 다형성이란 무엇입니까?
OOP 언어에서 다형성은 기본 개념입니다. 다른 클래스가 인터페이스를 공유하는 방법을 보여줍니다. 이러한 클래스는 모두 고유한 인터페이스 구현을 가질 수 있습니다.
11. 추상화란 정확히 무엇입니까?
추상화는 실제 객체의 구조를 만드는 데 사용되는 객체 지향 프로그래밍(OOP) 개념입니다. 그것은 가장 중요한 자질만을 "표시"하고 외부 세계의 관련 없는 정보를 "은폐"합니다. 추상화의 기본 목표는 불필요한 정보로부터 사람들을 보호하는 것입니다.
12. 메소드 오버로딩이란 정확히 무엇입니까?
둘 이상의 프로시저가 동일한 이름을 가질 수 있습니다. 그러나 그들은 고유한 매개변수, 다른 수의 매개변수, 고유한 종류 또는 둘 다를 가져야 합니다. 이를 오버로드된 메서드라고 하며 이 기능을 메서드 오버로딩이라고 합니다.
13. 메소드 오버라이드란 정확히 무엇입니까?
객체 지향 프로그래밍에는 메서드 재정의라는 아이디어가 포함됩니다. 이는 하위 클래스 또는 하위 클래스가 상위 클래스 또는 상위 클래스 중 하나가 이미 제공하는 메서드의 사용자 정의 구현을 제공할 수 있도록 하는 언어 기능입니다.
14. 슈퍼클래스란 정확히 무엇입니까?
기본 클래스라고도 하는 수퍼 클래스는 다른 클래스의 부모 역할을 하는 클래스 유형입니다. 예를 들어 Car 클래스에는 Vehicle이라는 하위 클래스가 있습니다.
15. 하위 클래스는 정확히 무엇입니까?
하위 클래스는 다른 클래스의 하위 클래스입니다. 예를 들어 밴은 Vehicle 하위 클래스 또는 파생 클래스입니다.
16. 정적 다형성이란 정확히 무엇입니까?
컴파일 시간에 정적 다형성(정적 바인딩)으로 알려진 다형성 유형이 발생합니다. 메소드 오버로딩은 컴파일 타임 다형성의 한 유형입니다.
17. 동적 다형성이란 정확히 무엇입니까?
런타임에 해결되는 일종의 다형성을 런타임 다형성이라고 하며 동적 다형성(동적 바인딩)이라고도 합니다. 메서드 재정의는 런타임 다형성을 보여줍니다.
18. 생성자의 개념을 설명하십시오.
생성자는 클래스 인스턴스가 생성될 때 자동으로 호출되는 클래스의 특정 메서드입니다. 클래스에 액세스하면 클래스와 동일한 이름으로 생성되고 모든 멤버를 초기화합니다. 생성자의 주요 특성은 다음과 같습니다.
생성자에는 반환 유형이 없습니다.
생성자 오버로딩이 가능합니다.
생성자를 지정할 필요는 없습니다. .NET Framework에서 자동으로 수행합니다.
19. 액세스 한정자는 정확히 무엇입니까?
객체 지향 언어에서 키워드는 액세스 수정자 또는 액세스 지정자입니다. 클래스, 메서드 및 기타 구성원의 액세스 가능성을 구성하는 데 도움이 됩니다.
20. 소멸자가 정확히 무엇입니까?
소멸자는 개체에 할당된 리소스를 해제하는 방법입니다. 객체가 소멸되면 이 메서드가 자동으로 호출됩니다.
21. 하이브리드 상속이란 정확히 무엇입니까?
하이브리드 상속은 단일, 다중 등 여러 형태의 상속이 혼합되어 생성되는 일종의 상속입니다.
22. 계층적 상속이란 정확히 무엇입니까?
여러 하위 클래스는 계층적 상속 상황에서 상위 클래스에서 상속됩니다. 여러 클래스가 단일 부모 또는 기본 클래스에서 파생되는 일종의 상속을 계층적 상속이라고 합니다. 예를 들어, 과일 클래스에는 '사과', '망고', '바나나', '체리' 등과 같은 하위 클래스가 포함될 수 있습니다.
23. 상속의 단점은 무엇입니까?
실행 프로세스가 길어지고 복잡해집니다. 또한 다양한 클래스 간의 전환이 필요합니다. 부모 클래스와 자식 클래스는 항상 떼려야 뗄 수 없는 관계에 있습니다.
교과 과정을 수정하려면 부모와 자녀의 학급 모두에 대한 수정이 필요합니다. 상속은 신중하게 구현해야 합니다. 그렇지 않으면 결과가 잘못될 수 있습니다.
24. 예외란 정확히 무엇입니까?
예외는 코드의 일반적인 작동을 방해하는 사건입니다. 실행을 계속하려면 Java에서 이러한 예외를 처리할 수 있습니다. Java에는 미리 정의된 많은 종류의 예외가 있으며 try-catch 블록을 사용하여 발생한 예외를 제어하기 위해 예외 처리가 제공됩니다.
25. 예외 처리란 정확히 무엇이며 어떤 이점이 있습니까?
예기치 않은 런타임 오류를 처리하는 Java에서 가장 중요한 방법은 예외 처리입니다. 프로그램 실행 중에 발생하는 런타임 오류를 제어할 수 있습니다.
예외 처리의 이점에는 예외를 관리하는 동안 정규 프로그램 흐름을 유지할 수 있는 기능이 포함됩니다. 예를 들어, 프로그램의 한 섹션에서 오류가 발생하면 try-catch 블록으로 예외를 처리하면 프로그램의 나머지 부분에 영향을 미치지 않습니다.
26. 가상 기능이란 정확히 무엇입니까?
가상 함수는 부모 클래스의 함수에도 포함되며 하위 클래스에 의해 재정의됩니다. 이러한 루틴은 런타임 다형성을 달성하는 데 도움이 됩니다.
27. 친구 기능이 정확히 뭔가요?
친구 함수는 클래스에 속하는 함수이며 공개, 비공개 또는 보호 데이터에 대한 액세스가 허용됩니다. 함수가 클래스 외부에 정의된 경우 이 데이터를 검색할 수 없습니다. 액세스 제어 키워드 private, public 및 protected는 클래스 선언의 어느 곳에서나 만들 수 있는 friend 선언과 관련이 없습니다.
28. 가비지 컬렉션이란 정확히 무엇입니까?
가비지 컬렉션(GC)은 메모리 복구 시스템 역할을 하는 C# 및 Java와 같은 프로그래밍 언어의 요소입니다. GC(가비지 수집) 엔진은 응용 프로그램이 더 이상 사용하지 않는 개체에 대한 자동 메모리 공간 해제를 허용하는 프로그래밍 언어의 구성 요소입니다.
29. 커플링이란 정확히 무엇입니까?
다양한 클래스가 서로 의존하고 지식을 공유하는 상황을 말합니다. 강한 연결은 한 클래스가 다른 클래스에 대한 자세한 지식을 가지고 있을 때 발생합니다. 액세스 한정자를 사용하여 클래스, 메서드 또는 변수의 가시성을 지정할 수 있습니다. 인터페이스는 약한 결합을 제공하는 데 사용됩니다.
30. 응집력이란 정확히 무엇입니까?
구성 요소가 특정 활동을 수행하는 방식을 응집력이라고 합니다. 강력하고 응집력 있는 접근 방식은 단순히 정의된 작업을 수행하는 반면, 약한 응집력 방식은 단일 작업을 여러 개의 작은 작업으로 나눈 다음 완료합니다.
Java.io 패키지는 일관성이 있지만 java.util 패키지는 일관성이 없습니다.
31. try/catch 블록을 설명하십시오.
프로그램이 잘못된 코드나 데이터로 인해 오류가 발생했을 때 "try"와 "catch"는 관리 방법을 나타냅니다. try 블록은 예외가 발생할 때 코드 부분의 이름입니다. catch 블록은 try 블록의 예외를 캡처하고 처리하는 데 사용됩니다.
32. 마지막 블록을 설명하십시오.
try 키워드의 코드 작업 부분은 마지막에 표시됩니다. 시도 직후에 항상 실행되는 코드와 메서드가 완료되기 전에 catch 블록을 지정합니다. 마지막 블록은 예외가 발생하든 catch하든 항상 실행됩니다.
33. 인터페이스란 정확히 무엇입니까?
인터페이스는 추상 메소드와 사용자 정의 데이터 유형의 조합입니다. 클래스는 인터페이스의 추상 기능을 상속하여 인터페이스를 구현합니다.
클래스는 객체의 속성과 동작을 나타내는 반면 인터페이스는 클래스가 구현하는 동작을 포함합니다. 인터페이스는 "무엇"을 나타내는 반면 클래스는 "어떻게"를 나타냅니다.
34. 구성이란 정확히 무엇입니까?
구성을 사용하여 연결을 얻을 수 있습니다. 집계와 달리 종속 개체와 독립 개체 간의 강력한 개체 연결을 보여 줍니다. 종속 개체는 이 상황에서 존재하지 않으며 상위 개체가 지워지면 제거됩니다.
35. 생성자 연결이란 정확히 무엇입니까?
생성자 연결은 현재 개체 참조와 관련하여 한 생성자를 다른 생성자에서 호출하는 기술입니다. 두 가지 옵션이 있습니다.
- 현재 클래스의 생성자는 "this" 키워드를 사용하여 참조할 수 있습니다.
- "super" 키워드는 기본 클래스에서 생성자를 호출하는 데 사용됩니다.
결론
객체지향 프로그래밍은 프로그램의 구조에 대해 생각하고 미리 준비하는 것이 필요합니다. 요구 사항을 사물의 인스턴스를 만드는 데 사용할 수 있는 재사용 가능한 기본 클래스로 나누는 방법을 조사합니다.
전반적으로 OOP를 수용하면 데이터 구조 장기적으로 시간을 절약할 수 있는 재사용성. 보다 해시독의 인터뷰 시리즈 면접 준비에 도움이 됩니다.
댓글을 남겨주세요.