黑马程序员技术交流社区

标题: JavaEE11期技术贴 [打印本页]

作者: 林LLL    时间: 2018-3-24 23:54
标题: JavaEE11期技术贴
本帖最后由 林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();
        }
}





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