このプロジェクトを正しく機能させるには多くの問題がありましたが、現在、このクラスを正しく機能させることに固執しています。ラジオ クラスから現在の放送局を取得し、それをこのクラスに渡すことを想定しています。問題は、AM と FM のどちらかを選択して現在の放送局を表示しようとしていることです。currentStation のデフォルト値である 0.0 を返し続けるため、equals メソッドを正しく使用しているかどうかはわかりません。
public class AutoRadioSystem
{
private Radio selectedRadio;
private AMRadio radioAM;
private FMRadio radioFM;
private XMRadio radioXM;
public AutoRadioSystem()
{
selectedRadio = new AMRadio();
}
public double getCurrentStation()
{
if (selectedRadio.equals(radioAM))
{
return radioAM.getCurrentStaion();
}
else if (selectedRadio.equals(radioFM))
{
return radioFM.getCurrentStaion();
}
return 0.0;
}
public void selectRadio()
{
//if (selectedRadio.equals(radioAM))
// selectedRadio = radioFM;
}
public boolean equals (Object o)
{
if (o == null)
return false;
if (! (o instanceof AutoRadioSystem))
return false;
AutoRadioSystem other = (AutoRadioSystem) o;
return this.selectedRadio == other.selectedRadio;
}
public static void main (String [] args) {
AutoRadioSystem c = new AutoRadioSystem();
//c.selectRadio();
double b = c.getCurrentStation();
System.out.println(b);
}
}