本帖最后由 林LLL 于 2018-3-25 00:09 编辑
二维数组
二维数组:其实就是元素为一维数组的数组
定义格式: A : 数据类型[ ] [ ] 数组名; ( )推荐方式 B : 数据类型 数组名 [ ] [ ] ; C : 数据类型[ ] 数组名 [ ]; 初始化 : A : 动态初始化 数据类型[ ] [ ] 数组名 = new 数据类型[m ] [ n ]; m表示的是二维数组中一维数组的个数 n 表示的是一维数组中的元素个数 B : 静态初始化 数据类型[ ] [ ] 数组名 = new 数据类型[ ] [ ] {元素. . .} , {元素. . .} , {元素. . .} , 简化格式 : 数据类型[ ] [ ] 数组名 = { {元素. . .} , {元素. . .} , {元素. . .} , . . . } ;
二维数组名配合索引可以获取到每一个一维数组。 每一个一维数组配合索引名可以获取到数组中的元素。
重难点题
1.基础班考试要进行分组,键盘录入该班级总共多少组?以及每组的学生数量? 2.根据录入的组数及每组学员的数量创建二维数组 3.利用随机数产生0-100的成绩(包含0和100) 4.要求: (1)打印该班级中每组的不及格人数 (2)打印该班级中每组的平均分 (3)打印组的最高平均分 (4)打印班级中的不及格人数 (5)打印班级平均分 (6)演示格式如下: 请输入班级总组数:3 请输入班级中每组的人数:10 控制台输出: 第1组不及格人数为: 6 人 第1组平均分为: 52 第2组不及格人数为: 7 人 第2组平均分为: 46 第3组不及格人数为: 3 人 第3组平均分为: 69 班级中单组最高平均分为:69 班级中不及格人数为: 16 人 班级总平均分为: 56
package com.itheima.test;
import java.util.Random;
import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("班级的组数"); int group = sc.nextInt(); System.out.println("组的人数"); int number = sc.nextInt(); //{{0,0,0},{0,0,0},{0,0,0}}; int[][] arr = new int[group][number]; Random r = new Random(); /*int score = r.nextInt(101);//0-100 arr[0][0]= score; int score1 = r.nextInt(101);//0-100 arr[0][1]= score1; int score2 = r.nextInt(101);//0-100 arr[0][2]= score2; int score3 = r.nextInt(101);//0-100 arr[1][0]= score3;*/ for (int i = 0; i < arr.length; i++) { // arr.length 是一维数组的数量 //arr; for (int j = 0; j < arr.length; j++) { //arr.length 是一维数组里面的元素个数 // arr[j] int score = r.nextInt(101); arr[j]= score; } } //打印该班级中每组的不及格人数 /* * 打印出该班级的总的不及格人数 * 1:先拿到每个组的每个人的成绩,然后和60比较,比60小的就记录一次 */ /* int count =0; for (int i = 0; i < arr.length; i++) {// arr.length 是一维数组的数量 // arr int groupCount=0; for (int j = 0; j < arr.length; j++) { // arr[j] System.out.println(arr[j]); if(arr[j]<60){ count++; groupCount++; } } System.out.println("每组的不及格人数"+groupCount); } System.out.println("班级的总的不及格人数:"+count);*/ //班级中每组的平均分 平均成绩 = 组的总分/组的人数 /*for (int i = 0; i < arr.length; i++) {// arr.length 是一维数组的数量 // arr 每组 int sum = 0; for (int j = 0; j < arr.length; j++) {//arr.length 是一维数组里面的元素个数 // arr[j] 每组的每个人 sum += arr[j]; } System.out.println((i+1)+"组的平均成绩"+(sum/arr.length)); }*/ //组的最高平均分 /*int max = 0; for (int i = 0; i < arr.length; i++) {// arr.length 是一维数组的数量 // arr 每组 int sum = 0; for (int j = 0; j < arr.length; j++) {//arr.length 是一维数组里面的元素个数 // arr[j] 每组的每个人 System.out.println(arr[j]); sum += arr[j]; } int groupAvg = sum/arr.length; if(groupAvg>max){ max = groupAvg; } } System.out.println("最高平均分"+max);*/ //打印班级中的不及格人数 /*int count=0; for (int i = 0; i < arr.length; i++) {// arr.length 是一维数组的数量 //arr 每个组 for (int j = 0; j < arr.length; j++) {//arr.length 是一维数组里面的元素个数 // arr[j] 每个组的每个人的成绩 System.out.println(arr[j]); if(arr[j]<60){ count++; } } } System.out.println(count);*/ //打印班级平均分 = 班级的总分/ 班级的总人数 int sum = 0; for (int i = 0; i < arr.length; i++) { // arr.length 是一维数组的数量 // arr 每个组 for (int j = 0; j < arr.length; j++) {//arr.length 是一维数组里面的元素个数 // arr[j] 每个组的每个人的成绩 System.out.println(arr[j]); sum += arr[j]; } } System.out.println(sum/(group*number)); } }
类名作为形式参数和返回值
类名作为方法的形式参数
package com.itheima; public class Student { public void study() { System.out.println("好好学习,天天向上"); } } package com.itheima; public class Teacher { public void test(Student s) {//接收传递过来的Student对象的地址值 s.study(); } } package com.itheima; //需求: 调用Teacher的test方法 //类名作为形式参数:其实这里需要的是该类对象。 public class Test { public static void main(String[] args) { Teacher t = new Teacher(); Student s = new Student(); t.test(s); } }
类名作为返回值
package com.itheima; public class Student { public void study() { System.out.println("好好学习,天天向上"); } } package com.itheima; public class Teacher { public Student getStudent() { Student s = new Student(); return s;//返回的是Student对象的地址值 } } package com.itheima; //需求: 通过Teacher得到Student对象,然后调用Student类的方法 //如果方法的返回值是类名:其实返回的是该类的对象 public class Test { public static void main(String[] args) { Teacher t = new Teacher(); Student s = t.getStudent(); s.study(); } } |