Java 演習・オブジェクト指向上級
1️⃣ オブジェクト指向の高度な
1. 空白を埋める
- 継承は、_______ キーワードを通じて Java に実装されます。
- クラスは _______ 個の親クラスのみを継承できますが、_______ インターフェースを実装できます。
- _______ クラスはすべてのクラスの親クラスであり、このクラスでは、2 つのオブジェクトが等しいかどうかを判断するメソッドが _______ であり、オブジェクトの完全な情報を取得するメソッドが _______ です。
Integer
クラスは、_______ 基本データ型をカプセル化したものです。Float
クラスは、_______ 基本データ型をカプセル化したものです。Double
クラスは、_______ 基本データ型をカプセル化したものです。文字クラスは、Character
_______ 基本データ型をカプセル化したものです。- サブクラスで定義されたメソッドが親クラスのメソッドと同じ名前で、パラメータの型、数値、戻り値の型が同じである場合、そのメソッドはサブクラス メソッド _______ 親クラス メソッドと呼ばれ、サブクラスはデフォルトで _______ メソッドを使用し、親クラスと同じ名前のメソッドは _______ キーワード記述を使用する必要があります。
- サブクラスで定義されたメンバ変数が親クラスのメンバ変数と同じ名前の場合、そのメンバ変数はサブクラス_______親クラスのメンバ変数と呼ばれ、サブクラスはデフォルトで_______属性を使用します。親クラスと同じ名前のメンバー変数を使用するには、_______ キーワードで説明する必要があります。
- サブクラスが構築メソッドを定義している場合、サブクラス オブジェクトを作成するときに、最初にデフォルトで _________ を呼び出してから、このクラスの構築メソッドを呼び出します。
2. 多肢選択問題
-
new
オブジェクトの作成に直接使用できないクラスは ( ) です。
A. 静的クラス
B. 抽象クラス
C. 最終クラス
D. パブリック クラス -
クラスに対して、名前は同じでパラメータの型や数が異なる複数のメソッドを定義することを ( ) と呼びます。
A. メソッドのオーバーロード
B. メソッドのオーバーライド
C. メソッドの継承
D. メソッドの再利用 -
インターフェースを定義するためのキーワードは ( ) です。
A. 拡張
B. クラス
C. インターフェイス
D. パブリック -
ここで 2 つのクラスがあります
A
。これは、B
以下の説明ではis()B
から継承されることを意味しますA
。
A. クラス A は B を拡張します
B. クラス B は A を実装します
C. クラス A は B を実装します
D. クラス B は A を拡張します -
親クラスのコンストラクターを呼び出すサブクラスに関する次の説明は正しいです ( )。
A. サブクラスは独自の構築メソッドを定義するため、親クラスの構築メソッドを呼び出しません。 B.
サブクラスは、スーパー キーワードを介してパラメータを指定して親クラスの構築メソッドを呼び出す必要があります。
C. サブクラスの構築メソッドがスーパーを介して親クラスの構築メソッドを呼び出さない場合、サブクラスは、最初に親クラスの引数なしの構築メソッドを呼び出し、次にサブクラス自体の構築メソッドを呼び出します。 D. サブクラス オブジェクトを作成するときは、最初にサブクラスの構築メソッドを呼び出し、次に構築メソッドを呼び出します。親クラスの
メソッド -
class が classの親クラス
X
であると仮定すると、 object が正しくないと宣言している次のステートメントは ( ) です。A. X x = 新しい X(); B. X x = 新しい Y(); C. Y x = 新しい Y(); D. Y x = 新しい X();Y
x
-
次のプログラムをコンパイルして実行すると、結果は ( ) になります。
public class A { public static void main(String args[]){ B b = new B(); b.test(); } void test(){ System.out.print("A"); } } class B extends A{ void test(){ super.test(); System.out.println("B"); } }
A. クラス B がクラス A のメソッド test() をオーバーライドすると、アクセス制御レベルが低下するため、コンパイル エラーが発生します。 B. コードはコンパイルおよび実行でき、出力は次のようになります。 AB C. コードはコンパイルおよび実行できますが、出力はありません。 D. コードはコンパイルおよび実行でき、出力は次のようになり
ます
。
A. -
( ) 修飾子によって定義されたメソッドは、サブクラスによってオーバーライドされる必要があります。
A. 最終
B. 抽象
C. 静的
D. インターフェース -
( ) 修飾子によって定義されたメソッドは、サブクラスによってオーバーライドできません。
A. 最終
B. 抽象
C. 静的
D. インターフェース -
次のプログラムをコンパイルして実行した結果は ( ) です。
public class A implements B{ public static void main(String args[]){ int m,n; A a = new A(); m = a.K; n = B.K; System.out.println(m+","+n); } } interface B{ int K=5; }
A.5,5
B.0,5
C. 0,0
D. コンパイラーがコンパイル結果を生成する -
インターフェースに関する次の記述のうち、間違っているものは ( ) です。
A. インターフェイスのすべてのメソッドは抽象です
。 B. インターフェイスのすべてのメソッドはパブリック型である必要があります。
C. インターフェイスの定義に使用されるキーワードは、implements です。
D. インターフェイスは、グローバル定数と抽象メソッドを含む、Java の特別なクラスです。 -
Java に関する次の記述は間違っています ( )。
A. abstract と Final は同時にクラスを変更できます
B. 抽象クラスは親クラスだけでなくサブクラスにもなり得ます C.
抽象メソッドは必ずしも抽象クラスで宣言される必要はなく、インターフェイスでも宣言されます
D. Final として宣言されたメソッドはサブクラスでオーバーライドできません
3. 正誤質問
final
宣言されたクラスはサブクラスを持つことができます。( )- クラスは抽象クラスを継承し、抽象クラスの抽象メソッドはそのサブクラスでオーバーライドする必要があります。( )
final
type の変数は定数であり、その内容は変更できません。( )- クラスはサブクラスとスーパークラスの両方になることはできません。( )
- サブクラスは親クラスのメンバーのみを継承できますが、親クラスのメンバーを変更することはできません。( )
- Java 言語は単一継承のみをサポートし、多重継承はサポートしません。( )
- サブクラスは親クラスのすべてのメンバーを継承できます。( )
- インターフェイスは抽象クラスを継承できます。( )
- インターフェイスは同時に複数のインターフェイスを継承できます。( )
- これは、プログラム内
this
とsuper
コンストラクターが呼び出されたときの両方で使用できます。( )
4. 短答式の質問
- このキーワードとスーパー キーワードの違いを簡単に説明します。
- メソッドのオーバーロードとオーバーライドの違いを簡単に説明します。
- 既存のクラスから新しいクラスを派生させる利点は何ですか?
- サブクラスと親クラスを区別するにはどうすればよいですか?サブクラスは親クラスからどのような内容を継承できますか?
- ポリモーフィズムとは何ですか?ポリモーフィズムを実現するにはどのような方法がありますか?
- インターフェイスの特徴は何ですか?インターフェイスを定義および実装するにはどうすればよいですか?
- インターフェースと抽象クラスの違いは何ですか?
- 基本的なデータ型の自動ボックス化および自動アンボックス化操作を簡単に説明します。
5. プログラミングに関する質問
ClassName
抽象メソッドを 1 つだけ含むインターフェイスを定義しますgetClassName()
。インターフェースのメソッドをCompany
実装するクラスを設計します。その機能は、クラスのクラス名を取得することです。クラスを使用してアプリケーションを作成します。ClassName
getClassName()
Company
- 人間 (
Person
) と学生クラス (Student
) を作成します。 機能要件:
A.Person
4 つの保護されたデータ メンバーname
、address
、sex
、age
それぞれ文字列、文字列、文字、および整数が含まれます。名前、住所、性別、年齢を示します。4 つのプロパティを表示するには、4 つの引数を持つコンストラクター、引数のないコンストラクター、および出力メソッドが使用されます。
B.Student
を継承しPerson
、出力メンバーを増やしmath
、english
数学と英語のスコアを保存します。6 つの引数のコンストラクター、2 つの引数のコンストラクター、および引数のないコンストラクター。出力メソッドをオーバーライドして 6 つのプロパティをすべて表示します。 - 名前、年齢、性別の属性を持ち、構築メソッドとデータ表示メソッドを持つ従業員クラスを定義します。管理クラスを定義し、従業員クラスを継承し、独自の属性 (役職、年収) を持ちます。従業員クラスを定義し、従業員クラスを継承し、所属する部門や月給などの独自の属性を持ちます。
Shape
一般的な 2 次元グラフィックスを表すクラスを定義します。Shape
抽象メソッドarea
とがありperimeter
、それぞれ形状の面積と周囲長を計算します。いくつかの 2 次元形状クラス (四角形、三角形、円など) を定義してみます。これらはすべてShape
クラスのサブクラスです。B.Student
を継承しPerson
、出力メンバーを増やしmath
、english
数学と英語のスコアを保存します。6 つの引数のコンストラクター、2 つの引数のコンストラクター、および引数のないコンストラクター。出力メソッドをオーバーライドして 6 つのプロパティをすべて表示します。