プロが教えるわが家の防犯対策術!

Javaのプログラミングで質問があります。

やりたいこととしては
Dataクラスのインスタンス変数(name)を宣言。
Displayクラスはprintメソッドでnameを引数として、nameをコンソールに出力
Settingクラスはnameに"aaa"を設定する。
Sample1ではprintメソッドを呼び出すだけ。

ただ実行してみるとnullのみが出力されてnameに値が渡っていないらしい?です。
何かアドバイスをお願いします。
できれば、明日中(火曜)までに回答をいただけると大変助かります。
よろしくお願いします。

情報を少し伏せるために簡易化させたものが下記のプログラムになります。

public class Sample1 {
 public static void main(String[] args) {
  Setting setting = new Setting();
  setting.show();
 }
}

class Data {
 String name;
}

class Display {
 void print(String name) {
  Data data = new Data();
  System.out.println(data.name);
  }
}

class Setting {
 void show() {
  Data data = new Data();
  Display display = new Display();

  data.name = "aaa";
  display.print(data.name);
 }
}

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。Displayクラスは出力するだけと思っているので、Settingクラスで入力したdata.nameが入ると思っていました。
    Displayクラスにもdata.nameを設定するためにDataクラスから値を設定する必要があるということでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/08/14 13:33

A 回答 (2件)

何を行いたいのか今一つ把握しかねるのですが



class Display {
 void print(String name) {
  System.out.println(name);
 }
}

でしょうか?

素朴な疑問なのですが、なぜわざわざDisplayクラスや、Settingクラスを作るのかが理解できません。
普通はDataクラスに、DisplayメソッドやSettingメソッドを作成するのではないですか?

class Data {
 String name;
 
 void Setting(String s){
  this.name = s;
 }
 void Display(){
  System.out.println(this.name);
 }
}


public class Sample1 {
 public static void main(String[] args) {
  Data data = new Data();
  data.Setting("aaa");
  data.Display();
 }
}
    • good
    • 0
この回答へのお礼

解決することができました。ありがとうございました。
課題として出されたものですので真意までは私にもわかりません・・・

お礼日時:2017/08/14 19:24

System.out.println(data.name);


で使っている data.name はいったいどこで設定しているのでしょうか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!