課題なのですが、どなたか教えてください。

●以下の条件を持つプログラムを構築しなさい

○「カード」オブジェクトを定義するCardクラス、(ジョーカーを除く)52枚のカードからなる「デッキ」を定義するDeckクラスを定義しなさい

○アプリケーションあるいはアプレットを利用して、5枚のカードをデッキから取り出すプログラム、(例えばそのプログラムの名前はCardTestクラス)、を作成しなさい

○カードおよびデッキの初期化には静的変数により実施しなさい

○カードクラスの「インスタンスメソッド」として番号とマークを問い合わせるメソッドを用意しなさい

★余力があれば、次の要件を付け加えなさい

○5枚のカードを取り出す際、ランダムになるよう、あらかじめカードをシャッフルする機能をDeckのクラスメソッドとして実現しなさい

○カードのソーティングを実施し、ポーカーの役がわかるようにしなさい

○好きなカードを「ホールド」し、それ以外を引きなおして、再度、役をチェックするようにしなさい。その際、アプレットとAWTなどに用意されている機能を利用しなさい


というものです。
よろしくお願いします