Java 如何在do-while循环中重复实例化对象?
我正在用Java编写一个战舰克隆。我有一个标准的Ship类,它有一个从用户那里获取输入的构造函数 ship有一个布尔字段valid,它是在构建ship对象后计算的 我想继续实例化Ship,直到它有效为止,但是编译器抛出了一个“找不到符号(巡逻艇)”。为什么?我该怎么做Java 如何在do-while循环中重复实例化对象?,java,instantiation,Java,Instantiation,我正在用Java编写一个战舰克隆。我有一个标准的Ship类,它有一个从用户那里获取输入的构造函数 ship有一个布尔字段valid,它是在构建ship对象后计算的 我想继续实例化Ship,直到它有效为止,但是编译器抛出了一个“找不到符号(巡逻艇)”。为什么?我该怎么做 do { Ship patrolBoat = new Ship(2, "Patrol Boat", promptInputForEnds("Patrol Boat", 2, kboard)); } while (patro
do {
Ship patrolBoat = new Ship(2, "Patrol Boat", promptInputForEnds("Patrol Boat", 2, kboard));
} while (patrolBoat.valid);
您正在循环中声明
patrolBoat
变量,因此它不在while
语句的范围内
在循环前声明船舶巡逻艇
:
Ship patrolBoat;
do {
patrolBoat = ...
} while (patrolBoat.valid);
您正在循环中声明
patrolBoat
变量,因此它不在while
语句的范围内
在循环前声明船舶巡逻艇
:
Ship patrolBoat;
do {
patrolBoat = ...
} while (patrolBoat.valid);
这是一个范围问题吗?不是问题,但您的意思是(!patrolBoat.valid)?看起来您试图在此处创建无效的实例。通常认为,具有创建无效对象的能力不是好的设计。最好使用一个工厂方法来验证其参数,并仅在参数有效时创建对象。这是范围问题吗?不是问题,而是(!patrolBoat.valid)?看起来您试图在此处创建无效的实例。通常认为,具有创建无效对象的能力不是好的设计。最好使用工厂方法验证其参数,并且仅在参数有效时创建对象。