《Java程序设计任务驱动式教程11章.ppt》由会员分享,可在线阅读,更多相关《Java程序设计任务驱动式教程11章.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、主编:孙修东、王永红高职高专规划示范教材 北京航空航天大学出版社目录任务一 搭建环境(构建Java集成开发环境)任务二 Java欢迎你(开发简单Java应用程序任务三 小试牛刀(学习Java语言基础)任务四 挑战选择(使用分支控制流程)任务五 游戏人生(使用循环控制流程)任务六 回归自然(创建、使用类和对象)任务七 3G时代的消息传递(定义和使用类方法)任务八 保护你的隐私(封装的使用)任务九 子承父业(继承和多态的使用)任务十 上帝万能之手(接口的使用)2 2任务十一 用数组存储信息(使用数组)任务十二 使用字符串进行交流(使用字符串)任务十三 防患于未然(捕获并处理异常)任务十四 主动出击
2、(抛出异常)任务十五 认识Java Applet(Applet入门)任务十六 丰富多彩的Applet(在Applet中播放声音和显示图像)任务十七 进入Windows世界(设计图形用户界面)任务十八 布局规划(使用布局管理器)任务十九 事件委托处理(如何处理事件)任务二十 选择之道(使用选择控件和选择事件)目录3 3任务二十一 简明清晰的菜单(使用菜单和其他常用事件)任务二十二 访问数据(使用JDBC连接数据库)任务二十三 访问数据升级(数据库编程)任务二十四 文件管理(目录与文件管理)任务二十五 顺序进出之道(文件的顺序访问)任务二十六 随机进出之道(文件的随机访问)任务二十七 JAVA的分
3、身术(创建和启动线程)任务二十八 线程的生命周期与优先级(线程的状态与调度)任务二十九 基于连接的通信(Java中的套接字Socket)任务三十 基于无连接的通信(Java中的数据报编程)目录4 4任务十一十一 用数组存储信息(使用数组)用数组存储信息(使用数组)21知识目标知识目标能力目标能力目标声明数组和创建;数组的初始化;数组元素的使用;main方法参数使用;类操纵数组。理解什么是数组;掌握一维数组的定义和使用;会使用数组解决简单问题。5 5内容提要内容提要4跟我做:跟我做:计算小组成员的考试成绩计算小组成员的考试成绩 1235实现方案实现方案 代码分析代码分析 必备知识必备知识 动手做
4、一做动手做一做 6 611.1 跟我做:计算小组成员的考试成绩计算小组成员的考试成绩 n任务情景任务情景编写一个程序sum.java,计算本小组成员的考试总分。小组共有5名成员,本次JAVA考试成绩分别为95,89,79,64,81,编写程序sum,当程序运行时,在控制台输出“本小组成员的总分为:408”。n运行结果运行结果第1章目录7 7n问题分析问题分析从技术角度,需要定义5个变量分别存放5位成员的成绩,还需要定义一个变量存放总分。n解决步骤解决步骤解决问题的步骤:先定义数组分别存放5位学员的成绩,然后把5个变量相加得到的和赋给一个新的变量。第1章目录11.2 实现方案 8 8n程序代码程
5、序代码package com.task11;public class sum public static void main(String args)int score=new int95,89,79,64,81;/成绩数组声明并初始化int sum=0;/成绩总和for(int index=0;index score.length;index+)/计算总分sum=sum+scoreindex;(本小组成员的总分为:+sum);/显示输出结果第1章目录11.3 代码分析 9 911.3 代码分析 n应用扩展应用扩展1.如果有多组成员,并要求分别算出每组成员的总分怎么办?这时候需要用到多维数组,
6、最常用的多维数组是二维数组,它是具有两个下标的数组,格式如下:数据类型数据类型 数组名数组名;或者 数据类型数据类型 数组名数组名 ;2.数组是对象类型,具有属性和方法,可以通过length属性在程序中动态获得数组的长度。其语法为:数组名数组名.length;第1章目录101011.4 必备知识 11.4.1 数组的概念数组是具有相同数据类型的一组数的有序集合,数组中的每个数据称为数组的元素,数组中各元素具有相同的数据类型,且在内存中是连续存放的,通过下标来区分数组中的不同元素。根据构成形式,可将数组分为一维数组和多维数组,本章主要介绍一维数组。11.4.2 声明数组和创建数组数组要先声明,然
7、后才能使用。一维数组的声明格式如下:数据类型 数组名;或者 数据类型 数组名 ;以上两种格式都可以声明一个数组,其中,数据类型既可以是基本数据类型,也可以是引用数据类型;必不可少,代表声明的是数组变量,而不是普遍变量;数组名可以是任意合法的变量名。第1章目录111111.4 必备知识 例如:int score;/声明了一个名称为score的数组,数组中元素的类型为intString name;/声明了一个名称为name的数组,数组中元素的类型为String声明数组仅仅指定了数组的名称和元素的数据类型,数组元素的个数并未确定,因此,系统无法为它分配内存空间,在使用前还需要为它分配空间,即创建数组
8、空间,格式如下:数据类型 数组名 =new 数据类型数组中元素的个数 ;在创建数组时需要指定数组中元素的个数,创建之后不可修改,创建之后会返回一个数组空间的引用。例如,为刚才声明的数组score分配空间:score=new int30;当然,也可以在声明数组时就给它分配空间,格式如下:数据类型 数组名 =new 数据类型数组中元素的个数;例如:int score =new int5;/创建了一个包含5个int型元素的数组第1章目录121211.4.3 数组的初始化如果数组元素的类型是基本数据类型,那么数组在创建之后,每个元素会自动赋予其数据类型的默认值,如int型会自动赋为0,boolean型
9、会自动赋为false,char型会自动赋为0。当然,大部分情况下,我们都需要对数组进行显式地初始化,在定义数组的时候就给数组的每个元素赋值。格式如下:数据类型 数组名 =new 数据类型值1,值2,值3,值n ;或者数据类型 数组名 =值1,值2,值3,值n ;例如:int score=89,79,76,64,81;int score=new int 89,79,76,64,81;初始化时将所有的初始值用括起来,每个值直接用逗号隔开。注意:这里在创建数组时,省略了数组的中元素的个数,如果数组定义时进行了初始化操作,那么数组中元素的个数将根据给定的初始值来确定,不能另行指定。第1章目录11.4
10、必备知识必备知识 131311.4.4 数组元素的使用创建数组,其目的是为了使用数组,格式:数组名下标例如:score1数组中的每个元素都有一个索引,或者称为下标,代表了元素在数组中所处的位置。需要注意的是,下标是从0开始的,直到数组元素减1为止,下标可以是int类型的数据和算术表达式。例如,score21是合法的。因此,int score=new int95,89,79,64,81 相当于:int score;score=new int5;score095;score189;score279;score364;score481;11.4.5 main方法的特点如果一个类要被Java解释器直接
11、装载运行,那么这个类中必须要有main()方法。由于Java虚拟机需要调用类的main()方法,所有该方法的访问权限必须是public,又因为Java虚拟机在执行main()方法时不必创建对象,所以该方法还必须是static的,main()方法接收一个String类型的参数数组,该数组保存了执行Java命令时传递给所运行的类的参数。main()方法的参数形式为:String argsArgs数组中元素的个数就是在命令行中给类传递的参数的个数,每个参数直接用空格分开。11.4 必备知识必备知识 141411.4.6 使用类操纵数组Java的设计人员预先给我们提供了很多包,java.util包就是
12、其中之一。java.util包由许多常用的类组成,Arrays类就是其中一种。Arrays类提供了许多常用的方法来操作数组,例如:排序、查询等,常用方法如下所示:1.boolean equals(数组1,数组2):比较两个数组是否相等。两个数组必须是同类型的,只有当两个数组的元素个数相同且对应位置元素也相同时,才表示两个数组相同,返回true,否则返回false。2.void fill(数组,值):将指定的值分配给数组中的每个元素。3.void sort(数组):对数组中的元素按照升序排序。数组是数值型或者char型时,将按元素值由小到大排序。4.int binarySearch(数组,值):
13、在调用此方法前必须先对数组进行排序,该方法按照二分查找算法查找数组是否包含指定的值,如果包含,则返回该值在数组中的索引;如果不包含该值,则返回负值。注意,使用以上方法时必须先导入包。11.4 必备知识必备知识 1515例如,要对本小组成员成绩按分数由低到高进行排序package com.task11;import;public class sort public static void main(String args)int score=new int95,89,79,64,81;Arrays.sort(score);/对数组排序for(int index=0;index score.len
14、gth;index+)System.out.println(scoreindex);/显示排序后的结果11.4 必备知识必备知识 1616输出结果如图11-2。11.4 必备知识必备知识 171711.5 动手做一做动手做一做一、实训目的掌握Java中数组的声明、创建、初始化和使用;理解数组的复制;体会二分查找的基本算法思想。二、实训内容1.请输入并运行下面的程序,写出程序的运行结果。public class ArrayCopy public static void main(String args)int a=1,2,3;int b=a;b1=5;System.out.println(a1=
15、+a1+,b1=+b1);2.将099分别赋给一个包含100个整型元素的数组,并用二分查找法查找元素32、1和1032。输出结果如图11-3所示。图11-3 程序arrayBinary的运行结果三、简要提示二分查找的基本思路是:先将整个数组作为查找区间,用给定的值与查找区间的中间元素的值进行比较,若相等,则查找成功;若不等,则缩小范围,判断该值落在区间的前一部分还是后一部分,再将其所在的部分作为新的查找区间,继续上述过程,一直找到该值或区间大小小于0,表明查找不成功为止。四、程序代码参见本教材教学资源。五、实训思考1.程序中整型变量high、low、mid、cnt分别起什么作用?布尔型变量found又起到什么作用?2.该程序是如何确定查找区间范围的?1818