【无标题】面向对象练习1

package day09Text;
/*对象数组题目:
定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int)。 
创建20个学生对象,学号为1到20 ,年级和成绩都由随机数确定。
问题一:打印出3年级(state值为3)的学生信息。
问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
提示:
1) 生成随机数:Math.random(),返回值类型double; 
2) 四舍五入取整:Math.round(double d),返回值类型long。
练习3
5.声明一个日期类型MyDate:有属性:年year,月month,日day。创建2个日期
对象,分别赋值为:你的出生日期,你对象的出生日期,并显示信息。*/
public class StudentText1 {
    public static void main(String[] args) {
        Student1[] s1 = new Student1[20];
        
        for (int i = 0; i < s1.length; i++) {
            
            s1[i] = new Student1();//s1[]new对象,因为20个都要new成新对象,所以使用循环
            //学号    
            s1[i].number = (i + 1);
            //年级[1;6]
            s1[i].state = (int)(Math.random() * 6 + 1 );
            //分数[0;100]
            s1[i].score = (int)(Math.random() * 100 + 1);
            
        }
        
        //遍历
        for (int i = 0; i < s1.length; i++) {
            System.out.println("学号:" +  s1[i].number + "年级" + s1[i].state + "分数" + s1[i].score);
        }
        System.out.println();
                            
        //问题一:打印出3年级(state值为3)的学生信息。
        for (int i = 0; i < s1.length; i++) {
            if (s1[i].state == 3) {
                System.out.println("学号:" +  s1[i].number + "年级" + s1[i].state + "分数" + s1[i].score);
            }
        }
        System.out.println();
        
        //问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
        for (int i = 0; i < s1.length - 1; i++) {
            for (int j = 0; j < s1.length - i -1; j++) {
                if (s1[j].score > s1[j + 1].score) {
                    Student1 num = s1[j];
                    s1[j] = s1[j + 1];
                    s1[j + 1] = num;
                }    
            }
        }        
        
        //遍历
        /*for (int i = 0; i < s1.length; i++) {
            System.out.println("学号:" +  s1[i].number + "年级" + s1[i].state + "分数" + s1[i].score);
        }
        System.out.println();*/
        //使用方法遍历
        for (int i = 0; i < s1.length; i++) {
        /*    String news1= s1[i].info();//当存在return返回值时,一定要创建的类要与方法的类一致
            System.out.println(news1);*/
            System.out.println(s1[i].info());//或者使用嵌套                        
        }
        
        
    }
}

class Student1 {
    
    int number;//学号
    int state;//年级
    int score;//成绩
    
    //显示学生信息的方法
    public String info(){
        return "学号:" + number + ",年级:" + state + ",成绩:" + score;
    }
        
}

下面是将一些过程封装到方法中****************************************


public class StudentText2 {
    public static void main(String[] args) {
        Student2[] s1 = new Student2[20];
        
        for (int i = 0; i < s1.length; i++) {
            
            s1[i] = new Student2();//s1[]new对象,因为20个都要new成新对象,所以使用循环
            //学号    
            s1[i].number = (i + 1);
            //年级[1;6]
            s1[i].state = (int)(Math.random() * 6 + 1 );
            //分数[0;100]
            s1[i].score = (int)(Math.random() * 100 + 1);
            
        }
        
        Student2 s2 = new Student2();
        
        //遍历用方法
        s2.info(s1);
                        
        //问题一:打印出3年级(state值为3)的学生信息。使用方法 
        System.out.println();
        s2.information(s1, 3);
        
        //问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
        for (int i = 0; i < s1.length - 1; i++) {
            for (int j = 0; j < s1.length - i -1; j++) {
                if (s1[j].score > s1[j + 1].score) {
                    Student2 num = s1[j];
                    s1[j] = s1[j + 1];
                    s1[j + 1] = num;
                }    
            }
        }        
        
        //遍历
        /*for (int i = 0; i < s1.length; i++) {
            System.out.println("学号:" +  s1[i].number + "年级" + s1[i].state + "分数" + s1[i].score);
        }
        System.out.println();*/
        //使用方法遍历

        s2.info(s1);
        
    }
}

class Student2 {
    
    int number;//学号
    int state;//年级
    int score;//成绩
    
    //显示学生信息的方法
    public void info(Student2[] s1){
        for (int i = 0; i < s1.length; i++) {
            System.out.println("学号:" +  s1[i].number + "年级" + s1[i].state + "分数" + s1[i].score);    
            
        }
}
    
    //打印出3年级(state值为3)的学生信息。
    public void information(Student2[] s1,int state){
        for (int i = 0; i < s1.length; i++) {
            if (s1[i].state == state) {
            System.out.println(s1[i].a1());    //方法中套方法
            }
        }
        System.out.println();
    }


    //显示学生信息的方法
    public String a1(){
        return "学号:" +  number + "年级" + state + "分数" + score;
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值