(一)二维数组//理解
1、定义:一个元素是一维数组的数组
2、格式:
(1)动态初始化:
//格式1:数据类型[][] 数组名 = new 数据类型[m][n];
//m:表示这个二维数组有多少个一维数组。n:表示每一个一维数组的元素有多少个。
int[][] arr = new int[3][2];
//格式2:数据类型[][] 数组名 = new 数据类型[m][];
//m:表示这个二维数组有多少个一维数组。列数没有给出,可以动态的给。这一次是一个变化的列数。
int[][] arr = new int[3][];
System.out.println(arr);//[[I@175078b
System.out.println(arr[0]); //null
System.out.println(arr[1]); //null
System.out.println(arr[2]); //null
(2)静态初始化:
//格式3(基本格式):
数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
//格式4(简化格式):
数据类型[][] 数组名 = {{...},{...},{...}};
int[][] arr = {{1,2,3},{4,5},{6}};
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[0][0]); //1
System.out.println(arr[1][0]); //4
System.out.println(arr[2][0]); //6
System.out.println(arr[0][1]); //2
System.out.println(arr[1][1]); //5
//越界
System.out.println(arr[2][1]); //错误
3、案例//掌握
(1)遍历:
for(int x=0; x<arr.length; x++) {
for(int y=0; y<arr[x].length; y++){
System.out.print(arr[x][y]+" ");
}
System.out.println();
}
(2)求和:
int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
int sum = 0;
for(int x=0; x<arr.length; x++) {
for(int y=0; y<arr[x].length; y++){
sum += arr[x][y];
}
}
(3)杨辉三角:
(二)两个思考题//理解
1、Java中只有值传递(无论是数据值还是地址值,都是值):
(1)基本类型:形式参数的改变对实际参数没有影响。传递的是数据值。
(2)引用类型:形式参数的改变直接影响实际参数。传递的是地址值。
2、数据加密问题
(一)面向对象//掌握
1、面向对象
面向对象是基于面向过程的编程思想
2、面向对象的思想特点
(1)是一种更符合我们思考习惯的思想
(2)把复杂的事情简单化
(3)让我们从执行者变成了指挥者
举例:洗衣服、做饭、...、万事万物皆对象
3、把大象装进冰箱//理解
(1) 面向过程实现
(2)面向对象实现
(3)注意:如何让我们的操作更符合面向对象思想呢?
①有哪些类
②每个类有哪些成员
③类与类的关系
4、类与对象
(1)现实世界的事物
属性 事物的基本描述
行为 事物的功能
(2)Java语言中最基本的单位是类。所以,我们要用类来体现事物
成员变量 事物属性
成员方法 事物行为
(3)类:是一组相关的属性和行为的集合。是一个抽象的概念。对象:是该类事物的具体存在,是一个具体的实例。
举例:学生→类 班长→对象
5、类的定义及使用
(1)类的定义
成员变量:定义格式和以前一样,就是位置不同,在类中,方法外。
成员方法:定义格式和以前一样,就是去掉了static。
(2)使用类的内容
①创建对象格式:类名 对象名 = new 类名();
②使用成员变量和成员方法:
对象名.成员变量
对象名.成员方法()
6、案例:①学生类的定义和使用;②手机类的定义和使用
7、内存图:①一个对象的内存图;②二个对象的内存图;③三个对象的内存图
8、Java程序的开发,设计和特征
(1)开发:就是不断的创建对象,通过对象调用功能
(2)设计:就是管理和维护对象间的关系
(3)特征:①封装、②继承;③多态