java语言程序设计案例教程-第4章

上传人:xuex****hao 文档编号:244727175 上传时间:2024-10-05 格式:PPT 页数:26 大小:312.50KB
返回 下载 相关 举报
java语言程序设计案例教程-第4章_第1页
第1页 / 共26页
java语言程序设计案例教程-第4章_第2页
第2页 / 共26页
java语言程序设计案例教程-第4章_第3页
第3页 / 共26页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二层,第三层,第四层,第五层,*,第4章 数组和方法,本章主要介绍Java语言的数组和方法。通过学习读者可以掌握方法及其参数的使用、方法调用方法、数组的使用和排序,以及方法、数组与循环语句的综合应用。,本章要点,4.1 数组,4.2 方法,思考与练习4,本章逻辑结构,4.1 数组,4.1.1 什么是数组,4.1.2 数组的使用,实例27 投票选佳丽,4.1.3 二维数组,实例28 求两个矩阵的和,实例29 矩阵的行列互换,4.1.4 什么是排序,实例30 插入排序法,实例31 选择排序法,实例32 冒泡排序法,本章逻辑结构,4.2 方法,4.2.1 方法,实例33 求最大公因数和最小公倍数之二,4.2.2 递归,实例34 费波纳契数列,实例35 插入排序法之二,实例36 哥德巴赫猜想,4.1 数组,4.1.1 什么是数组,在实际应用中,经常需要处理一批相互有联系、有一定顺序、同一类型和具有相同性质的数据。例如,50个学生的期末总成绩,一个矩阵中的所有数据等等。Java语句提供了数组来保存和处理这类数据。数组是指一组类型相同的数据,每个数据称为一个数组元素。例如:如果上述50个学生的期末总成绩构成一个数组,则每个学生的成绩叫数组元素;如果某个矩阵中的数据构成一个数组,则其中的每个数字叫数组元素。,有了数组,就可以用同一个变量名来表示一系列的数据,并用下标来表示同一数组中的不同数组元素。每个元素都具有一个下标值,也就是该元素在数组中的位置。在Java语言中数组元素可以是简单数据类型,也可以是对象数据类型。数组的主要特点有5个。,4.1 数组,4.1.1 什么是数组,(1)数组是相同数据类型元素的集合。,(2)数组中的各个元素在内存中按照先后顺序连续存放在一起。,(3)每个数组元素用其所在数组的名字和其在数组中的顺序位置表示。例如base0代表变量名为base的数组中的第一个元素,base1代表数组base的第二个元素,依此类推,basen代表数组base的第n+1个元素。,(4)数组的下标值是从0开始的,其可以是int类型的数据、变量和算术表达式。例如,base a、s 5*10 都是合法的下标值。,(5)每个数组都有长度,也就是其所能含有元素的个数。,4.1 数组,4.1.2 数组的使用,1使用数组的步骤,使用数组一共有3个步骤,分别介绍如下。,(1)定义数组。在使用数组之前必须先定义数组。定义数组主要是定义数组的名称和数组中元素的数据类型,其形式有两种:,数组元素类型 数组名称;,数组元素类型 数组名称;,其中的数组名称必须符合Java语言标识符规则,例如,以下定义语句都是合法的。,int results;,boolean info;,double tips_01;,String abc;,定义数组的目的只是告诉系统一个新的数组的名称和类型,数组本身不能存放任何数组元素,现阶段的数组值为null。,4.1 数组,4.1.2 数组的使用,1使用数组的步骤,(2)创建数组。指定数组的长度,并分配相应的内存空间。创建数组使用关键字new,例如,results=new int50;表示给数组results分配内存空间,用来保存50个int类型的数字。定义数组和创建数组也可以合并为一条语句,例如,,int results=new int50;,String abc=new String100;,在创建数组后,数组的默认值由其元素的类型决定,例如:整型数据的默认值为0,实型数据的默认值为0.0,布尔型数据的默认值为false。,4.1 数组,4.1.2 数组的使用,1使用数组的步骤,(3)数组元素,在Java语言中,使用下标来标识数组中特定位置的元素,其形式为:数组名下标。下标值由0开始到数组长度减1为止。以前面定义并创建的results数组为例:result0表示数组中的第一个元素;numbers49表示数组中的最后一个元素。数组results的结构如图4.1所示。,图4.1 数组results的结构,图4.1 数组results的结构,4.1 数组,4.1.2 数组的使用,2数组的初始化,数组的初始化是指不使用系统的数组默认值,自行给数组赋初值,其方法有2种:,(1)按照顺序依次给每个元素赋值。例如给数组results赋值:,results0=87;,results1=90;,results48=45;,results49=100;,4.1 数组,4.1.2 数组的使用,2数组的初始化,(2)在定义数组的同时直接给数组赋初值,初值的个数是数组的长度。初值必须用大括号括起来,用逗号分隔开,例如:,int results=87,90,77,55,98,37,64,100;,String nums=one,two,three,four,five,six,seven,eight;,在使用第2种方法时,一定要注意定义和初始化要在一条语句中完成,也就是说不可以定义数组后,在另一条语句中再给数组赋初值。例如:,int numbers;,numbers=1,2,3;,是语法错误的语句。只可以写成,int numbers=1,2,3;,4.1 数组,4.1.2 数组的使用,3数组的复制,事实上,我们创建的每个数组都是Array类中的一个对象,所以在复制数组时有两种情况。,(1)两个数组指向同一个元素空间。也就是说我们定义并创建了一个数组,其在内存中具有一定的空间,然后又定义了一个数组,让其同样表示该内存空间中的数组元素。例如:,int num_1=1,2,3,4,5,6;,int num_2;,num_2=num_1;,其中,num_2=num_1;语句表示数组num_2与数组num_1具有同样的元素,其关系如图4.2所示。,4.1 数组,4.1.2 数组的使用,3数组的复制,图4.2 数组num_1与num_2的关系,4.1 数组,4.1.2 数组的使用,3数组的复制,如果改变一个数组中某个元素的值,则另一个数组中相应位置的元素值也随之改变。例如:让num_28=60,则num_18中的值也随之变为60。这是因为num_1和num_2指向的是同一个数组,num_18和num_28保存的是同一个数值。,(2)两个数组指向内容相同的两个元素空间。如果要真正复制一个数组,使得我们在修改复制数组的值时,不会影响到源数组的话,则需要定义一个和源数组长度相同的数组,然后再把源数组中的元素一一复制给新的数组。,求任何数组的长度都可以使用:,数组名.length,数组num_1和num_2的关系如图4.3所示。,4.1 数组,4.1.2 数组的使用,3数组的复制,图4.3 数组num_1与num_2的关系,4.1 数组,4.1.3 二维数组,1定义二维数组,与定义一维数组类似,定义二维数组也有两种形式:,(1)数组元素类型 数组名称;,例如:,int results;,char c;,(2)数组元素类型 数组名称;,例如:,String abc;,double company_01;,4.1 数组,4.1.3 二维数组,2创建二维数组,二维数组可以看作一个按照行和列存储数据的内存空间。我们可以按照所需确定数组每行和每列的长度,有两种创建方法。,(1)数组每行、每列之间长度相同。,例如,int results=new int23;语句表示创建一个2行3列的二维数组,其结构如图4.5所示。该数组共有result00、result01、result02、result10、result11和result12六个数组元素。,图4.5 二维数组results,4.1 数组,4.1.3 二维数组,2创建二维数组,(2)数组每行、每列之间长度不相同。,例如:,results=new int2;/语句表示创建一个2行的二维数组。,results0=new int3;/语句表示该数组的第一行有3列,也就是3个元素。,results1=new int5;/语句表示该数组的第二行有5列,也就是5个元素。,数组results的结构如图4.6所示。,图4.6 二维数组results,4.1 数组,4.1.3 二维数组,3初始化二维数组,与初始化一维数组类似,初始化二维数组也有两种方法。,(1)按照顺序依次给每个元素赋值。,例如给数组results赋值:,int results;,results=new int23;,results00=67;,results01=97;,results02=100;,results10=89;,results11=73;,results12=65;,(2)在定义数组的同时直接给数组赋初值。,整个初值数据用大括号括起来,其中的每一行初值也必须用大括号括起来,用逗号分隔开。内层大括号内的数值也要用逗号分隔开。例如:,int results=84,77,100,98,63,65 ;,4.1 数组,4.1.3 二维数组,4二维数组的长度,二维数组的长度是指行数的个数,二维数组每行的长度是指每行的元素个数。例如:results.length表示二维数组results的长度,也就是行数;results i.length表示二维数组results第i行的长度,也就是元素个数。,4.1 数组,4.1.4 什么是排序,所谓排序是指将一组无序的数据元素调整为一个从小到大或者从大到小排列的有序序列。排序是计算机程序设计中的一类重要运算。,在实际工作中,我们经常要将数据进行比较、排序,以便对已排序的数据进行检索。例如:学生的高考成绩需要排序后,才能进行录取工作。,排序是计算机语言编程的一个经典问题,到目前为止最常用排序方法有插入排序法、选择排序法和冒泡排序法等排序法。不论使用哪种排序方法编写Java程序,其最根本的操作就是变量的数值交换。下面我们将通过实例来介绍3种常用排序法。,4.2 方法,4.2.1 方法,1定义方法,定义方法的形式有多种,这里介绍最基本的形式。,方法类型 方法名称(参数1,参数2,参数n),方法体,其中,方法类型也就是返回值的类型,它要与方法中的return语句内的返回数值类型保持一致。如果方法没有返回值,则方法类型为void。例如,Java Application中的main()方法的类型就是void,表示该方法没有返回值。方法的返回值类型可以是普通数据类型、数组和类。,方法名称后面的小括号中,可以有方法参数,也可以没有参数。当参数为多个时,要用逗号隔开。每个参数都必须定义类型和名称,类型可以是普通变量、数组和类的对象,名称要符合Java标识符的规则。,方法体是在一对大括号内的一个或者多个语句。这些语句用来处理方法参数、类的全局变量和方法本身的局部变量中的数据,最后将结果通过return语句返回。或者,不返回任何值,只是完成指定的工作。,4.2 方法,4.2.1 方法,2变量作用范围,上面我们提到了全局变量(Global Variable)和局部变量(Local Variable),它们是根据变量被定义的位置不同而划分的。,(1)全局变量:是在类中但不在任何方法内定义的变量。全局变量可以在整个类中,包括类的所有方法中使用。,(2)局部变量:是在类中的某个方法内定义的变量。局部变量只可以在其定义的方法内使用。如果要在其他方法内或类中使用,则会产生错误。,3调用方法,定义方法后,必须调用方法才能执行其中的语句,实现其功能。根据方法类型的不同,有两种调用形式。,(1)void类型的方法。把方法调用作为一条语句。例如,print();,(2)其他类型的方法。把方法调用作为一个表达式或者表达式中的一部分。例如,sum=numbers(n);语句中方法调用numbers(n)作为赋值语句的一部分。,4.2 方法,4.2.1 方法,4return语句,return语句是在方法中使用。它的作用是终止当前方法的执行,返回到调用该方法的语句处,并继续向下执行语句。return语句有两种形式。,(1)retu
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!