是否可以有多个具有相同变量名的类型?

时间:2018-12-12 18:20:08

标签: java

第一次使用它来提问,但我希望我能得到答案。

所以我的问题是,我正在编写一个程序,该程序连接到机器人(在本例中为机器人乐高(EV3或NXT))。每个机器人都有自己的启动类别,EV3具有“ xxxEV3”和NXT“ xxxNXT”。因为我并不总是需要物理机器人,所以我创建了一个新类(我称为myRobot),该类具有与其他两个类相同的方法,到目前为止,我使用的是相同的“变量”(相同名称)进行测试,但是每当我更换物理机器人时,我都必须注释这行,这样就不会有任何问题。

示例:

class gui extends.... {
   //private myRobot robot;
   //private xxxEV3 robot;
   private xxxNXT robot;
   public gui() {
      //robot = new myRobot();
      //robot = new xxxEV3();
      robot = new xxxNXT();
   ...
   }
   public void move(int dist) {
       robot.move(dist);
   }
}

如您所见,每次我更改所使用的机器人的“类型”时,我都必须发表评论,以免出现任何错误。

所以现在我想在GUI上添加一个下拉列表,如果我选择myRobot,它将使用与上面相同的名称(机器人)启动myRobot类;或者,如果我选择EV3,它将使用机器人作为名称启动xxxEV3类。的变量...

我希望我已经足够清楚地得到答案,因为我自己却无法理解。

2 个答案:

答案 0 :(得分:0)

否,由于设置类型时的混乱,这是不可能的。但是,实现此目的的一种方法是使用继承,并从基本Robot界面扩展myRobot,EV3,xxxEV3等。

public interface Robot {
    public void move(int distance);
}

public class myRobot implements Robot {
    public void move(int distance) {
        // implementation here
    }
}

答案 1 :(得分:0)

您可以创建一个类似于“ selectedRobot”的变量,并在代码中使用它,并在需要时为其分配所有的机器人。