ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュの質問です

  • mixiチェック
  • このエントリーをはてなブックマークに追加
いつもお世話になっております。
現在作成しているプログラムで行き詰ってしまい、投稿しました。

現在A,B,C,D,Eという5つのクラスがあり、B~Eはデータをそれぞれ保有しています。
Aのクラスでデータの表示などを行いたいと思っています。
B~Eクラスの中身はほとんど同じで違う点はそれぞれのコンストラクタの引数ぐらいです。下記にそれぞれのコンストラクタの引数を記述しておきます

B(int m),C(int m,int d),D(int m,int d,String s,String e),E(int m,int d,String s,String e,String t)

最終的なデータの要素は「int m,int d,String s,String e,String t」のEクラスに該当し、B~EクラスのデータはArrayListで管理しています。

これらを生成し、ひとまずコンソールに出力したところデータは正常に取得出来ているみたいです。


--------------ここからが質問です------------------------------

Aクラスから「m,d」の値を入力し、Bクラスに入力された値に該当するEクラスのデータを持ってくる、というメソッドを作成してAクラスに結果を渡すということがしたいのですがここで躓いてしまい、先に進めなくなってしまいました。

説明が下手ですいませんが、よろしければお力をお貸しいただければ助かります。以下にBクラスに該当するクラスのソースコードを貼り付けておきますので参考になるかどうかわかりませんが宜しくお願いします。長文&駄文失礼しました。

import java.util.ArrayList; //ArrayListクラスのインポート
import java.util.Calendar; //Calendarクラスのインポート
import java.util.List; //Listクラスのインポート

/**
* 月の値を参照し、日付クラスにその値を渡すクラス
* 一番最初に呼ばれるクラス
* 管理している値は「月」
* @author nobody
*
*/
public class MonthData {
int nDays; //指定された月の日数
int nMonth; //月の値を入れる
String createTime;//インスタンスが生成されたときの時間を入れる
List<DayData>cDayData = new ArrayList<DayData>(); //可変長型配列cDayData、要素の構成はDayDataクラス

/**
* このクラスのインスタンスが生成されたときに何も値が入力されなかったときのコンストラクタ
*/
public MonthData(){
Calendar cal = Calendar.getInstance(); //Calendarクラスのインスタンスを生成する
int month = cal.get(Calendar.MONTH); //int型変数monに今月の値を入れる
setMonth(month); //setMonthにmonの値に1加えた数を渡す
loadDayData(nMonth); //nMonthの値を入れてloadDayDataメソッドを呼び出す
}

/**
* このクラスのインスタンスが生成されたときに何か値が入力されたときのコンストラクタ
* @param month 月の値
*/
public MonthData(int month){
month = month -1; //受け取った月の値を1引いておく
setMonth(month); //インスタンス生成時に入力された値をsetMonthに入れる
loadDayData(nMonth); //nMonthの値を入れてloadDayDataメソッドを呼び出す
}

/**
* 日付クラスに月、日付の値を入力し、インスタンスを生成するメソッド
* @param m
*/
public void loadDayData(int m){
Calendar cal = Calendar.getInstance(); //Calenderクラスのインスタンスを生成
int year = cal.get(Calendar.YEAR); //int型変数yearの宣言(値は今年の西暦)
cal.set(year, m, 1); //日付を今年、メソッドに入力された月、1日に設定しておく
int day = cal.get(Calendar.DAY_OF_MONTH); //int型変数dayを宣言し1日に設定する
cal.add(Calendar.MONTH, 1); //ここで設定した月に1を加え来月の1日に設定しておく
cal.add(Calendar.DATE, -1); //前行で来月に設定されているのでここで1引くことで設定した月の末日に設定される
int lastDay = cal.get(Calendar.DATE); //前2行で設定した月の末日の値をint型配列lastDayに入れておく
setDays(lastDay); //setDaysメソッドにlastDayを入れることでnDaysの値を設定する

for(int i = 1;i <= lastDay;i++){ //月の初めは1日から始まるのでi=1から開始
cDayData.add(new DayData((m+1), day)); //cDayDataの要素を追加し、値を入れる
day++;//dayをインクリメントする
}
}


/*ここが問題のメソッドとなります*/
/**
*
* 何月何日の情報を取得するメソッド
*
* ThemaDataクラスがEクラスに該当
* @param m
* @param d
*/
public List<ThemaData> GetDayCurriculum(int m, int d){
List<ThemaData> thema = new ArrayList<ThemaData>();//ThemaDataクラス型可変配列

return thema;
}

/**
* nMonthに指定された月の値を入力するメソッド
* @param month 月の値
*/
public void setMonth(int month){
this.nMonth = month;//nMonthにmonthの値を入れる
}

/**
* nMonthの値を返すメソッド
* @return nMonth+1
*/
public int getMonth(){
return (nMonth+1);//nMonthの値を返す
}

/**
* nDaysに指定された月の日数の値を入力するメソッド
* @param day 指定された月の日数
*/
public void setDays(int day){
this.nDays = day;//nDaysにdayの値を入れる
}

/**
* nDaysの値を返すメソッド
* @return nDays
*/
public int getDays(){
return nDays;//nDaysの値を返す
}
}

コメント(3)

なんでカタカナが半角?情報系の人間か?
大元になってる、カリキュラムのリストはどこにあるの?
それがないと、ある月/日のカリキュラムのリストは作れないと思うけど。

すいません、自己解決しました;
ちなみにカリキュラムのリストは本文のA~EクラスでいうDでリストを取得し、Eに渡す、という形になっております。
ご迷惑おかけしました

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング