Java(第4章数组和方法)2011

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JavaJava语言程序设计语言程序设计JavaJava语言程序设计语言程序设计杨巍yangwei@mail.neu.edu.cnJavaJava语言程序设计语言程序设计JavaJava编程基础编程基础——数组杨巍yangwei@mail.neu.edu.cnJavaJava编程基础编程基础3数组的定义及使用„数组„具有同一数据类型的对象的集合„一维数组,二维数组,多维数组„一组相关的存储单元„要使用Java数组,必须经过声明数组和分配内存给数组两个步骤„访问数组元素,要访问它的下标JavaJava编程基础编程基础4一维数组„一维数组的声明„一维数组分配内存数据类型数组名[]=null;数据类型[]数组名=null;数组名=new数据类型[长度];JavaJava编程基础编程基础5一维数组„一维数组声明的同时分配内存数据类型数组名[]=new数据类型[长度];inta[]=newint[4];inta[]=null;a=newint[4];JavaJava编程基础编程基础6一维数组„null„引用数据类型的默认值„表示暂时没有任何指向的内存空间inta[]=newint[4];inta[]=null;a=newint[4]a0000JavaJava编程基础编程基础7一维数组„数组中元素的表示方法„要访问数组中的元素,可以利用索引来访问„索引编号由0开始数组名[下标]inta[]=newint[4];inta[]=null;a=newint[4]aa[0]=0a[1]=0a[2]=0a[3]=0JavaJava编程基础编程基础8一维数组//ArrayDemo01.javapublicclassArrayDemo01{publicstaticvoidmain(String[]args){inta[]=newint[4];System.out.println(a[0]=+a[0]);System.out.println(a[1]=+a[1]);System.out.println(a[2]=+a[2]);System.out.println(a[3]=+a[3]);}}JavaJava编程基础编程基础9数组的初始化„编译器也能确保这种数组的初始化,因为它会将这种数组所占的内存赋默认值„整型:0„浮点类型:0.0„字符类型:'\u0000'„布尔类型:falseJavaJava编程基础编程基础10一维数组„使用new声明数组必须另外进行初始化//ArrayDemo02.javapublicclassArrayDemo02{publicstaticvoidmain(String[]args){inta[]=newint[4];for(inti=0;i4;i++){a[i]=i*2+1;}for(inti=0;i4;i++){System.out.println(a[+i+]=+a[i]);}}}JavaJava编程基础编程基础11一维数组„获得数组的长度数组名.length返回一个int型数据//ArrayDemo03.javapublicclassArrayDemo03{publicstaticvoidmain(String[]args){inta[]=newint[4];System.out.println(数组长度+a.length);}}JavaJava编程基础编程基础12一维数组„静态初始化„声明数组时就给数组赋初值„初始化时不必指出数组的大小,数组的大小将根据所给数组成员的数量决定数据类型数组名[]={初值0,初值1,…,初值n};inta[]={1,2,3};JavaJava编程基础编程基础13二维数组„二维数组„以数组为元素的数组——表格数据类型数组名[][];数组名=new数据类型[行的个数][列的个数];JavaJava编程基础编程基础14二维数组„Java中多维数组的初始化应按照从高维到低维的顺序进行inta[][]=newint[3][];a[0]=newint[2];a[1]=newint[3];a[2]=newint[4];intb[][]=newint[][4];//非法JavaJava编程基础编程基础15二维数组„二维数组的静态初始化数据类型数组名[][]={{第0行初值},{第1行初值},…{第n行初值}};JavaJava编程基础编程基础16二维数组//TwoArray.javapublicclassTwoArray{publicstaticvoidmain(String[]args){intscore[][]={{67,61},{78,89,93},{99,100,98,66,95}};for(inti=0;iscore.length;i++){for(intj=0;jscore[i].length;j++){System.out.print(score[i][j]+\t);}System.out.println();}}}JavaJava编程基础编程基础17foreach输出„foreach语句„数组的输出一般都会使用for循环„在JDK1.5后,introducedanenhancedforloopforiteratingoverarraysfor(数据类型变量名称:数组名称){…};//ForEachDemo1.javapublicclassForEachDemo1{publicstaticvoidmain(String[]args){intsa[]={67,61,8,89,93,99,100,98,66,95};for(inti=0;isa.length;i++){System.out.println(sa[i]);}}}//ForEachDemo2.javapublicclassForEachDemo2{publicstaticvoidmain(String[]args){intsa[]={67,61,8,89,93,99,100,98,66,95};for(inti:sa){System.out.println(i);}}}JavaJava语言程序设计语言程序设计JavaJava编程基础编程基础——方法杨巍yangwei@mail.neu.edu.cnJavaJava编程基础编程基础20方法(函数)„方法(函数)„一段可重复调用的代码段——反复调用„直接使用主方法main()调用的方法„方法定义,不能写在main()中,方法是不能嵌套的publicstatic返回值类型方法名称(类型参数1,类型参数2,….){程序语句;[return表达式];}JavaJava编程基础编程基础21方法(函数)„方法定义„方法命名规范要求„第一个单词的首字母小写,之后每个单词的首字母大写„参数问题„如果不需要传递参数到方法中,只要将括号写出„返回值问题„方法没有返回值,则在返回值类型处要明确写出voidJavaJava编程基础编程基础22方法„方法定义„return语句„方法中return语句可以省略„遇到return语句,方法结束执行,后续语句不执行„方法执行完后,返回到方法的调用处并向下继续执行//MethodDemo1.javapublicclassMethodDemo1{publicstaticvoidprintInfo(){charc[]={'h','e','l','l','o'};for(inti=0;ic.length;i++){System.out.print(c[i]);}System.out.println();}publicstaticvoidmain(String[]args){printInfo();printInfo();printInfo();}}//CallByValue.javapublicclassCallByValue{publicstaticvoidhalf(intn){n=n/2;System.out.println(n=+n);}publicstaticvoidmain(String[]args){intm=50;System.out.println(调用half前m=+m);half(m);System.out.println(调用half后m=+m);}}形式参数实际参数JavaJava编程基础编程基础25方法„参数传递„传值调用„传递基本数据类型mnm=5n=5//CallByRef.javapublicclassCallByRef{publicstaticvoidshow(intb[]){for(intx:b){System.out.print(x+);}System.out.println();}publicstaticvoidpassArray(intc[]){for(inti=0;ic.length;i++)c[i]=c[i]*2;}publicstaticvoidmain(String[]args){inta[]={1,2,3};System.out.println(调用前:);show(a);passArray(a);System.out.println(调用后:);show(a);}}JavaJava编程基础编程基础27方法„参数传递„传地址调用„传递引用数据类型„数组属于引用数据类型aa[0]=1a[1]=2a[2]=3c//MethodDemo2.javapublicclassMethodDemo2{publicstaticintaddOne(intx,inty){inttemp=0;temp=x+y;returntemp;}publicstaticvoidmain(String[]args){intone=addOne(10,20);inttwo=addOne(10.3f,13.3f);System.out.println(addOne的计算结果+one);}}publicclassMethodDemo3{publicstaticintaddOne(intx,inty){inttemp=0;temp=x+y;returntemp;}publicstaticfloataddTwo(floatx,floaty){floattemp=0;temp=x+y;returntemp;}publicstaticvoidmain(String[]args){intone=addOne(10,20);floattwo=addTwo(10.3f,13.3f);System.out.println(addOne的计算结果+one);System.out.println(addTwo的计算结果+two);}}JavaJava编程基础编程基础30方法的重载overload„方法重载„多个方法名称相同„方法的参数个数不同,或参数类型不同„在调用方法时,会根据参数的类型和个数自动的进行区分JavaJava编程基础编程基础31publicclassMethodDemo4{publicstaticintaddOne(intx,inty){inttemp=0;temp=x+y;returntemp;}publicstaticfloataddOne(floatx,floaty){floattemp=0;temp=x+y;returntemp;}publicstaticvoidmain(String[]args){intone=addOne(10,20);floattwo=addOne(10.3f,13.3f);System.out.println(addOne的计算结果+one);System.out.println(addOne的计算结果+two);}}JavaJava编程基础编程基础32方法的重载overload„判断下列是否为方法重载publicstaticintaddOne(intx,inty){inttemp=0;temp=x+y;returntemp;}publicstaticfloataddOne(intx,inty){floa

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功