面向程序基础设计 10_第1页
面向程序基础设计 10_第2页
面向程序基础设计 10_第3页
面向程序基础设计 10_第4页
面向程序基础设计 10_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计与实践第六章Java数组和常用类面向对象程序设计与实践课程组教学目标教学方式重点知识学习目标1.了解数组的基本概念以及相关知识2.掌握数组的使用,包括数组的申明,赋值,引用等3.掌握冒泡排序法的程序设计与实现4.了解Java的常用类的相关知识,能够利用API文档来查询java中的常用类的使用方法1.数组的基本用法和相关语法规则2.冒泡排序算法流程和程序设计实现本章节以理论讲解、案例演示、代码分析为主。学生需要了解和具备数组基础知识,并且掌握Java中的常用类的使用方法目录CONTENTS016-1冒泡排序026-2公司年销售额求和

036-3判断字符串中字母和数字01冒泡排序案例描述案例分析关联知识案例实现案例小结案例拓展6-1案例描述

给定一个无序数组,通过冒泡排序算法将数组变为由小到大排列的有序数组。案例项目学习冒泡排序算法流程和程序设计实现,通过此案例项目对数组的基础进行了解和学习,对数组的基本概念、一维数组的定义(申明、赋值、引用、配合循环等)进行学习,并了解数组的内存分配。6-1关联知识数组的基本概念(1)数组是计算机分配的一组连续的内存空间,是一种线性序列。(2)数组是一种引用内存,数组元素和数组变量在内存里是分开存放的,实际的数组对象被存放在堆内存中,数组的引用变量被存储在栈内存中。(3)数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用1个统一的数组名和不同的下标来唯一确定数组中的元素,其中有n个元素的数组下标是从0开始到n-1结束。(4)根据数组的维度,可以将数组分为一维数组、二维数组和多维数组等。6-1关联知识一维数组定义(1)一维数组的声明方式(2)创建数组

在Java中使用new关键字创建数组对象,每个数组都有1个属性length表示数组的长度,例如:a.length表示数组a的长度(元素个数),其中a.length=?6-1关联知识(3)一维数组的声明方式6-1关联知识publicclassHelloAccp2{publicstaticvoidmain(String[]args){int[]score=newint[];score[0]=89;score[1]=63;System.out.println(score[0]);}}编译出错,没有写明数组的大小6-1关联知识publicclassHelloAccp3{publicstaticvoidmain(String[]args){int[]score=newint[2];score[0]=89;score[1]=63;score[2]=45;System.out.println(score[2]);}}运行出错,数组越界6-1关联知识publicstaticvoidmain(String[]args){int[]score=newint[5];score={60,80,90,70,85};

int[]score2;score2={60,80,90,70,85};}编译出错,创建数组并赋值的方式必须在一条语句中完成6-1关联知识(4)数组配合循环数组一般都配合循环结构使用来完成特定功能,比如求最大值、最小值和平均值等。例1求解数组元素的平均值。分析:通过for循环计算数组所有元素的总和sum,然后用总和除以数组长度即可得到数组元素的平均值。6-1关联知识例2从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分。分析:用数组保存从键盘输入的五次成绩,设置一个变量max,其初始值为第一个元素。然后通过循环使max和其他元素依次比较,当其他元素大于max的值时,更新max的值。擂台打擂台6-1关联知识(5)对象数组(引用类型元素数组)对象数组就是数组里的每个元素都是类的对象,需要注意的是引用数据类型的数组中的每一个元素都需要实例化才能直接使用,否则报空指针异常。对象数组格式如下:类名称对象数组名[]=new类名称[长度];

例3把3个学生的信息存储到数组中,并遍历数组,获取每一个学生信息。6-1案例分析冒泡排序算法将一个无序数组变为由小到大排列的有序数组。冒泡排序的原理:每次比较两个相邻的元素,将较大的元素交换至右侧。6-1案例实现6-1案例小节数组的基本概念一维数组定义数组是有序数据的集合,数组中的每个元素具有相同的数据类型一维数组的声明、创建、赋值、配合循环、对象数组6-1案例拓展在本案例中对数组使用冒泡排序得到由小到大的有序数组,请思考如何修改代码可以得到由大到小的有序数组。02公司年销售额求和案例描述案例分析关联知识案例实现案例小结案例拓展6-2案例描述公司按照季度和月份统计的数据如下,单位(万元)。第一季度:11,23,45第二季度:40,53,34第三季度:47,51,26第四季度:17,28,33求该公司本年度总销售额。6-2关联知识二维数组的定义(1)二维数组第一个下标表示元素所在的行,以第二个下标表示元素所在的列。(2)二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。(3)二维数组的声明语法:

数组类型数组名[][];

数组类型[][]数组名;二维数组的创建(1)在创建的二维数组中,第一个[]中的值表示行数,第二个[]的值表示列数(2)如果二维数组的每行中列数不相同时,那么可以采用如下格式:6-2关联知识二维数组的赋值(1)二维数组的赋值可以采用边声明边赋值的形式:(2)二维数组的赋值也可采用键盘输入动态的初始化方式:6-2案例分析交流与讨论结合案例分析,思考一下几个问题:实现二维数组采用键盘输入动态的初始化方式实现二维数组的遍历6-2案例实现11-5案例小节二维数组二维数组的定义、创建、赋值和使用6-2案例拓展在本案例中计算的全年的总销售额,请思考如何计算每个季度的总销售额。03判断字符串中字母和数字案例描述案例分析关联知识案例实现案例小结案例拓展6-3案例描述用户通过键盘输入一个随机字符串,并判断该字符串有多少个字母,有多少个数字,然后打印输出。6-3关联知识字符串类(1)Java中使用位于java.lang包中String类来创建和操作字符串。(2)通过使用equals方法进行字符串的比较,区分equals方法和==之间的区别。String类主要方法(1)charAt(intindex)(2)compareTo(String

anotherString)

(3)concat(Stringstr)(4)contains(CharSequences)(5)equals(ObjectanObject)(6)indexOf(Stringstr)(7)length()(8)toCharArray()6-3关联知识Object类(1)在Java中Object类是所有类的父类,任何类都默认继承Object类,因此Java中任何类的对象都可以调用Object类中的方法。(2)Object类位于java.lang包中,由于所有类都继承在Object类中,因此在程序中省略extendsObject关键字。Object类主要方法(1)clone()(2)equals(Objectobj)(3)getClass()(4)hashCode()(5)notify()(6)toString()(7)wait()6-3关联知识Math类(1)Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。(2)Math类中的所有方法都是类方法,可以直接通过类名调用,Math类位于java.lang包中。Math类主要方法(1)abs(doublea)(2)ceil(doublea)(3)floor(doublea)(4)max(inta,intb)(5)min(inta,intb)(6)pow(doublea,doubleb)(7)random()(8)round(floata)(9)sqrt(doublea)6-3关联知识Random类(1)Random类位于java.util包中,主要用于生成伪随机数。Random类主要方法(1)next(intbits)(2)nextBoolean()(3)nextBytes(byte[]bytes)(4)nextDouble()(5)nextFloat()(6)nextInt()(7)nextInt(intn)(8)nextLong()(9)setSeed(longseed)11-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论