在我的主程序中(老师给我测试程序,我必须构建与他的主程序一起运行的类)我的代码看起来像这样
插入aPlug = aSwitch.wherePlug();
插件是另一个类
aSwitch是在代码中先前创建的对象(Switch aSwitch = newSwitch();)
whereplug()是 Switch 类中与"关联的方法"使用 Plug 类。
public Plug wherePlug(){
}
每次我尝试编码并返回一个值,我总是得到不兼容的类型错误,无法将插件转换为布尔值。
我的问题是如何与班级联系起作用?一个班级和另一个班级。换句话说,一个类依赖于另一个类。
程序的目的是当交换机被切换时它改变了插头状态的状态。
我在下面添加了代码,任何人都可以告诉我如何修复它。
公共课StudentDriver {
public static void main(String[] args)
{
System.out.println("Testing Switch Methods\n_________________________________");
System.out.println("Making a new Switch with the no constructor having no parameters");
Switch aSwitch= new Switch();
System.out.println("After construction, Switch is on?: " + aSwitch.state());
aSwitch.flip();
System.out.println("After flipping, Switch is on?: " + aSwitch.state());
System.out.println("Making a new Switch with constructor having its parameter set to true");
aSwitch= new Switch(true);
System.out.println("After construction, Switch is on?: " + aSwitch.state());
aSwitch.flip();
System.out.println("After flipping, Switch is on?: " + aSwitch.state());
System.out.println("\nTesting Plug Methods\n_________________________________");
***Plug aPlug = aSwitch.wherePlug();***
System.out.println("Switch is on? " + aSwitch.state() +
" Plug is on? " + aPlug.state());
aSwitch.flip();
System.out.println("Switch is on? " + aSwitch.state() +
" Plug is on? " + aPlug.state());
}
}
公共类Switch {
boolean stateSw;
public Switch() {
stateSw = false;}
public Switch(boolean initalState) {
stateSw = initalState; }
public boolean state() {
return stateSw; }
public void flip() {
if(stateSw == true) {
stateSw = false;}
else if (stateSw == false) {
stateSw = true;} }
***public Plug wherePlug() {
return stateSw; }***
}
public class Plug {
boolean statePlug = false;
public Plug() {
statePlug = false;}
public boolean state() {
return statePlug;}
}
答案 0 :(得分:0)
罪魁祸首是:
public Plug wherePlug() {
return stateSw;
}
您声明wherePlug()
必须返回Plug
,而是返回boolean
(即stateSw
)。
目前还不清楚你在这里要做什么,所以我不能确切地说如何修复它。但是,看看你是否可以更改代码,以便wherePlug()
不返回Plug
(或者你可以完全摆脱wherePlug()
)。这将导致类Switch
对类Plug
没有任何依赖关系;消除依赖关系几乎总是一个好主意。
答案 1 :(得分:0)
在Switch类中创建一个Plug对象,称之为idontcare
public Plug wherePlug()
{
return idontcare;
}
另外,当你返回插头idontcare时,你需要让插头idontcare中的statePlug成为现实。怎么样?好吧,这是你的功课。 =)