java初学者多多指教,这是哪里出了问题呢?
public class Application {
public static void main(String[] args) {
Goods goods ;
goods = new Goods();
String[] str={"炸药","苹果","刀子","iphone x","AK47","SWITCH","滑板"};
for(int i=0;i<str.length;i++) {
goods.setName(str[i]);
if(goods.getName().equals("炸药")||goods.getName().equals("刀子")||goods.getName().equals("AK47")) {
goods.setisDanger(true);
}
else {
goods.setisDanger(false);
}
try {
m.checkBag(goods);
}
catch(DangerException e){
e.toShow();
}
}
}
}
class DangerException extends Exception{
String message;
DangerException(String s) {
message=s+"属于危险品!";
}
DangerException() {
message="属于危险品!";
}
void toShow() {
System.out.println(message);
}
}
class Goods {
boolean isDanger;
String name;
Goods(String s) {
name=s;
}
void setisDanger(boolean b) {
isDanger = b;
}
boolean isDanger() {
return isDanger;
}
String getName() {
return name;
}
}
class Machine {
void checkBag(Goods goods) throws DangerException{
if(goods.isDanger()) {
throw new DangerException(goods.getName());
}
else {
System.out.println(goods.getName()+"不是危险品");
}
}
}
程序有两个基本的错
1。goods = new Goods();
你的Goods不存在没有参数的构造,你的构造是
Goods(String s) {
name = s;
}
所以,最简单的,改
goods = new Goods("");
2。goods.setName(str[i]);
你的goods没有setName这个方法,所以要在Goods类中加
void setName(String s) {
name=s;
}
结果
炸药属于危险品!
苹果不是危险品
刀子属于危险品!
iphone x不是危险品
AK47属于危险品!
SWITCH不是危险品
滑板不是危险品
没有新建string类型的对象,不满足条件,满意请采纳