目次[隠す][見せる]
- 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.コンストラクターチェーンとは正確には何ですか?
- まとめ
最も影響力のあるプログラミング パラダイムの XNUMX つは、OOP (オブジェクト指向プログラミング) と呼ばれます。 機能やプロセスではなく、クラスやオブジェクトに重点を置いています。
その主な目的は、データと物事を接続して、それらをより簡単に操作できるようにすることです。 OOP の各オブジェクトは、プロシージャまたはメソッドの形式のコードと、フィールドの形式のデータで構成されます。
C++、Objective C、Python、Perl、Java などの言語は、最も人気のあるオブジェクト指向言語の一部です。 プログラミング言語.
おっとインタビューの質問は非常に典型的であるため、これについてもっと理解することが重要です. ほとんどの企業は、オブジェクト指向の方法とパターンに精通しているエンジニアを探しています。 したがって、面接に参加する場合は、OOP のアイデアに精通している必要があります。
この投稿では、初心者からエキスパート レベルまでのさまざまなオブジェクト指向プログラミング インタビューの質問を紹介します。 したがって、あらゆるレベルの面接に合格し、夢のポジションを確保できます。
1. オブジェクト指向プログラミングとは正確には何ですか?
オブジェクト指向 (OOP) のプログラミングは、単なる関数やプロセスではなく、実際のオブジェクトに基づいています。 クラスは個々の製品に対して作成されます。
継承、ポリモーフィズム、および隠蔽は、OOP がプログラミングに組み込む実世界の概念の例です。 また、データとコードを接続することもできます。
2. なぜ OOP が必要なのですか?
OOP が望ましい理由はいくつかありますが、最も重要な理由は次のとおりです。
- OOP を使用すると、実装に慣れていなくても、ソフトウェアを簡単に理解できます。
- おっと、コードの読みやすさ、理解のしやすさ、保守のしやすさが XNUMX 倍向上します。
- OOP を使用すると、非常に大規模なアプリケーションでも簡単に構築および制御できます。
3. OOPS の原則にはどのような利点がありますか?
- おっと、プログラミングオブジェクトは実際のオブジェクトをシミュレートし、複雑さを軽減し、プログラムの明確さを高めます。
- オブジェクトは、多くのプログラムで繰り返し使用できます。
- 各オブジェクトは、内部操作が他のシステム コンポーネントから独立している個別のエンティティを作成します。
- いくつかの新しいオブジェクトを導入し、いくつかの既存のものを更新することで、新しい機能を追加したり、変化する動作条件に適応したりできます。
- OOPs プログラムのプロセスまたはデータ表現は、簡単に微調整できます。
4. OOP の概念の柱は何ですか?
OOP の主な柱は次のとおりです。
継承: クラスが別のクラスの属性を継承できるようにします。
カプセル化: これは、重要な情報を隠すオブジェクト プロパティとして定義されています。 これにより、データがクラス メンバーから隠されます。 指定子は、コードでオブジェクトの属性にアクセスする方法を記述します。
ポリモーフィズム: これにより、XNUMX つのアクティビティを複数の方法で実行できます。 これは、インターフェイスを介して実現されます。このインターフェイスでは、XNUMX つのインターフェイスを宣言し、その後複数回実装します。
抽象化: この機能を使用して、重要な情報を外界から隠し、重要な事実のみを提示できます。
5. クラスとは正確には何ですか?
クラスは、さまざまな状態にあり、さまざまな動作をするオブジェクトで構成されるプロトタイプです。 そのクラスのオブジェクトによって共有されるいくつかのメソッドがあります。
6. オブジェクトとは正確には何ですか?
オブジェクトは、椅子、猫、犬など、OOP の基本単位として機能する現実世界のエンティティです。 さまざまなオブジェクトには、さまざまな状態、プロパティ、およびアクションがあります。
7. OOP の制限は何ですか?
- 他のアプリよりサイズが大きい。
- 少し慣れが必要です。
- 特定の種類の問題は、それを必要としません。
- 作成に手間がかかり、他のアプリに比べて動作が遅い。
8.継承とは何ですか?
継承と呼ばれる概念は、クラスの確立された構造と動作を別のクラスが共有することを指します。 継承が単一のクラスに適用される場合、それは単一の継承と呼ばれます。 多くのクラスに依存する場合、多重継承と呼ばれます。
9. カプセル化とは正確には何ですか?
OOP の考え方には、カプセル化も含まれます。 データの混合とデータ操作技術について説明します。 さらに、オブジェクトの一部への直接アクセスを防止するのにも役立ちます。
10. ポリモーフィズムとは?
OOP 言語では、ポリモーフィズムは基本的な概念です。 異なるクラスがインターフェイスを共有する方法を示しています。 これらのクラスはすべて、固有のインターフェース実装を持つことができます。
11. 抽象化とは正確には何ですか?
抽象化は、実世界のオブジェクトの構造を作成するために使用されるオブジェクト指向プログラミング (OOP) の概念です。 最も重要な性質だけを「表示」し、外界からの無関係な情報を「隠します」。 抽象化の基本的な目標は、人々を不必要な情報から保護することです。
12. メソッドのオーバーロードとは正確には何ですか?
XNUMX つ以上のプロシージャに同じ名前を付けることができます。 ただし、異なるパラメータ、異なる数のパラメータ、異なる種類、またはその両方を持つ必要があります。 これらはオーバーロードされたメソッドとして知られており、この機能はメソッドのオーバーロードとして知られています。
13. メソッドのオーバーライドとは正確には何ですか?
オブジェクト指向プログラミングには、メソッドのオーバーライドの考え方が含まれています。 これは、サブクラスまたは子クラスが、そのスーパークラスまたは親クラスの XNUMX つが既に提供しているメソッドのカスタマイズされた実装を提供できるようにする言語機能です。
14. スーパークラスとは正確には何ですか?
基本クラスとも呼ばれるスーパークラスは、別のクラスの親として機能するクラスのタイプです。 たとえば、Car クラスには Vehicle というサブクラスがあります。
15. サブクラスとは正確には何ですか?
サブクラスは別のクラスのサブクラスです。 たとえば、バンは Vehicle サブクラスまたは派生クラスです。
16. 静的ポリモーフィズムとは正確には何ですか?
コンパイル時に、静的ポリモーフィズム (静的バインディング) と呼ばれる一種のポリモーフィズムが発生します。 メソッドのオーバーロードは、コンパイル時のポリモーフィズムの一種です。
17.動的ポリモーフィズムとは正確には何ですか?
実行時に解決されるポリモーフィズムの一種は、ランタイム ポリモーフィズムと呼ばれ、動的ポリモーフィズム (動的バインディング) とも呼ばれます。 メソッドのオーバーライドは、ランタイム ポリモーフィズムの例です。
18. コンストラクターの概念を説明してください。
コンストラクターは、クラス インスタンスの作成時に自動的に呼び出されるクラスの特定のメソッドです。 クラスにアクセスすると、クラスと同じ名前で構築され、すべてのメンバーが初期化されます。 コンストラクターの主な特徴は次のとおりです。
コンストラクターには戻り値の型はありません。
コンストラクターのオーバーロードが可能です。
コンストラクターを指定する必要はありません。 .NET Framework が自動的に行います。
19. アクセス修飾子とは正確には何ですか?
オブジェクト指向言語では、キーワードはアクセス修飾子またはアクセス指定子です。 クラス、メソッド、および他のメンバーのアクセシビリティの構成に役立ちます。
20. デストラクタとは正確には何ですか?
デストラクタは、オブジェクトに割り当てられたリソースを解放するためのメソッドです。 オブジェクトが破棄されると、このメソッドが自動的に呼び出されます。
21.ハイブリッド継承とは正確には何ですか?
ハイブリッド継承は、単一、複数などのいくつかの形式の継承が混在することによって生成される一種の継承です。
22. 階層的継承とは正確には何ですか?
階層継承の状況では、複数のサブクラスが親クラスから継承されます。 単一の親クラスまたは基本クラスから多数のクラスが派生する種類の継承は、階層継承と呼ばれます。 たとえば、フルーツ クラスには、「リンゴ」、「マンゴー」、「バナナ」、「チェリー」などのサブクラスを含めることができます。
23.継承の欠点は何ですか?
実行プロセスが長くなり、複雑になります。 また、さまざまなクラス間の切り替えも必要です。 親クラスと子クラスは常に密接に関連しています。
カリキュラムを変更すると、親と子の両方のクラスの改訂が必要になります。 継承は慎重に実装する必要があります。そうしないと、結果が正しくなくなります。
24. 例外とは正確には何ですか?
例外は、コードの通常の操作を妨げるインシデントです。 実行を継続するために、Java でこれらの例外を処理できます。 Java には、さまざまな種類の事前定義された例外があり、発生した例外を try-catch ブロックを使用して制御する例外処理が提供されています。
25. 例外処理とは正確には何ですか? また、その利点は何ですか?
Java で予期しないランタイム エラーに対処するための最も重要な方法は、例外処理です。 プログラムの実行中に発生する実行時エラーを制御できます。
例外処理の利点には、例外を管理しながら通常のプログラム フローを維持できることが含まれます。 たとえば、プログラムの XNUMX つのセクションでエラーが発生した場合、try-catch ブロックで例外を処理すれば、プログラムの残りの部分には影響しません。
26. 仮想機能とは正確には何ですか?
仮想関数も親クラスの関数に含まれており、サブクラスによってオーバーライドされます。 これらのルーチンは、ランタイム ポリモーフィズムの実現に役立ちます。
27. フレンド機能とは正確には何ですか?
フレンド関数は、クラスに属し、パブリック、プライベート、または保護されたデータへのアクセスが許可されている関数です。 関数がクラス外で定義されている場合、このデータを取得することはできません。 アクセス制御キーワードの private、public、および protected は、クラス宣言のどこにでも作成できるフレンド宣言には関係ありません。
28.ガベージコレクションとは正確には何ですか?
ガベージ コレクション (GC) は、メモリ回復システムとして機能する C# や Java などのプログラミング言語の要素です。 ガベージ コレクション (GC) エンジンは、アプリケーションが使用しなくなったオブジェクトのメモリ領域を自動的に解放できるプログラミング言語のコンポーネントです。
29.カップリングとは正確には何ですか?
さまざまなクラスが互いに依存し合い、知識を共有する状況を指します。 あるクラスが別のクラスの詳細な知識を持っている場合、強いつながりが生じます。 アクセス修飾子を使用して、クラス、メソッド、または変数の可視性を指定できます。 インターフェースは、より弱い結合を提供するために使用されます。
30.結束とは正確には何ですか?
コンポーネントが特定のアクティビティを達成する方法は、その凝集性と呼ばれます。 強力でまとまりのあるアプローチは、定義されたタスクを単純に実行しますが、弱くまとまりのある方法は、単一のタスクをいくつかの小さなタスクに分割してから完了します。
Java.io パッケージはかなり首尾一貫していますが、java.util パッケージはそうではありません。
31. try/catch ブロックを記述します。
コードやデータが正しくないためにプログラムでエラーが発生した場合、「try」と「catch」はその対処方法を示します。 try ブロックは、例外が発生したときのコードの部分の名前です。 catch ブロックは、try ブロックからの例外をキャプチャして処理するために使用されます。
32. 最終ブロックを記述してください。
コードの try キーワードの作業部分は最後に示されています。 これは、試行の直後に常に実行されるコードと、メソッドが完了する前の catch ブロックを指定します。 最終ブロックは、例外がスローされてもキャッチされても常に実行されます。
33. インターフェイスとは正確には何ですか?
インターフェイスは、抽象メソッドとユーザー定義のデータ型の組み合わせです。 クラスは、インターフェイスの抽象関数を継承してインターフェイスを実装します。
クラスはオブジェクトのプロパティと動作を表しますが、インターフェイスにはクラスが実装する動作が含まれます。 インターフェイスは「何を」を表し、クラスは「どのように」を伝達します。
34.構成とは正確には何ですか?
組成物は、接続を達成するために使用することができます。 集約とは対照的に、従属オブジェクトと独立オブジェクト間の強力なオブジェクト リンクを示します。 この状況では従属オブジェクトは存在せず、親オブジェクトが消去されると削除されます。
35.コンストラクターチェーンとは正確には何ですか?
コンストラクター チェーンは、現在のオブジェクト参照に関連して、あるコンストラクターを別のコンストラクターから呼び出すための手法です。 次の XNUMX つのオプションがあります。
- 現在のクラスのコンストラクターは、「this」キーワードを使用して参照できます。
- 「super」キーワードは、基本クラスからコンストラクターを呼び出すために使用されます。
まとめ
オブジェクト指向プログラミングでは、プログラムの構造を考え、事前に準備する必要があります。 要件を基本的で再利用可能なクラスに分割する方法を検討し、それらを使用して物事のインスタンスを作成します。
全体として、OOP を採用することで、 データ構造 再利用性により、長期的には時間を節約できます。 見る Hashdorkのインタビューシリーズ 面接準備のお手伝い。
コメントを残す