当前位置:文档之家› 第三章_Java基础语法[下]

第三章_Java基础语法[下]


表示获取第m+1个一维数组的第n+1个元素
北京传智播客教育
—高级软件人才实作培训专家! 二维数组定义格式

格式2
• • • •
数据类型[][] 变量名 = new 数据类型[m][]; m表示这个二维数组有多少个一维数组 这一次没有直接给出一维数组的元素个数,可以动态 的给出。 举例:
—高级软件人才实作培训专家! 综合小练习(思考题)


看程序写结果,并总结基本类型和引用类型参 数的传递问题(题目在备注部分) 数据加密问题(题目在备注部分)
北京传智播客教育
—高级软件人才实作培训专家!
第三章 Java基础语法
北京传智播客教育
—高级软件人才实作培训专家! 本章内容

方法 数组
北京传智播客教育
—高级软件人才实作培训专家!
方法概述

方法概述
• 假设有一个游戏程序,程序在运行过程中,要不断地
发射炮弹(植物大战僵尸)。发射炮弹的动作需要编写 100行的代码,在每次实现发射炮弹的地方都需要重复 地编写这100行代码,这样程序会变得很臃肿,可读性 也非常差。为了解决代码重复编写的问题,可以将发 射炮弹的代码提取出来放在一个{}中,并为这段代码起 个名字,这样在每次发射炮弹的地方通过这个名字来 调用发射炮弹的代码就可以了。上述过程中,所提取 出来的代码可以被看作是程序中定义的一个方法,程 序在需要发射炮弹时调用该方法即可。

空指针异常
北京传智播客教育
—高级软件人才实作培训专家! 数组练习(常见操作)


数组遍历(依次输出数组中的每一个元素) 数组获取最值(获取数组中的最大值最小值) 数组元素逆序 (就是把元素对调) 数组查表法(根据键盘录入索引,查找对应星期) 数组元素查找(查找指定元素第一次在数组中 出现的索引) 数组排序和二分查找(后面在数组高级部分讲 解)
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元 素…},{元素…}}; 简化版格式: 数据类型[][] 变量名 = {{元素…},{元素…},{元素…}}; 举例:
• int[][] arr =
{{1,2,3},{4,6},{6}};
北京传智播客教育
• 数组是存储多个变量(元素)的东西(容器) • 这多个变量的数据类型要一致
北京传智播客教育
—高级软件人才实作培训专家! 数组概念

数组概念



数组是存储同一种数据类型多个元素的集合。也可以 看成是一个容器。 数组既可以存储基本数据类型,也可以存储引用数据 类型。
数组的定义格式
北京传智播客教育
—高级软件人才实作培训专家! 二维数组定义格式

格式1
• • • •
数据类型[][] 变量名 = new 数据类型[m][n]; m表示这个二维数组有多少个一维数组 n表示每一个一维数组的元素个数 举例:
• int[][] arr = new int[3][2]; • 定义了一个二维数组arr • 这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2] • 每个一维数组有2个元素,可以通过arr[m][n]来获取
北京传智播客教育
—高级软件人才实作培训专家! 方法重载

方法重载概述
• 在同一个类中,允许存在一个以上的同名方法,只要
它们的参数个数或者参数类型不同即可。

方法重载特点
• 与返回值类型无关,只看方法名和参数列表 • 在调用时,虚拟机通过参数列表的不同来区分同名方

北京传智播客教育
北京传智播客教育
—高级软件人才实作培训专家! 二维数组概述

二维数组概述
• •
我们传智播客的Java基础班每个班有很多个学生,所 以,可以用数组来存储,而我们又同时有很多个Java 基础班。这个也应该用一个数组来存储。如何来表示 这样的数据呢?Java就提供了二维数组供我们使用。 由此可见:其实二维数组其实就是一个元素为一维数 组的数组。
北京传智播客教育
—高级软件人才实作培训专家! 方法定义及格式

简单的说:方法就是完成特定功能的代码块
• • •
在很多语言里面都有函数的定义 函数在Java中被称为方法 修饰符 返回值类型 方法名(参数类型 参数名1,参数 类型 参数名2…) { 函数体; return 返回值; }

有明确返回值的方法调用:
• • •
单独调用,没有意义 输出调用,有意义,但是不够好,因为我不一定非要 把结果输出 赋值调用,推荐方式

讲解完毕该案例后,画图说明方法的调用过程
北京传智播客教育
—高级软件人才实作培训专家! 有明确返回值的方法练习

