二维数组和面向对象基础
1:二维数组(理解)
(1)元素是一维数组的数组。
(2)格式:
- 数据类型[][] 数组名 = new 数据类型[m][n];
- 数据类型[][] 数组名 = new 数据类型[m][];
- 数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
- 数据类型[][] 数组名 = {{...},{...},{...}};
(3)案例(掌握):
- 二维数组的遍历
- 二维数组的求和
- 杨辉三角形
杨辉三角:
public class Array2Demo { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n][n]; /* * 思路: * A:任何一行的第一列和最后一列都是1; * B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列和; * C:首先定义一个二维数组,行数如果是n,列数也为n; * D:给这个二维数组任何一行的第一列和最后一列赋值为1; * E:按照规律给其他元素赋值,从第三行开始,每一个数据是它上一行的前一列 * 和它上一行的本列之和。 * F:遍历这个二维数组。 */ for(int i=0;i<arr.length;i++){ arr[i][0] = 1; arr[i][i] = 1; } for(int i=2;i<arr.length;i++){ for(int j=1;j<i;j++){ arr[i][j] = arr[i-1][j-1] + arr[i-1][j]; } } for(int i=0;i<arr.length;i++){ for(int j=0;j<=i;j++){ System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }
2:两个思考题(理解)
(1)Java中的参数传递问题
Java中只有值传递。
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
(2)数据加密问题
综合的小案例。
/* 某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全, 在传递过程中需要加密,加密规则如下: 首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数, 然后,把加密后的结果在控制台打印出来。 题目要求: A:数据是小于8位的整数 定义一个int类型的数据 int number = 123456; B:加密规则 a:首先将数据倒序 结果 654321 b:然后将每位数字都加上5,再用和除以10的余数代替该数字 结果 109876 c:最后将第一位和最后一位数字交换 结果 609871 C:把加密后的结果输出在控制台 */ public class JMDemo { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入一个数据:"); int number = sc.nextInt(); String result = JM(number); System.out.println("加密后:"+result); } public static String JM(int number){ int[] arr = new int[8]; int index = 0; while(number > 0){ arr[index] = number%10; index++; number/=10; } for(int i=0;i<index;i++){ arr[i] = (arr[i]+5)%10; } int temp; temp = arr[0]; arr[0] = arr[index-1]; arr[index-1] = temp; String s = ""; for(int i=0;i<index;i++){ s += arr[i]; } return s; } }
3:面向对象(掌握)
(1)面向对象
面向对象是基于面向过程的编程思想
(2)面向对象的思想特点
- A:是一种更符合我们思考习惯的思想
- B:把复杂的事情简单化
- C:让我们从执行者变成了指挥者
举例:
买电脑
洗衣服
做饭
...
万事万物皆对象
(3)把大象装进冰箱(理解)
- A:面向过程实现
- B:面向对象实现
注意:如何让我们的操作更符合面向对象思想呢?
- A:有哪些类
- B:每个类有哪些成员
- C:类与类的关系
(4)类与对象
A:现实世界的事物
属性 事物的基本描述
行为 事物的功能
B:Java语言中最基本的单位是类。所以,我们要用类来体现事物
C:类
成员变量 事物属性
成员方法 事物行为
D:类:是一组相关的属性和行为的集合。是一个抽象的概念。
对象:是该类事物的具体存在,是一个具体的实例。(对象)
举例:
学生:类
班长:对象
(5)类的定义及使用
A:类的定义
成员变量 定义格式和以前一样,就是位置不同,在类中,方法外。
成员方法 定义格式和以前一样,就是去掉了static。
B:使用类的内容
a:创建对象? 格式
类名 对象名 = new 类名();
b:如何使用成员变量和成员方法呢
对象名.成员变量
对象名.成员方法()
(6)案例:
A:学生类的定义和使用
B:手机类的定义和使用
(7)内存图
A:一个对象的内存图
B:二个对象的内存图
C:三个对象的内存图
(8)Java程序的开发,设计和特征
- A:开发:就是不断的创建对象,通过对象调用功能
- B:设计:就是管理和维护对象间的关系
- C:特征
- 封装
- 继承
- 多态