老师问一下问什么toString方法没有被调用

老师问一下问什么toString方法没有被调用

public class Weather {

    private int wd;

    private int sd;

    boolean flag=false;

public int getWd() {

return wd;

}

public void setWd(int wd) {

this.wd = wd;

}

public int getSd() {

return sd;

}

public void setSd(int sd) {

this.sd = sd;

}

    public synchronized void generate() {

    if(flag) {

    try {

wait();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

    }

    setWd((int)(Math.random()*40));

    setSd((int)(Math.random()*100));

    System.out.println("生成读取天气温度"+wd+"湿度"+sd);

    flag=true;

    notifyAll();

   

    }

    public synchronized void read() {

    if(!flag) {

    try {

wait();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

    }

   

   

    getWd();

    getSd();

    System.out.println("读取天气的温度"+wd+"湿度"+sd);

    flag=false;

    notifyAll();

   

    }

@Override

public String toString() {

return "aacaca";

}




public class Sweather implements Runnable {

Weather weather;

     public Sweather(Weather weather) {

    this.weather=weather;

     }

@Override

public void run() {

// TODO Auto-generated method stub

for(int i=0;i<100;i++) {

weather.generate();

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}


}



public class Rweather implements Runnable{

  Weather weather;

  public Rweather(Weather weather) {

  this.weather=weather;

  }

@Override

public void run() {

for(int n=0;n<100;n++) {

weather.read();

try {

Thread.sleep(100);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}


}

public class WeatherTest {


public static void main(String[] args) {

Weather ad=new Weather();

Sweather a=new Sweather(ad);

Rweather b=new Rweather(ad);

Thread a1=new Thread(a);

Thread a2=new Thread(b);

a1.start();

a2.start();


}


}

这是我写的,不清楚为什么toString方法没有被调用


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,在实例化类时,是会自动调用toString方法,但同学并没有进行输出,所以没有内容进行输出。如下图所示:

http://img1.sycdn.imooc.com//climg/5f117f110972782d05110181.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕小尤 2020-07-17 18:28:54

同学你好,1. 已完成练习,棒棒哒!继续加油!
2.在Weather类中同学未调用toString()方法,建议同学进行调用,如下所示:

http://img1.sycdn.imooc.com//climg/5f117d4e092eca0506310415.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 qq_ibertine_0 #1
    我记得不是自动调用toString方法吗
    2020-07-17 18:30:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师