[面接質問】オブジェクト指向プログラミングとは?
オブジェクト指向プログラミングの面接質問まとめ
はじめに
昨日、某企業の面接を進めながら、オブジェクト指向プログラミングについて答えなければならない場面があったのですが、明らかに知っているつもりで整理していたにもかかわらず、いざ答えようとすると、ぎこちなく話してしまったことがありました。
おかげで弱い部分を指摘できたと思い、再度整理する時間を取ってみることにしました!
オブジェクトとは?
一般的な定義から説明すると以下のようになります。
一般論: 実際に存在するもの コンピュータサイエンス:クラスに定義された内容でメモリに生成されたもの。
オブジェクト指向言語で定義されているものは以下の通りです。
Java: クラスのインスタンスまたは配列 Python: 属性値や振る舞いを持つデータ
Javaのクラスはインスタンスではないが、Pythonのクラスはインスタンスである。
オブジェクト指向プログラミング
オブジェクトの役割と関係を定義して相互作用を通じてプログラムを構築すること。
このように定義することができます。
オブジェクト指向言語の特徴
抽象化
-
オブジェクト間の共通の特徴を導き出すことができる。
-
クラスを定義する部分がこれに該当
多形性
-
少し違う方法で動作する関数に対して同じように呼び出すことができます。
-
同じコマンドに対して接続されたオブジェクトに解釈を転嫁する方式
-
Override(内部ソースのオーバーライド), Overload(パラメータによって同じ名前の他の関数を呼び出す)
カプセル化
-
実装した部分を外部に公開せずに隠すことができます。
-
外部とのコミュニケーションが必要な場合、メソッドを通じて情報をやり取りする。
継承
-
あるクラスが持っている特徴を他のクラスが受け継ぐこと。
-
既に作成されたクラスに加え、新しいクラスを生成することができる。
댓글 작성
게시글에 대한 의견을 남겨 주세요.