面向对象_上
2022/3/20 23:27:41
本文主要是介绍面向对象_上,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1/定义类Student,包含三个属性:学号number(int),年级state(int),成绩score(int)。 创建20个学生对象,学号为1到20,年级和成绩都由随机数确定。
问题一:打印出3年级(state值为3)的学生信息。
问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息
1 public class StudentsTest { 2 public static void main(String[] args) { 3 //第二大部 创建类的对象 4 5 //创建20个学生对象,太多 使用数组 6 //Student s1 = new Student(); 7 //Student s2 = new Student(); 8 //...................... 9 10 //使用数组 创建20个元素,来容纳20个student 11 Student[] stus = new Student[20];//使用数组对象 声明数组和使用动态初始化,说明有20个student 12 for(int i = 0;i < stus.length;i++)//使用for循环,遍历整个数组元素 13 { 14 //创建对象,stus[i]由元素变成类的对象 15 stus[i] = new Student();//等同于Student s1 = new Student();(创建对象) stus[i] 等同于 s1 16 17 18 //第三大部: 调用属性 19 stus[i].number = i + 1;//编排学号 1-20 20 stus[i].state = (int)(Math.random()*(6 - 1 + 1) + 1);//定义年级为[1,6] 此时采用的是随机数截断 Math.random()*(b - a + 1) + a 21 stus[i].score = (int)(Math.random()*(100 - 0 + 1) + 0);//定义成绩为[0,100] 此时采用的是随机数截断 22 } 23 //遍历学生信息 24 for(int i = 0;i < stus.length;i++) 25 { 26 System.out.println(stus[i].info()); 27 } 28 System.out.println("******************************"); 29 //打印出3年级(state值为3)的学生信息。 30 for(int i = 0;i < stus.length;i++) 31 { 32 if(stus[i].state == 3) 33 { 34 System.out.println(stus[i].info()); 35 } 36 } 37 //使用冒泡排序按学生成绩排序,并遍历所有学生信息,排序角标都是从0开始标注第一个元素 38 for(int i = 0;i < stus.length - 1;i++)//若数组有7个,只需要比较6次,也就是需要遍历6轮,即角标为0-5 39 { 40 for(int j = 0;j < stus.length - 1 - i;j++)//例如遍历第0轮,需要比较6个元素,即角标为0-5,遍历1轮,需要比较5个元素,即角标为0-4 41 { 42 if(stus[j].score >= stus[j + 1].score)//比较成绩 43 { 44 //此时交换学生成绩排名,不是交换成绩本身 45 Student temp = stus[j];//temp:临时 46 stus[j] = stus[j + 1]; 47 stus[j + 1] = temp; 48 } 49 } 50 } 51 System.out.println("******************************"); 52 53 //遍历所有学生信息 54 for(int i = 0;i < stus.length;i++) 55 { 56 System.out.println(stus[i].info()); 57 } 58 59 } 60 } 61 //第一大部:创建类,设计类的成员 62 class Student 63 { 64 //设计属性 65 int number; 66 int state; 67 int score; 68 //设计方法 69 public String info() 70 { 71 return("学号:" + number + "\t年级:" + state + "\t成绩:" + score); 72 } 73 }
2/对上一题的优化
1 public class StudentTest2 2 { 3 public static void main(String[] args) 4 { 5 //第二大部 创建Student2类的对象 6 7 //使用数组 创建20个元素,来容纳20个student 8 Student2[] stus = new Student2[20]; 9 for(int i = 0;i < stus.length;i++)//使用for循环,遍历整个数组元素 10 { 11 //创建对象,stus[i]由元素变成类的对象 12 stus[i] = new Student2(); 13 //第三大部: 调用属性 14 stus[i].number = i + 1;//编排学号 1-20 15 stus[i].state = (int)(Math.random()*(6 - 1 + 1) + 1);//定义年级为[1,6] 此时采用的是随机数截断 Math.random()*(b - a + 1) + a 16 stus[i].score = (int)(Math.random()*(100 - 0 + 1) + 0);//定义成绩为[0,100] 此时采用的是随机数截断 17 } 18 19 //创建StudentTest2类的对象 20 StudentTest2 test = new StudentTest2(); 21 //遍历学生信息 22 test.print(stus); 23 System.out.println("*********************"); 24 //state == 3 25 test.seacherState(stus, 3); 26 System.out.println("*********************"); 27 //冒泡排序 并打印学生信息 28 test.sort(stus); 29 test.print(stus); 30 } 31 //设计方法,将功能封装到方法中 32 //注意不能写在上一个public里面 33 //遍历学生信息 34 public void print(Student2[] stus) 35 { 36 for(int i = 0;i < stus.length;i++) 37 { 38 System.out.println(stus[i].info()); 39 } 40 } 41 //查找Student数组中指定年级的学生信息 42 public void seacherState(Student2[] stus,int state) 43 { 44 for(int i = 0;i < stus.length;i++) 45 { 46 if(stus[i].state == state) 47 { 48 System.out.println(stus[i].info()); 49 } 50 } 51 } 52 //排序成绩 53 public void sort(Student2[] stus) 54 { 55 for(int i = 0;i < stus.length - 1;i++) 56 { 57 for(int j = 0;j < stus.length - 1 - i;j++) 58 { 59 if(stus[j].score >= stus[j + 1].score) 60 { 61 Student2 temp = stus[j]; 62 stus[j] = stus[j + 1]; 63 stus[j + 1] = temp; 64 } 65 } 66 } 67 } 68 } 69 //第一大部:创建类,设计类的成员 70 class Student2 71 { 72 //设计属性 73 int number; 74 int state; 75 int score; 76 //设计方法 77 public String info() 78 { 79 return("学号:" + number + "\t年级:" + state + "\t成绩:" + score); 80 } 81 }
这篇关于面向对象_上的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南