java初学者多多指教,这是哪里出了问题呢?

发布时间:2019-07-31 09:14:32

public class Application {

public static void main(String[] args) {

Machine m=new Machine();

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类型的对象,不满足条件,满意请采纳

你goods这个类的构造器不是没有使用默认的无参构造器嘛,你现在的构造器是使用的带一个string的参数,也就是说你在new goods的时候需要new Goods(String)带个参数哈

以上问题属网友观点,不代表本站立场,仅供参考!