《【精品】java实用教程第4讲方法与数组(可编辑.ppt》由会员分享,可在线阅读,更多相关《【精品】java实用教程第4讲方法与数组(可编辑.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java实用教程第4讲方法与数组第4讲 方法和数组4.1 数组Java中的数组是具有相同类型的、用一个标示符名称封装到一起的一个基本数据类型序列或对象序列。4.1.1 一维数组(1)数组的声明数组通过方括号下标操作符 来定义和使用,要声明一个数组可以使用下面的两种方式:把方括号放在类型的后面:int a;或者把方括号放在变量的后面:int a;(2)数组的初始化1)直接赋初值如:int a=1,2,3,4,5,6;在声明数组时直接赋值。/ArrayInitOne.javapublic class ArrayInitOne public static void main(String args)
2、int a=1,2,3,4,5,6;决不能把上面的语句分开使用,这样编译器会报错:int a;a=1,2,3,4,5,6;2)使用关键字new创建数组如:int a=new int10;使用new创建数组时必须指定数组的长度,然后对数组中的元素逐一赋值。逐一赋值前,数组中的元素值全部为“0”;/ArrayInitTwo.javapublic class ArrayInitTwo public static void main(String args)int a=new int10;for(int i=0;i a.length;i+)ai=i+5;a.length代表数组a的长度,即数组中元素的
3、个数,如果在创建数组时,并不知道数组要存储的元素个数,那该怎么呢?Java允许创建数组时使用变量表示数组的长度,但这个变量必须先被初始化。/ArrayInitThree.javaimport java.util.Scanner;public class ArrayInitThree public static void main(String args)Scanner scan=new Scanner(System.in);System.out.println(请输入数组的长度:);int x=scan.nextInt();int a=new intx;for(int i=0;i a.leng
4、th;i+)ai=i+5;/scanner类是个扫描类,其对象可以从键盘上获得输入可以继续修改上面的程序,把创建数组的部分去掉,继而演变为可变长参数列表,当然printArray方法的形式要稍加改变。/VariableParameter.javapublic class VariableParameter public static void printArray(int.a)/可变参数列表:java类型后跟三个点for(int i=0;i a.length;i+)System.out.print(ai+);System.out.println();public static void mai
5、n(String args)printArray(1,2,3);printArray(1,2,3,4,5);printArray(1,2,3,4,5,6,7);(3)数组的遍历1)使用循环遍历数组中元素;2)使用foreach遍历数组中元素;3)使用Arrays类中的toString方法遍历数组中元素。下面程序展示了常用的遍历数组的方法:/ArrayTraversal.javaimport java.util.Arrays;public class ArrayTraversal public static void main(String args)int b=1,2,3,4,5,6,7,8,
6、9,10,;/使用for循环遍历数组bfor(int i=0;i b.length;i+)System.out.print(bi+);System.out.println();/使用foreach遍历数组bfor(int x:b)System.out.print(x+);System.out.println();/使用Arrays中的toString方法遍历数组bSystem.out.println(Arrays.toString(b);4.1.2 二维数组(1)数组的声明:如:int a;int a;(2)数组的初始化(将在下面的程序中体现)1)直接赋初值2)使用关键字new创建数组3)使用
7、关键字new时直接赋初值(3)数组的遍历二维数组的初始化也有三种方式,下面程序展示了这三种初始化数组的方式:/DyadicArrayInit.javapublic class DyadicArrayInit public static void main(String args)/声明数组时赋值int a=1,2,3,4,5,6,7,8,9;/使用关键字new创建数组,然后逐一赋值int b=new int23;for(int i=0;i b.length;i+)for(int j=0;j bi.length;j+)bij=i+j;/使用关键字new创建数组时赋值int c=new int10
8、,20,30,40,50,60;/打印三个数组,对数组进行循环遍历for(int i=0;i a.length;i+)for(int j=0;j ai.length;j+)System.out.print(aij+);System.out.println();for(int i=0;i b.length;i+)for(int j=0;j bi.length;j+)System.out.print(bij+);System.out.println();for(int i=0;i c.length;i+)for(int j=0;j ci.length;j+)System.out.print(cij
9、+);System.out.println();4.2 方法Java中习惯把“函数”称作“方法”,其基本组成包括:修饰符、返回值、方法名、参数和方法体。如:public static int getCount(int i,int j)/方法体 4.2.1 方法的调用方法的调用方法可以有返回值,如getCount方法。也可以没有返回值,这是其返回类型为void,如:public static void showCount(int i,int j)/方法体调用有返回值的方法时,有两种方式,第一种方式是把其赋值给一个变量,如:int count=getCount(3,4);第二种方式是直接输出其返回
10、值,如:System.out.println(getCount(3,4);如果方法的返回值为void,那么对其调用就只能是在main方法或其它方法中直接列出这个方法的名字了。如:public static void main(String args)showCount(3,4);4.2.2 变量的作用域变量的作用域在Java中,作用域是由花括号“”的位置决定.在方法体中声明的变量或方法的参数称为局部变量,局部变量是有作用域的,其作用域从声明变量的地方开始,直到包含该变量的块结束为止。如:public class ScopeTest public void scope(int n)/此处只有n可
11、用int i=1;/此处只有i和n可用int j=10;/此处i、n和j都可用/此处只有i和n可用/此处i、n和j都不可用4.2.3 参数的传递Java包含两种类型的参数,基本数据类型的参数和复合数据类型的参数。(1)基本数据类型的参数传递:传数值。基本数据类型有八个,分别是:boolean、char、byte、short、int、long、float和double。基本数据类型作为参数时,传递的是数值(2)复合数据类型的参数传递:传地址值。复合数据类型包括类型性、接口类型、数组类型等。复合数据类型作为参数时,传递的是地址。4.2.4 方法重载在一个类中可以定义多个同名的方法,这称为方法重载。
12、只能通过参数的不同来区分这些同名的方法,参数的不同包括参数的个数不同和参数的类型不同。如果试图通过方法返回类型的不同来区分重载方法,编译器会报错。如:/FunctionOverloading.javapublic class FunctionOverloading public static void methodOne(int i)public static void methodOne(double i)public static void methodOne(int i,int j)public static int methodOne(int i)return i;/编译错误public static void main(String args)4.3本讲小结本讲第一节主要讲述了数组的相关内容,包括一维数组的声明、初始化、元素的遍历、元素的操作,二维数组的声明、初始化等。第二节主要讲述了方法的相关内容,包括方法的定义、方法的调用、方法的参数传递及方法重载讲后练习1、编写程序:实现十进制数和十六进制数之间的相互转换。2、编写程序:打印1000以内的所有回文素数。如131、313、757。3、编写程序:打印1000以内的所有反素数。如17是素数、71也是素数,称17和71是一对反素数。