从引擎 class 获取可变数据在 Java 中不起作用
Getting variable data from an Engine class isn't working in Java
我的项目是组合,其中一辆卡车有一个引擎,可以使用参数调用到控制台:
(注意,engineStatus代表两个参数,决定参数,IE,输入一个或另一个;On/Off或True/False)
PrimaTruck truck = new PrimaTruck(150, OUColour.RED, (engineStatus));
我想不出如何让我的第二个 class 获取 engineStatus() 并将变量正确地插入构造函数以用于上面的控制台命令代码。我的主要错误是找不到 engineStatus 变量。
我也承认我的代码对于引擎布尔表达式是错误的,并且无法找到一个好的替代方法来为 engineStatus() 提供一个 On 或 Off 变量,这取决于 engineStart() 和 engineStop() 是否 On/Off,从而给出一个可以在 PrimaTrucks() 构造函数参数中输入的值。
PrimaTruck.Java
import ou.*;
/**
* Write a description of class PrimaTruck here.
*/
public class PrimaTruck{
// instance variables - replace the example below with your own
private int topSpeed;
private OUColour colour;
public Engine engineStatus;
/**
* Constructor for objects of class PrimaTruck
* Initialise instance variables
*/
public PrimaTruck(int topSpeed, OUColour colour, Engine engineStatus){
this.topSpeed = topSpeed;
this.colour = colour;
this.engineStatus = engineStatus;
}
public void setColour(OUColour aColour){
this.colour = aColour;
}
public OUColour getColour(){
return colour;
}
public int getTopSpeed(){
return topSpeed;
}
}
Engine.Java
/**
* Write a description of class Engine here.
*/
public class Engine{
// instance variables
public Boolean engineStart;
public Boolean engineStop;
public String engineStatus;
private Boolean status;
/**
* Constructor for objects of class Engine
*/
public Engine(String engineStatus){
// initialise instance variables
this.engineStart = engineStart;
this.engineStop = engineStop;
this.engineStatus = engineStatus;
this.status = status;
}
public Boolean status(){
if (engineStart == true){
status = engineStart;
}else if (engineStop = true){;
status = engineStop;
}
return this.status;
}
public Boolean getEngineStart(){
return engineStart;
}
public void setEngineStart(){
this.engineStop = false;
this.engineStart = true;
}
public Boolean getEngineStop(){
return engineStop;
}
public void setEngineStop(){
this.engineStart = false;
this.engineStop = true;
}
public void setEngineStatus(String aStatus){
this.engineStatus = aStatus;
}
public String getEngineStatus(){
return engineStatus;
}
}
任何关于编码的反馈或关于如何实施的指示都将不胜感激。
引擎中的很多代码 class 似乎是多余的。我正在对代码进行大量更改。看看是不是你想要的
public class Engine{
// instance variables
public boolean engineStart;
public boolean engineStop;
public boolean engineStatus;
/**
* Constructor for objects of class Engine
*@param1 - true if engine is started
*@param2 - true if engine is stopped
*@param3 - true if engine is on, else false
*/
public Engine(boolean engineStart, boolean engineStop, boolean engineStatus){
// initialise instance variables
this.engineStart = engineStart;
this.engineStop = engineStop;
this.engineStatus = engineStatus;
}
public boolean getEngineStart(){
return engineStart;
}
public void setEngineStart(){
this.engineStop = false;
this.engineStart = true;
setEngineStatus(true);
}
public boolean getEngineStop(){
return engineStop;
}
public void setEngineStop(){
this.engineStart = false;
this.engineStop = true;
setEngineStatus(false);
}
public void setEngineStatus(boolean engineStatus){
this.engineStatus = engineStatus;
}
public String getEngineStatus(){
return engineStatus;
}
}
此引擎 class 只有 3 个布尔变量:engineStart、engineStop、engineStatus。如果 engineStart = true,则 engineStatus = true。否则 engineStatus = false.
我希望这是您要实现的功能。现在你需要在创建 Engine 对象时传入 3 个布尔变量。
现在在卡车中 class 进行以下更改:
public class PrimaTruck{
// instance variables - replace the example below with your own
private int topSpeed;
private OUColour colour;
public boolean engineStatus;
/**
* Constructor for objects of class PrimaTruck
* Initialise instance variables
*/
public PrimaTruck(int topSpeed, OUColour colour, Engine engine){
this.topSpeed = topSpeed;
this.colour = colour;
this.engineStatus = engine.getEngineStatus();
}
如果这不是您想要的,请随时在评论中提问。
我的项目是组合,其中一辆卡车有一个引擎,可以使用参数调用到控制台:
(注意,engineStatus代表两个参数,决定参数,IE,输入一个或另一个;On/Off或True/False)
PrimaTruck truck = new PrimaTruck(150, OUColour.RED, (engineStatus));
我想不出如何让我的第二个 class 获取 engineStatus() 并将变量正确地插入构造函数以用于上面的控制台命令代码。我的主要错误是找不到 engineStatus 变量。
我也承认我的代码对于引擎布尔表达式是错误的,并且无法找到一个好的替代方法来为 engineStatus() 提供一个 On 或 Off 变量,这取决于 engineStart() 和 engineStop() 是否 On/Off,从而给出一个可以在 PrimaTrucks() 构造函数参数中输入的值。
PrimaTruck.Java
import ou.*;
/**
* Write a description of class PrimaTruck here.
*/
public class PrimaTruck{
// instance variables - replace the example below with your own
private int topSpeed;
private OUColour colour;
public Engine engineStatus;
/**
* Constructor for objects of class PrimaTruck
* Initialise instance variables
*/
public PrimaTruck(int topSpeed, OUColour colour, Engine engineStatus){
this.topSpeed = topSpeed;
this.colour = colour;
this.engineStatus = engineStatus;
}
public void setColour(OUColour aColour){
this.colour = aColour;
}
public OUColour getColour(){
return colour;
}
public int getTopSpeed(){
return topSpeed;
}
}
Engine.Java
/**
* Write a description of class Engine here.
*/
public class Engine{
// instance variables
public Boolean engineStart;
public Boolean engineStop;
public String engineStatus;
private Boolean status;
/**
* Constructor for objects of class Engine
*/
public Engine(String engineStatus){
// initialise instance variables
this.engineStart = engineStart;
this.engineStop = engineStop;
this.engineStatus = engineStatus;
this.status = status;
}
public Boolean status(){
if (engineStart == true){
status = engineStart;
}else if (engineStop = true){;
status = engineStop;
}
return this.status;
}
public Boolean getEngineStart(){
return engineStart;
}
public void setEngineStart(){
this.engineStop = false;
this.engineStart = true;
}
public Boolean getEngineStop(){
return engineStop;
}
public void setEngineStop(){
this.engineStart = false;
this.engineStop = true;
}
public void setEngineStatus(String aStatus){
this.engineStatus = aStatus;
}
public String getEngineStatus(){
return engineStatus;
}
}
任何关于编码的反馈或关于如何实施的指示都将不胜感激。
引擎中的很多代码 class 似乎是多余的。我正在对代码进行大量更改。看看是不是你想要的
public class Engine{
// instance variables
public boolean engineStart;
public boolean engineStop;
public boolean engineStatus;
/**
* Constructor for objects of class Engine
*@param1 - true if engine is started
*@param2 - true if engine is stopped
*@param3 - true if engine is on, else false
*/
public Engine(boolean engineStart, boolean engineStop, boolean engineStatus){
// initialise instance variables
this.engineStart = engineStart;
this.engineStop = engineStop;
this.engineStatus = engineStatus;
}
public boolean getEngineStart(){
return engineStart;
}
public void setEngineStart(){
this.engineStop = false;
this.engineStart = true;
setEngineStatus(true);
}
public boolean getEngineStop(){
return engineStop;
}
public void setEngineStop(){
this.engineStart = false;
this.engineStop = true;
setEngineStatus(false);
}
public void setEngineStatus(boolean engineStatus){
this.engineStatus = engineStatus;
}
public String getEngineStatus(){
return engineStatus;
}
}
此引擎 class 只有 3 个布尔变量:engineStart、engineStop、engineStatus。如果 engineStart = true,则 engineStatus = true。否则 engineStatus = false.
我希望这是您要实现的功能。现在你需要在创建 Engine 对象时传入 3 个布尔变量。
现在在卡车中 class 进行以下更改:
public class PrimaTruck{
// instance variables - replace the example below with your own
private int topSpeed;
private OUColour colour;
public boolean engineStatus;
/**
* Constructor for objects of class PrimaTruck
* Initialise instance variables
*/
public PrimaTruck(int topSpeed, OUColour colour, Engine engine){
this.topSpeed = topSpeed;
this.colour = colour;
this.engineStatus = engine.getEngineStatus();
}
如果这不是您想要的,请随时在评论中提问。