V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kirara
V2EX  ›  程序员

一个简单的 Java 程序,新手求解答

  •  
  •   kirara · 2019-09-10 22:55:36 +08:00 · 2504 次点击
    这是一个创建于 1930 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问哪里出错了,该怎么修改,以及建议的地方。。。不胜感激

    import java.util.Scanner;
    class Store{
    	private String name;
    	private double size;
    	private double price;
    	private String pz;
    	private int have;
    	public Store(){
    	}
    	public void setName(String name)
    	{
    		this.name = name;
    	}
    	public void setSize(double size)
    	{
    		this.size = size;
    	}
    	public void setPrice(double price)
    	{
    		this.price = price;
    	}
    	public void setPz(String pz)
    	{
    		this.pz = pz;
    	}
    	public void setHave(int have)
    	{
    		this.have = have;
    	}
    	public String getName()
    	{
    		return name;
    	}
    	public double getSize()
    	{
    		return size;
    	}
    	public double getPrice()
    	{
    		return price;
    	}
    	public String getPz()
    	{
    		return pz;
    	}
    	public int getHave()
    	{
    		return have;
    	}
    }
    public class test {
    	public static void main(String[] args){
    		Store[] store;
    		store = creatStore();
    		printStore(store);
    	}
    	public static Store[] creatStore(){
    		Store[] store = new Store[3];
    		Scanner input = new Scanner(System.in);
    		for(int i=0; i<3; i++)
    		{
    			String name;
    			double size;
    			double price;
    			String pz;
    			int have;
    			name = input.nextLine();
    			size = input.nextDouble();
    			price = input.nextInt();
    			pz = input.nextLine();
    			have = input.nextInt();
    			store[i].setName(name);
    			store[i].setSize(size);
    			store[i].setPrice(price);
    			store[i].setPz(pz);
    			store[i].setHave(have);
    		}
    		return store;
    	}
    	public static void printStore(Store[] store){
    		System.out.println("品牌型号\t 尺寸\t 价格\t 配置\t 库存");
    		for(int i=0; i<3; i++)
    		{
    			System.out.println(store[i].getName()+"\t"+store[i].getSize()+"\t"+store[i].getPrice()+"\t"+store[i].getPz()+"\t"+store[i].getHave());
    		}
    	}
    }
    
    11 条回复    2019-09-12 04:21:37 +08:00
    EscYezi
        1
    EscYezi  
       2019-09-11 00:46:03 +08:00 via iPhone
    不要在 for 循环里面声明引用,放在 for 外面比较好。
    还有出现的问题是什么?数据不对?编译错误?运行时错误?错误提示是什么?
    zjp
        2
    zjp  
       2019-09-11 01:14:27 +08:00 via Android   ❤️ 3
    没有期望输出也没有实际运行结果,你是希望别人人肉编译或者打开 IDE 执行一遍,再推测?
    看一遍《提问的智慧》比刷几道题有用多了
    Hattle
        3
    Hattle  
       2019-09-11 01:14:54 +08:00 via Android
    for 循环里的 double 类型的 price 你用的是 nextInt,如果输入带小数点的数字肯定是会报错的吧。最后输出的时候可以改 foreach,那样写起来和看起来都更舒服点。
    ixx
        4
    ixx  
       2019-09-11 10:10:16 +08:00
    是报空指针了吧 store[i] 你就这么直接用了? 啥时候初始化的?
    guyeu
        5
    guyeu  
       2019-09-11 10:23:20 +08:00
    @EscYezi #1 在什么地方声明引用取决于这个变量的作用域,应该相信现代 jvm 的优化能力。
    tuboshuv1
        6
    tuboshuv1  
       2019-09-11 10:49:10 +08:00
    没别的意思,这种自己看就能看出来的问题就别问了。
    老出现这种问题,等你水平高了,你想问的问题就没人解答了。
    ErrorMan
        7
    ErrorMan  
       2019-09-11 13:20:02 +08:00 via Android
    @guyeu 教初学者的话还是直接让对方改掉这个习惯好,jvm 这么写也许 OK,但是这个写法本身还是不好的,换个语言可能就得炸
    luoyezhishui
        8
    luoyezhishui  
       2019-09-11 14:06:05 +08:00
    你至少要告诉我们,你这个是想要干什么吧。
    输入是什么,期望输出是什么,结果是什么。
    你就丢代码上来,大家也很为难啊。
    leafin
        9
    leafin  
       2019-09-11 15:03:09 +08:00
    可能是课堂作业吧,懒的看
    zjp
        10
    zjp  
       2019-09-11 18:40:16 +08:00 via Android
    @guyeu 这只适合代码习惯原本就良好,知道 jvm 会做什么优化的人
    xaplux
        11
    xaplux  
       2019-09-12 04:21:37 +08:00
    这代码让你写的稀碎。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3107 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:39 · PVG 21:39 · LAX 05:39 · JFK 08:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.