编译通过,运行出错。输入有问题


 import java.util.Scanner;
 class Goods{
  private String name;
   private double price;
   public void setname(){
     String name;
     Scanner in = new Scanner(System.in);
     name = in.nextLine();
    this.name = name;
    in.close();
   }
   public void setprice( ){
       double price;
       Scanner in = new Scanner(System.in);
       price = in.nextDouble();
       this.price = price;
       in.close();
   }
   public String getname(){
       return this.name;
   }
   public double getprice(){
       return this.price;
   }
 
}
class Store{
private double harvest;
    public void sell(Goods a1){
    System.out.println("请输入要卖的商品:"+a1.getname());
    System.out.println("正在交易中请稍后");
    this.harvest = a1.getprice();
    System.out.println("微信收款"+a1.getprice());
    }
     public void setPriceAndName(Goods a1){
        System.out.println("please set name and price of the goods");
        a1.setname();
        a1.setprice();
          }
    public double getharvest(){
        return this.harvest;
    }
}
public class Tester{
    public static void main(String[] args){
      System.out.println("please start");
      Store yang = new Store();
      Goods a1 = new Goods();
      yang.setPriceAndName(a1);
      yang.sell(a1);
      System.out.println("请输出获得的收入:"+yang.getharvest());
    }

}

Scanner in = new Scanner(System.in);
输入代码不要放在函数里,放到main函数中,将输入值作为参数传递给set函数

输入有问题,那你能提供一下你怎么输入的么?
输入的不一样,结果也不一样。