1.クラスの作成①

以下のクラスを作成しなさい。

クラス名:Rectangle

フィールド:double width, double hight

コンストラクタ:フィールドを初期化する

メソッド:長方形の面積を返すgetRectangularArea

テストクラス:

<結果>

253.75

2.クラスの作成②

以以下のクラスを作成しなさい。なお、特に指定のない項目については各自で名前を考えること。

クラス名:Parrot

フィールド:String name

コンストラクタ:フィールドを初期化する処理のみ

メソッド:メッセージを受け取ってそのメッセージをオウム返しするtalk

テストクラス:

<結果>

Hello, I'm P-chan
こんにちは
Hello, I'm Q-chan
您好

3.クラスの作成③

以下のクラスを作成しなさい。なお、特に指定のない項目については各自で名前を考えること。

クラスの概要:配列の統計値を計算してくれるクラス

フィールド:doulbe[] numbers

コンストラクタ:フィールドを初期化する

メソッド:合計、平均、最大値、最小値、を返す合計4つのメソッド

テストクラス:

<結果>

792.72
198.18
644.2
19.8

余裕があれば最頻値(Mode)、標準偏差(Standard Deviation)などの統計値も計算できるようにすること。

4.インスタンス変数をstaticメソッドから参照する

次のコードは実行できません。

それはなぜでしょうか?

5.インスタンス変数のスコープ

以下のプログラムはサイコロ(6面)を模した(つもりの)DiceクラスとそのテストクラスQ05から構成されています。

しかし、RuntimeExceptionが発生し意図した通りの動きをしません。

numberをローカル変数からインスタンス変数に変えることでこの問題に対処しなさい。

<期待される結果の例>

5
3

6.クラスをメインメソッドでインスタンス化して利用する

以下のプログラムはチームメンバー全員の自己紹介をするためのプログラムです。

以下の NewComer1 (新入社員)クラスを使用して、プログラムを作成しなさい。

(1)Q06クラスにmainメソッドを追加しインスタンスを生成する。
(2)setName メソッドであなたの名前を設定する。
(3)showProfile メソッドであなたの名前を表示する。

<結果の例>

私の名前は、今井です。

7.インスタンスメソッドの作成と変更

前問の NewComer1 クラスに、次の内容を追加して新たなクラスNewComer2を作りなさい。
(1)年齢を保持する int 型のフィールドを追加する。
(2)年齢を設定するインスタンスメソッド、setAgeを追加する。
(3)mainメソッド内で自分の年齢(サバ読み可)を設定する。
(4)showProfile メソッドで名前、年齢を表示するように変更する。
(5)Q07クラスにインスタンスを生成し、名前と年齢を設定してからプロフィールを表示する。

<結果の例>

私の名前は今井です。
年齢は40歳です。

8.オブジェクト型の配列とメソッド

前問の NewComer2 クラスを使用して次のプログラムを作成しなさい。
(1)オブジェクト配列を使い、メンバー全員分のNewComer クラスのインスタンスを作成しなさい。
(2)すべてのインスタンスに名前、年齢を設定する。
(3)すべてのインスタンスのプロフィールを表示する。

<結果の例>

出力例

私の名前は今井です。
年齢は40歳です。
---------------------
私の名前は山田です。
年齢は37歳です。
---------------------
(以下省略)

9.コンストラクタの作成

前問の NewComer2 クラスに、名前と年齢を初期化するコンストラクタを追加してNewComer3とし、次のプログラムを作成しなさい。
なお、IDEの「コードの挿入」機能を使わないパターンと、使うパターン両方試すこと。

(1)オブジェクト配列を使い、メンバー全員分のNewComer クラスのインスタンスを1文で作成する。
(2)すべてのインスタンスのプロフィールを表示する。

<結果の例>

私の名前は今井です。
年齢は22歳です。
--------------
私の名前は山田です。
年齢は23歳です。

(中略)

10.インスタンスメソッドの利用

前問の NewComer3クラスに、次の内容を追加してNewComer4クラスとしなさい。
(1)趣味を保持するフィールド( hobby:String 型)を追加する。
(2)名前、年齢、趣味を設定する引数を持つようにコンストラクタを変更する。
(3)ShowProfile メソッドを名前、年齢、趣味を表示するように変更する。
(4)一つ年をとるgetOlderメソッド(引数無し、戻り値年齢)を追加する。
(5)NewComer クラスのインスタンスをチームメンバー数だけ作成する。
(6)全員のプロフィールを表示する。
(7)getOlderメソッドで全員1歳年をとらせてから同様にプロフィールを表示する。
  (ここでは戻り値を使っていない、戻り値を捨てていることに注意)

<結果の例>

私の名前は今井です。
年齢は22歳です。
趣味は釣りです。
--------------
私の名前は山田です。
年齢は23歳です。
趣味は農業です。
--------------

(中略)

私の名前は今井です。
年齢は23歳です。
趣味は釣りです。
--------------
私の名前は山田です。
年齢は24歳です。
趣味は農業です。
--------------

(中略)

11.thisの使い方

漫才をする学生のプログラムのプロトタイプである。

以下のようなアウトプットを表示したい。

ボケます from 今井 to 山崎
なんでやねん! from 山崎 to 今井
ボケます from 山崎 to 今井
なんでやねん! from 今井 to 山崎
 
ボケます from 今井 to 今井
なんでやねん! 今井

つまり2人の生徒が互いにボケを交わした後、自分でボケて自分自身に突っ込みを入れたいのである。

問:以下のコードの①~③を埋めなさい。

12.数あてゲーム再々来

あなたが卒業課題で作成した数あてゲームが以下の通りだったとします。

このとき、Kazuateクラスを別途作成し、インスタンスを生成してインスタンスメソッドを使ったプログラムに変更したい。

以下の書きかけのテストプログラムと整合するようにKazuateクラスを作成しなさい。

13.オリジナル問題作成

将来の後輩のために良い問題が出来たら教えてください。

JavaSEの問題集トップページに戻る