###前提・実現したいこと
JAVAでCSVファイルのデータを性別ごとに違う出力をするという課題をやっています。
目標とする結果画面は、以下の通りです。
[No.1]♀
名前:山田花子
年齢:20
性別:女
[NO.2] ♂
名前:ドナルド・トランプ
年齢:60
性別:男
[NO.3]♀
名前:広瀬すず
年齢:19
性別:女
###発生している問題・エラーメッセージ
Mainクラスの
System.out.println("[NO." + num + "]");
m.m_print(man_data);
の部分で
[NO.1]
♀
名前:山田花子
年齢:20
性別:女
となってしまうのを、どういう風に書いたら
[No.1]♀
名前:山田花子
年齢:20
性別:女
になるかが思いつかず、知恵をかしていただきたいです。
###該当のソースコード
JAVA
//スーパークラス
public class Output {
public void print(String[] data) {
System.out.println("名前:" + data[0]);
System.out.println("年齢:" + data[1]);
System.out.println("性別:" + data[2]);
}
}
//サブクラス(Outputクラスを継承)
public class Man extends Output {
public void m_print(String[] man_data) {
System.out.println("♂");
super(man_data);
}
}
//サブクラス(Outputクラスを継承)
public class Woman extends Output {
public void w_print(String[] woman_data) {
System.out.println("♀");
super(woman_data);
}
}
//FileReaderクラスでファイルからデータを取得
public class FileReader {
public List<String> input() {
//ArrayListの配列にファイルデータをすべて格納(処理省略)
}
}
public class Main {
public static void main (String[] args) {
//インスタンス化
FileReader f = new FileReader();
Man m = new Man();
Woman w = new Woman();
/*
配列データ(要素数:3)の性別要素[2]を条件分岐にかけ、男データか女データに分ける
*/
//NO.用カウンタ変数(if文を通った回数=配列データの数)
int num = 1;
if (array[2].epual("男")) {
String[] man_data = array;
System.out.print("[NO." + num + "]");
m.m_print(man_data);
num++;
}
else {
String[] woman_data = array;
System.out.print("[NO." + num + "]");
w.m_print(woman_data);
num++;
}
}
}
###試したこと
・課題の要件が継承を使わないといけず、staticは使えない。
・サブクラスでSystem.out.print("[NO." + num + "]" + "♀");を出力
WomanclassとManclassでnumの共有の仕方がわからなかった(numの値の上書き)
###補足情報(言語/FW/ツール等のバージョンなど)
回答2件
あなたの回答
tips
プレビュー