解决方案 »

  1.   

    package com.atguifu.java;
    这个包里面是什么?
      

  2.   

    空指针了;可以添加一句;stu [i] = new Student();
    并且你的Math.random()获取的是0到1之间的小数,所以结果永远是0,可以*10;
    public class Student
    {
    private int number;
    private int state;
    private int score; public static void main(String[] args)
    {
    Student[] stu = new Student[20];
    for (int i = 0; i < stu.length; i++)
    {
    stu [i] = new Student();
    stu[i].number = i + 1;
    stu[i].state = (int) (Math.random()*10);
    stu[i].score = (int) Math.random();
    } for (int i = 0; i < stu.length; i++)
    {
    if (stu[i].state == 3)
    {
    System.out.println(stu[i].number + " " + stu[i].state + " "
    + stu[i].score);
    }
    }
    }
    }
      

  3.   


    /*题目要求:
     * 定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int)。
     * 创建20个学生对象,学号为1到20,年级和成绩都由随机数确定,打印出3年级(state值为3)的学生信息。
    提示:生成随机数:Math.randon(),返回值类型double;  
     四舍五入取整:Math.round(),返回值类型long。
    */
    import java.util.ArrayList;
    import java.util.List;
    public class Student {
    private int number;
    private int state;
    private int score;

    public Student() { }

    public Student(int number, int state, int score) {
    this.number = number;
    this.state = state;
    this.score = score;
    } public int getNumber() {
    return number;
    } public void setNumber(int number) {
    this.number = number;
    } public int getState() {
    return state;
    } public void setState(int state) {
    this.state = state;
    } public int getScore() {
    return score;
    } public void setScore(int score) {
    this.score = score;
    } public static void main(String[] args){
    List<Student> list = new ArrayList<Student>();

    for(int i=0; i<20; i++){
    Student student = new Student();
    student.setNumber(i+1);
    int state = (int)(Math.random()*10);
    System.out.println("年级="+state);
    student.setState(state);
    student.setScore((int)(Math.random()*10));
    list.add(student);
    }
    for (Student student : list) {
    if(student.getState()==3){
    System.out.println("学号:"+student.getNumber()+" 年级:"+student.getState()+" 分数"+student.getScore());
    }else{
    System.out.println("不好意思,不存在3年级的学生!");
    }
    }
    }
    }
      

  4.   

    不好意思,该包是用IDE时随意写上去的,可以不考虑这行代码!
      

  5.   

    这个问题牵扯到数组,Student[] stu = new Student[20]只是给数组开辟了20个student大小的空间,并没有初始化,还有就是Math.random是1之内的向下面就可以了(在你的代码基础上改动)
    for (int i = 0; i < stu.length; i++) {
    stu[i] = new Student();
    stu[i].number = i + 1;
    stu[i].state = (int) (Math.random() * 10);
    stu[i].score = (int) (Math.random() * 10);
    }
      

  6.   

    很明显异常是空引用。你光声明数组了,但是这个时候数组里面还没有放对象进去,肯定就空引用了。
    你在20行之前加一句:Student s = new Student();就可以了