黑马程序员技术交流社区

标题: Student stu = new Student("zhangsan",20,28,29)这样不行吗? [打印本页]

作者: 腹黑生姜    时间: 2015-6-22 08:29
标题: Student stu = new Student("zhangsan",20,28,29)这样不行吗?
info[0]是字符串,info[1]是整数,info[2]是整数,info[3]是整数
Student stu = new Student(info[0],Integer.parseInt(info[1]),
                                                 Integer.parseInt(info[2]) ,
                                                 Integer.parseInt(info[3]));
为什么要加Integer.parseInt?
Student stu = new Student("zhangsan",20,28,29)这样不行吗?
作者: songwenju    时间: 2015-6-22 08:53
info是一个数组吧,数组只能定义一种数据类型。
作者: 杰可可    时间: 2015-6-22 09:11
本帖最后由 杰可可 于 2015-6-22 09:47 编辑

如果你定义的数组元素类型是String,那么在调用数组元素时候,info[1]、info[2]和info[3]里面的值看起来是整数,其实它们真正的数据类型是String型。因此,当你创建对象为其对象属性初始化而调用它们时,必须要把这三个数组元素转换成整形。给楼主举了个简单例子:    public class HeiMaJava {
        String name;
        int height;          //请注意这里是int型
        int weight;         //请注意这里是int型
        public HeiMaJava(String name,int height,int weight){      //构造方法为属性初始化
                this.name=name;
                this.height=height;
                this.weight=weight;
        }
        public void test(){
                System.out.println(name);
                System.out.println(height);
                System.out.println(weight);
        }

        public static void main(String[] args) {
          String[] info=new String[]{"zhansan","34","53"};
          //下面为创建对象并为其属性初始化。要通过Integer.parseInt()
          //把字符串数组info中字符串类型的元素info[1]、info[2]和info[3]转换成整形
          //因为对象属性中的两个是int型
          HeiMaJava hm=new HeiMaJava(info[0],Integer.parseInt(info[1]),Integer.parseInt(info[2]));       //传参进行初始化
          hm.test();
        }
}

作者: 安安安    时间: 2015-6-22 22:32
1楼2楼说的都有道理。。
你没把info的定义写出来,我们回答也不好猜额。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2