键盘录入两个数据,返回两个数中的较大值 键盘录入两个数据,比较两个数是否相等 键盘录入三个数据,返回三个数中的最大值
int类型的值,并且值分别是1,2,3。 其实这种写法还有一个简化的写法

int[] arr = {1,2,3};
北京传智播客教育
—高级软件人才实作培训专家! 数组操作常见的两个小问题

数组索引越界
• ArrayIndexOutOfBoundsException • 访问到了数组中的不存在的索引时发生。 • NullPointerException • 数组引用没有指向实体,却在操作实体中的元素时。
数组概述


需求:现在需要统计某公司员工的工资情况,例如计 算平均工资、找到最高工资等。假设该公司有80名员 工,用前面所学的知识,程序首先需要声明80个变量 来分别记住每位员工的工资,然后在进行操作,这样 做会显得很麻烦。为了解决这种问题,Java就提供了 数组供我们使用。 那么数组到底是什么呢?有什么特点呢?通过上面的分 析:我们可以得到如下两句话:
北京传智播客教育

图解2:

图解3:
—高级软件人才实作培训专家! 数组的初始化

静态初始化:初始化时指定每个数组元素的初 始值,由系统决定数组长度。


格式: 举例:
• 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…}; • int[] arr = new int[]{1,2,3}; • 解释:定义了一个int类型的数组,这个数组中可以存放3个 •

数组的初始化方式
北京传智播客教育
—高级软件人才实作培训专家! 数组的初始化

动态初始化:初始化时只指定数组长度,由系 统为数组分配初始值。
• • •
格式:数据类型[] 数组名 = new 数据类型[数组长度]; 数组长度其实就是数组中元素的个数。 举例:
• int[] arr = new int[3]; • 解释:定义了一个int类型的数组,这个数组中可以存放3个
—高级软件人才实作培训专家! 方法重载案例

比较两个数据是否相等。参数类型分别为两个 byte类型,两个short类型,两个int类型,两 个long类型,并在main方法中进行测试 方法递归在IO之前详细讲解

北京传智播客教育
—高级软件人才实作培训专家! 数组概述

—高级软件人才实作培训专家! 二维数组练习

二维数组遍历 公司年季度和月份统计的数据如下:单位(万元) 第一季度:22,66,44 第二季度:77,33,88 第三季度:25,45,65 第四季度:11,66,99

打印杨辉三角形(行数可以键盘录入)
北京传智播客教育
• • •
格式1:数据类型[] 数组名; 格式2:数据类型 数组名[]; 注意:这两种定义做完了,数组中是没有元素值的。 如何对数组的元素进行初始化呢?
北京传智播客教育
—高级软件人才实作培训专家! 数组的初始化

数组初始化概述:
• • • •
Java中的数组必须先初始化,然后才能使用。 所谓初始化:就是为数组中的数组元素分配内存空间 ,并为每个数组元素赋值。 动态初始化:初始化时只指定数组长度,由系统为数 组分配初始值。 静态初始化:初始化时指定每个数组元素的初始值, 由系统决定数组长度。
北京传智播客教育

格式:
—高级软件人才实作培训专家! 方法格式的解释说明

方法格式解释
• • • • • • • •
修饰符 比较多,后面会详细介绍。目前public static 返回值类型 用于限定返回值的数据类型 方法名 一个名称,为了方便我们调用方法 参数类型 限定调用方法时传入参数的数据类型 参数名 是一个变量,接收调用方法时传入的参数 方法体 完成功能的代码 return 结束方法以及返回方法指定类型的值 返回值 程序被return带回的结果,返回给调用者
北京传智播客教育
—高级软件人才实作培训专家! 方法注意事项

方法不调用不执行 方法与方法是平级关系,不能嵌套定义 方法定义的时候参数之间用逗号隔开 方法调用的时候不用在传递数据类型 如果方法有明确的返回值,一定要有return带 回一个值
北京传智播客教育
—高级软件人才实作培训专家!
没有明确返回值的方法调用

没有明确返回值的函数调用:
• •
其实就是void类型方法的调用 只能单独调用
北京传智播客教育
—高级软件人才实作培训专家! 返回值为void类型的方法练习

键盘录入行数和列数,输出对应的星形 键盘录入一个数据n(1<=n<=9),输出对应的 nn乘法表
北京传智播客教育
—高级软件人才实作培训专家! Java中数组的内存图解

图解1:
相关主题