为了账号安全,请及时绑定邮箱和手机立即绑定

java!求大神指出问题!

java!求大神指出问题!

芳葬 2016-05-25 23:25:01
我要建立一个宠物商店- =先建立一个animal类package pethome;public class Animal {        private int age;        private String name ;                public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void show(){        System.out.println(getAge()+"\t"+getName());        }} 然后开始写主函数package pethome;import java.util.*;public class Demo { public static void main(String[] args) { Scanner in=new Scanner(System.in); Animal[] animal=new Animal[9]; int k=0; System.out.println("welcome to the pethome! What do you want to do ? "); while(true) { System.out.println("1.add the pet"); System.out.println("2.delete the pet");     for(int i=0;i<9 ;i++){     if(animal[i]!=null){ animal[i].show();  System.out.println("\n"); } }              int a=in.nextInt(); switch(a){ case 1: System.out.println("please inset the name "); String b=in.nextLine(); animal[k].setName(b); System.out.println("please inset the age");      int c=in.nextInt();   animal[k].setAge(c); k++; break; } } }} 这个程序我没做完,想测试一下第一个添加宠物的函数。问题是在这里,这是我的运行界面welcome to the pethome! What do you want to do ? 1.add the pet2.delete the pet1please inset the name Exception in thread "main" java.lang.NullPointerException at pethome.Demo.main(Demo.java:27)说我的animal[]数组没有内存,b和c的值并没有录入到animal【0】的name和age里!求大神解答
查看完整描述

4 回答

?
大水萝卜

TA贡献13条经验 获得超9个赞

Scanner类中nextInt()方法,在遇到第一个分隔符(换行或空格)会结束扫描,这个时候,程序读取的是分隔符之前的数据,并不包括分隔符。
所以,当之后的nextLine()方法扫描时,会第一个扫描到你在nextInt()方法输入时,输入的最后一个分隔符,这个时候nextLine()方法就会结束扫描。所以你后面就无法再输入数据了。

简单的讲,nextInt()方法读取了你输入的“1”,而接下来的nextLine()方法读取了你输入的“1”之后的回车键。而它读到回车键就认为读取已经结束了。

关于这个问题,你可以去网上搜索一下Scanner类的next()与nextLine()的区别

有不足的地方,欢迎指正,共同进步

查看完整回答
4 反对 回复 2016-05-26
  • 芳葬
    芳葬
    不对。兄弟。关键的问题不在这welcome to the pethome! What do you want to do ? 1.add the pet 2.delete the pet 1 please inset the name dog Exception in thread "main" java.lang.NullPointerException at pethome.Demo.main(Demo.java:27) 我改完事还是这样。 我用debug试过。 他一直说我这个animal[0]数组并没有实体化。所以我往里面怎么输入,都不行
  • 芳葬
    芳葬
    用debug 一直是animal[0]=null
?
大水萝卜

TA贡献13条经验 获得超9个赞

所以,还是建议用集合来存储自定义类型的数据

查看完整回答
反对 回复 2016-05-26
  • 4 回答
  • 0 关注
  • 1516 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信