5에 대한 답변이 포함된 상위 OOPS 인터뷰 질문
돌아온 것을 환영합니다!
블로그 친구들에 다시 오신 것을 환영합니다. 이번 포스팅에서는 40개가 넘는 OOPS 면접 질문과 답변에 대한 예시를 알려드리겠습니다. 이 질문은 프로그래밍 인터뷰 중에 면접관이 OOP와 관련된 질문을 할 때 도움이 될 것입니다. 따라서 관심이 있으시면 계속 지켜봐 주시기 바랍니다. 콘텐츠가 마음에 들면 개발자 친구들과 공유해 보세요.
기본 객체 지향 프로그래밍 개념
객체 지향 프로그래밍의 전체 형식인 OOP는 프로그래밍에 있어서 매우 고급 주제이며 캡슐화로 모듈화를 강화하고 상속 전달 등과 같은 많은 기능을 가지고 있지만 OOP 상속, 캡슐화, 다형성 및 기타 개념은 네 가지만 있습니다. 데이터 추상화와 이들 모두는 기본 사항이자 인터뷰 중에 배우는 것이 매우 중요합니다.
이들에 대해 모르면 인터뷰에 실패할 가능성이 있으며 Microsoft, Google, Adobe 또는 기타 대형 기술 회사와 같이 꿈에 그리던 회사에서 일할 기회를 얻지 못할 수도 있습니다. .
또한 인터뷰에 가기 전에 객체 지향 프로그래밍을 준비하는 것이 좋습니다. 인터뷰에서 면접관이 OOP란 무엇인가?와 같은 객체 지향 프로그래밍과 관련된 질문을 할 가능성이 매우 높기 때문입니다. 왜 필요한가요? 등
그래서 우리는 당신만을 위해 인터뷰 중에 당신에게 물어볼 기회가 많은 40개 이상의 질문을 찾았으며 가장 좋은 점은 질문과 함께 당신이 인터뷰 중에 말할 수 있는 답변도 제공했다는 것입니다. 인터뷰.
1) 생성자는 무엇이며 Java에는 몇 가지 유형의 생성자가 있습니까?
Java의 생성자는 객체가 초기화될 때 사용되는 특정 메서드이지만 주요 목적은 사용하기 전에 클래스에 있는 객체의 데이터 필드를 초기화하는 것입니다. Java 메소드와 달리 생성자는 클래스와 이름이 동일하며 반환 유형이 없습니다.
예 -
공개 수업 MyClass{
//생성자
마이클래스(){
체계. out.println("Oracle.com");
}
공개 정적 무효 메인(문자열 인수[]){
MyClass obj = new MyClass();
//
}
}
2) OOP 이외의 다른 프로그래밍 패러다임은 무엇입니까?
OOP 외에 프로그래밍 패러다임은 크게 4가지가 있습니다.
- 명령형 프로그래밍 패러다임(최고의 예 - C, Java, Pascal) 등
- 논리 프로그래밍 패러다임(모범 사례 - 데이터로그 및 ASP(응답 세트 프로그래밍)) 등.
- 객체 지향 프로그래밍 패러다임(가장 좋은 예 - C, C#, PERL, RUBY) 등.
- 함수형 프로그래밍 패러다임(가장 좋은 예 - Python, Haskell, Lisp, Erlang) 등.
3) SOP란 무엇인가?
SOP의 전체 형태는 구조적 프로그래밍입니다. 이는 컴퓨터 프로그램의 명확성, 품질 및 시간 개발을 개선하는 것을 목표로 하는 프로그래밍 패러다임이며, 이를 개선하기 위해 선택(if/then/else) 및 반복(while 및 for)의 구조화된 제어 흐름 구성을 광범위하게 사용합니다. ), 블록 등을 통해 OOP보다 배우기 쉽고 작성 시간도 단축됩니다. 간단히 말해서 필요할 때 프로그램에 논리적 구조를 제공하는 것을 목표로 합니다.
4) OOP와 SOP의 차이점은 무엇입니까?
OOP와 SOP의 차이점은 면접 시 5가지를 알아두시면 좋을 것 같습니다 -
- SOP의 데이터는 OOP만큼 안전하지 않습니다
- SOP에서는 코드를 재사용하기 어렵지만 OOP에서는 코드를 재사용하기가 더 쉽습니다
- SOP에는 액세스 지정자가 없지만 OOP에는 개인, 공개, 보호의 세 가지 유형의 액세스 지정자가 있습니다.
- SOP는 OOP보다 코드 학습이 더 쉽습니다.
- SOP는 코드를 함수나 모듈로 나누는 반면, Java는 그렇지 않은 반면 필드 형태의 데이터와 프로시저 형태의 코드를 포함하는 객체 개념으로 작동합니다.
5) 컴파일 타임 다형성과 런타임 다형성의 차이점을 알려주세요.
두 가지의 차이점은 컴파일 타임 다형성은 정적 바인딩을 통해 달성할 수 있고 런타임 다형성은 동적 바인딩을 통해 달성할 수 있다는 것입니다. 이들 사이의 또 다른 차이점은 컴파일 타임에는 다형성 상속이 포함되지만 런타임에는 다형성 상속이 포함되지 않는다는 것입니다.
6) 캡슐화의 의미를 알려주세요.
sumlogic.com에 따르면 사용자가 특정 객체의 모든 변수에 대한 상태값을 얻을 수 없도록 객체의 일부 구성요소에 대한 직접 접근을 제한하는 방법이다.
8) 생성자란 무엇입니까?
(OOP) 객체 지향 프로그래밍에서는 해당 유형의 새로 생성된 객체를 초기화하는 클래스 또는 구조체의 특수한 메서드입니다. 그래서 생성자라고 부릅니다.
7) 수업이란 무엇인가요?
TechTarget 웹사이트에 따르면 특정 종류의 개체에 있는 메서드와 변수에 대한 템플릿 정의가 있습니다. 따라서 변수 대신 실제 값을 가지며 객체는 클래스의 특정 인스턴스이며 true입니다.
9) 추상화란 무엇입니까?
추상화는 앱의 세부 사항을 외부 세계로부터 숨기는 것을 수반합니다. 간단히 말해서, 이름, 코드, 이미지 등과 같은 앱의 세부정보를 다른 사람이 볼 수 없도록 숨깁니다.
10) 다형성이란 무엇입니까?
다형성은 객체 지향 프로그래밍 세계에서 중요한 주제입니다. 쉽게 말하면 다양한 형태로 여러번 일어나는 상황일 뿐입니다.
11) OOP가 왜 그렇게 인기가 있습니까?
앗, 아주 간단한 방법으로 문제를 해결하고 다양한 방법으로 사용자나 정부에 도움이 되기 때문에 요즘 정말 인기가 많습니다.
12) 상속의 의미를 알려주세요.
한 클래스가 다른 클래스의 속성을 사용하는 것을 상속이라고 하며, 첫 번째 클래스가 다른 객체를 기반으로 하기 때문에 유사한 구현이 있을 때 발생합니다.
13) 구조화된 프로그래밍의 의미를 알려주세요.
모듈형 프로그래밍이라고도 알려진 구조적 프로그래밍을 사용하면 프로그램을 더 쉽게 만들 수 있으며 읽기 쉽고 재사용 가능한 코드를 사용하여 프로젝트를 개발할 수 있습니다.
14) 객체란 무엇인가?
프로그램을 설계할 때 가장 먼저 떠오르는 것이기도 하고, 객체라는 과정에서 궁극적으로 파생되는 코드의 단위이기도 합니다.
15) 클래스에서 객체를 생성하는 것이 항상 필요합니까?
예, 객체가 없으면 클래스에서 객체를 생성할 수 없습니다.
16) 가장 중요한 객체지향 프로그래밍 언어를 알려주세요.
Java는 가장 중요한 객체지향 프로그래밍 언어입니다.
17) OOP의 의미를 알려주세요.
OOP의 의미는 객체지향 프로그래밍입니다. 여러 언어가 지원되므로 작업이 더 쉬워집니다.
18) 수업은 얼마나 많은 메모리를 사용합니까?
수업은 메모리 공간을 차지하지 않습니다.
20) OOP의 주요 기능을 알려주세요.
OOP의 특징은 상속입니다.
21) OOP의 필요성을 알려주세요.
OOP의 필요성은 아무리 강조해도 지나치지 않습니다. OOP는 재사용성을 극대화하기 위해 코드를 구성하는 방법이기 때문에 정말 중요합니다. 이는 작업을 더 쉽게 만들고 Java, C 및 C와 같은 언어의 도움으로 앱 및 게임 제작과 같은 다양한 분야에서 언어 형태로 사용됩니다. 이를 통해 사용자와 상호 작용할 수 있는 개체를 포함할 수 있습니다.
22) C는 어떻게 다형성을 지원합니까?
C에서 다형성은 동일한 기관이 상황에 따라 다른 방식으로 작동한다는 것을 의미합니다.
23) 수업이란 무엇인가요?
Brilliant.org에 따르면 수업은 물건을 만들기 위한 청사진입니다. 상태와 행위 구현을 위한 초기값을 제공하며, OOP에서도 아주 필수적인 주제임에도 꼭 알아야 할 기본 사항입니다.
24) 구조란 무엇입니까?
ques10.com에 따르면 구조는 동일하거나 다른 데이터 유형의 변수 모음에 지나지 않습니다. 여기에는 클래스, 개체 등이 포함됩니다.
25) OOP의 주요 기능은 무엇입니까?
객체 지향 프로그래밍에는 세 가지 주요 기능이 있습니다. 다형성, 캡슐화, 상속이 그것이다.
26) 클래스와 구조의 차이점은 무엇입니까?
이 질문의 경우 크게 두 가지 차이점을 말할 수 있습니다.
- 구조체는 값 유형이고 클래스는 참조 유형입니다.
- 구조체는 스택 할당을 사용하고 클래스는 힙 할당을 사용합니다.
27) OOP 개념에 맞는 프로그래밍 언어를 말해 보세요.
Java, Python, C는 OOP 개념을 구현하는 언어 중 일부입니다.
28) 인스턴스를 생성하지 않고 기본 클래스 메서드를 호출할 수 있나요?
이 경우 인스턴스를 생성하지 않고도 정적 메서드를 호출할 수 있습니다. 따라서 이에 따르면 그렇습니다. 우리는 그렇게 할 수 있습니다.
29) 상속에는 어떤 종류가 있나요?
OOPS에는 세 가지 유형의 상속이 있습니다.
- 단일 상속
- 다단계 상속
- 다중 상속
30) 다중 및 다단계 상속이란 무엇이며 이를 구별합니까?
다중 상속은 객체 또는 클래스가 둘 이상의 상위 객체 또는 상위 클래스로부터 특성을 받을 수 있도록 하는 일부 객체 지향 프로그래밍 언어의 기능으로, 다중 수준 상속에서는 둘 이상의 클래스가 참여합니다.
31) 슈퍼클래스란 무엇을 의미하나요?
하위 클래스가 나온 OOP의 클래스를 슈퍼클래스라고 합니다.
32) 서브클래스란 무엇입니까?
다른 클래스에서 파생된 클래스를 하위 클래스라고 합니다.
33) 상속의 한계는 무엇입니까?
이 질문에 대해 세 가지 단점-
에 대해 말할 수 있습니다.- 잘못 사용하면 코딩 관련 문제에 대한 잘못된 답변이 나올 수 있습니다.
- 메모리 낭비로 이어질 수 있습니다.
- 기본 클래스는 코드의 다른 모든 하위 클래스에 영향을 미칩니다.
34) Java는 완전히 순수한 OOP 언어인가요?
아니요, 완전히 순수한 OOP 언어는 아닙니다. 그러나 OOP 언어의 네 가지 기본 요소를 모두 지원합니다.
35) 메소드 오버로딩이란 무엇입니까?
메서드 오버로딩은 객체 지향 프로그래밍의 다형성 유형입니다.
36) 메소드 재정의란 무엇입니까?
하위 클래스나 하위 클래스가 해당 슈퍼클래스나 상위 클래스 중 하나가 이미 제공하는 메서드의 특정 구현을 제공할 수 있도록 하는 언어 기능입니다.
37) 오버로딩과 오버라이딩의 차이점은 무엇입니까?
면접관이 이런 질문을 하면 기본적으로 세 가지 차이점을 말할 수 있습니다.
- 메서드 오버로딩은 같은 클래스에서만 가능하고, 파생 클래스에서는 메소드 오버라이딩이 가능합니다.
- 메서드 오버로딩은 정적 바인딩이라고도 하며, 메서드 재정의는 동적 바인딩이라고도 합니다.
- 메서드 오버로딩은 컴파일 시간 다형성을 적용하는 데 사용되고, 메서드 재정의는 런타임 다형성을 적용하는 데 사용됩니다.
38) 추상클래스란 무엇인가요?
추상 클래스는 하나 이상의 추상 메소드를 포함하는 클래스 유형입니다.
39) 추상수업을 달성하는 방법은 무엇입니까?
Java 추상 클래스는 두 가지로 분류할 수 있습니다.
- 부분 추상화 성과
- 구체적인 방법을 구현함으로써 달성할 수 있습니다.
- 완전 추상화 달성 - 클래스 동작을 정의하는 추상 유형이 포함된 인터페이스를 사용하여 달성할 수 있습니다.
추상수업을 이수하기 위해 기억해야 할 몇 가지 사항이 있습니다 -
- 추상 클래스를 정의하려면 abstract 키워드를 사용해야 합니다.
- 추상적인 기술과 비추상적인 기술을 모두 지원할 수 있습니다.
- 생성할 수 없습니다.
- 생성자와 정적 함수도 가질 수 있습니다.
- 하위 클래스가 메소드 본문을 변경하지 않도록 요구하는 최종 메소드를 가질 수 있습니다.
39) 정적 다형성과 동적 다형성이란 무엇입니까?
정적 다형성은 컴파일 타임에 메소드를 호출하기 위해 정보를 모으는 다형성의 일종이고, 동적 다형성은 런타임에 메소드를 호출하기 위해 정보를 모으는 다형성의 일종입니다.
40) '액세스 지정자'란 무엇입니까?
액세스 지정자는 클래스의 속성과 메서드에 액세스하는 방법을 정의합니다.
41) 인터페이스란 무엇인가요?
유타 대학교에 따르면 인터페이스는 컴퓨터가 객체에 특정 특성을 부여할 수 있게 해주는 프로그래밍 구조/구문입니다. (수업).
결론
이번 게시물에서는 면접관이 면접에 관해 질문할 수 있는 모든 중요한 질문에 대한 답변을 제공했습니다. 우리는 답변이 짧고 명확해야 한다고 노력했습니다. 따라서 우리 콘텐츠가 마음에 들고 우리의 노력에 감사한다면 개발자 친구들과 게시물을 공유해 주세요.
위 내용은 5에 대한 답변이 포함된 상위 OOPS 인터뷰 질문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

개발 환경에서 Python과 JavaScript의 선택이 모두 중요합니다. 1) Python의 개발 환경에는 Pycharm, Jupyternotebook 및 Anaconda가 포함되어 있으며 데이터 과학 및 빠른 프로토 타이핑에 적합합니다. 2) JavaScript의 개발 환경에는 Node.js, VScode 및 Webpack이 포함되어 있으며 프론트 엔드 및 백엔드 개발에 적합합니다. 프로젝트 요구에 따라 올바른 도구를 선택하면 개발 효율성과 프로젝트 성공률이 향상 될 수 있습니다.

C와 C는 주로 통역사와 JIT 컴파일러를 구현하는 데 사용되는 JavaScript 엔진에서 중요한 역할을합니다. 1) C는 JavaScript 소스 코드를 구문 분석하고 추상 구문 트리를 생성하는 데 사용됩니다. 2) C는 바이트 코드 생성 및 실행을 담당합니다. 3) C는 JIT 컴파일러를 구현하고 런타임에 핫스팟 코드를 최적화하고 컴파일하며 JavaScript의 실행 효율을 크게 향상시킵니다.
