Java基础就业培训教程第二章张孝祥13885.docx

上传人:you****now 文档编号:68854212 上传时间:2022-12-30 格式:DOCX 页数:56 大小:622.95KB
返回 下载 相关 举报
Java基础就业培训教程第二章张孝祥13885.docx_第1页
第1页 / 共56页
Java基础就业培训教程第二章张孝祥13885.docx_第2页
第2页 / 共56页
点击查看更多>>
资源描述

《Java基础就业培训教程第二章张孝祥13885.docx》由会员分享,可在线阅读,更多相关《Java基础就业培训教程第二章张孝祥13885.docx(56页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第2章 Java 编程基础2.1 Javaa基本语法法格式2.1.11Java代代码的落脚脚点Java中中的所有程程序代码都都必须存在在于一个类类中,用cclasss关键字定定义类,在在classs前面可可以有一些些修饰符。格格式如下:修饰符 cclasss 类名程序代代码2.1.22Java是严严格区分大大小写的例如,我们们不能将cclasss写成Cllass。2.1.33 Java是一一种自由格格式的语言言在Javaa中,所有有的程序代代码分为结结构定义语语句和功能能执行语句句,一条语语句可以写写在若干行行上,功能能执行语句句的最后必必须用分号号(;)结结束,不必必要对齐或或缩进一致致。可

2、以按按自己的意愿任意意编排,只只要每个词词之间用空空格、制表表符、换行符或大大括号、小小括号这样样的分隔符符隔开就行行。例如第第一章的例例子程序改改成下面这这种编排方方式也是可可以的:classs Tesstpuublicc staatic voidd maiin(Sttringg argss)Syystemm.outt.priintlnn(“Myy firrst jjava proggram”);用哪种代码码书写的格格式因个人人爱好而定定,但出于于可读性的的考虑不建建议使用这这种格式。M脚下留心:1. Jaava程序序中一句连连续的字符符串不能分分开在两行行中写,以以上程序如如果写成下下面这

3、种方方式是会编编译出错的的:classs Tesstpuublicc staatic voidd maiin(Sttringg argss)Syystemm.outt.priintlnn(“Myy firrst jjava proggram”);2. 功能能执行语句句的最后必必须用分号号(;)结束束,但中国国的初学者者常将这个个英文的(;)误写写成中文的的(;)自自己却找不不出错误的的原因来,对对于这样的的情况,编编译器通常常会报告“illeegal charracteer”(非法字字符)这样样的错误信信息。2.1.44Java程序的的注释为程序添加加注释可以以提高程序序的可读性性,它是写写在

4、程序里里的信息,用用来说明某某段程序的的作用和功功能。Java里里的注释根根据不同的的用途分为为三种类型型:l 单行注释l 多行注释l 文档注释第一种是单单行注释,就就是在注释释内容前面面加双斜线线(/),jjava编编译器会忽忽略掉这部部分信息。如如下例:int cc = 110; / 定义义一个整型型第二种是多多行注释,就就是在注释释内容前面面以单斜线线加一个星星形标记(/*)开头头,并在注注释内容末末尾以一个个星形标记记加单斜线线(*/)结结束。当注注释内容超超过一行时时一般使用用这种方法法,如:/* innt c = 100; / 定义一一个整型int xx=5; */第三种注释释方法

5、是文文档注释,是是以单斜线线加两个星星形标记(/*)开开头,并以以一个星形形标记加单单斜线(*/)结束束。用这种种方法注释释的内容会会被解释成成程序的正正式文档,并并能被包含含在诸如jjavaddoc之类类的工具程程序提取的的文档里,用用以说明该该程序的层层次结构及及其方法。关关于这种注注释的详细细用法,我我们会在后后面的章节节中讲解。M脚下留心:/*/中可以以嵌套“/”注释,但但不能嵌套套“ /*/”,如:下下面的注释释是非法的的:/*/*intt c = 10;*/int xx=5;*/F不得不说:我们要从从开始就养养成良好的的编程风格格,软件编编码规范中中说:“可读性第第一,效率率第二”

6、。在程序中中必须包含含适量的注注释,以提提高程序的的可读性和和易于维护护性,程序序注释一般般占程序代代码总量的的20%-50%。2.1.55Java中的的标识符Java中中的包、类、方方法、参数数和变量的的名字,可可由任意顺顺序的大小小写字母、数数字、下划划线(_)和美元符符号($)组成,但但标识符不不能以数字字开头,不不能是关键键字。下面是合法法的标识符符:indenntifiier,usernnameuser_namee_userrNamee$userrnamee 下面是非法法的标识符符:classs98.3Helloo Worrld正确的路有有一条,错错误的路千千万条,何何苦要去记记住有

7、哪些些错误的路路呢?永远远用字母开开头,尽量量不要包含含其他的符符号就行了了。2.1.66Java的关关键字和其他语言言一样,JJava中中也有许多多保留关键键字,如ppubliic,brreak等等,这些保保留关键字字不能被当当作标识符符使用。其其实大家不不用死记硬硬背到底有有哪些关键键字,知道道有这回事事就足够了了,万一不不小心把某某个关键字字用作标识识符了,编编译器就能能告诉我们们这个错误误。下面是是Java的的关键字列列表,大家家就留个初初步的印象象吧!abstrractbbooleeanbrreakbbyteccaseccatchhcharrclasssconttinueedefaa

8、ultddodouubleeelseeextenndfalseefinaalfinnallyyfloaatforrif immplemmentimporrtinsstancceof intinnterffacellongnnativvenewwnullppackaageprrivatteprootecttedpuubliccretuurnshhortstatiicstrrictffpsupperswwitchhthissthroowthrrowstranssientttrueetryvooidvoolatiilewhhilessynchhroniized注意:Jaava 没没有sizzeof、

9、gotoo、consst这些关键字字,但不能用用gotoo、consst作为变变量名。2.1.77Java中的的常量常量就是程程序里持续续不变的值值(有的书书中称其为为字面量或或实字),Java中的常量包含整型常量,浮点数常量,布尔常量等,下面我们来看一下它们是如何表示的:整型常量整型常量可可以分为十十进制,十十六进制和和八进制来来表示:十进制:0 1 22 3 44 5 66 7 88 9 注意:以十十进制表示示时,第一一位不能是是0(数字字0除外)。十六进制:0 1 22 3 44 5 66 7 88 9 aa b cc d ee f AA B CC D EE F 注意:以十十六进制表表示

10、时,需需以0x或或0X开头头,如:0x8a 0Xfff 0X99A 0xx12八进制:0 1 22 3 44 5 66 7 注意:八进进制必须以以0开头。如如:0123 045 098 046长整型:长整型必须须以L做结结尾,如:9L 1556L浮点数常量量:浮点数常量量有flooat(332位)和和doubble(664位)两两种类型,分分别叫做单单精度浮点点数和双精精度浮点数数,表示浮浮点数时,要要在后面加加上f(FF)或者dd(D),用用指数表示示也可以。注注意:由于于小数常量量的默认类类型为dooublee型,所以以floaat类型的的后面一定定要加f(F),用用以区分。如如:2e3f

11、 3.66d.4f 0ff 3.84dd 5.022ee+23ff都是合法的的。布尔常量:布尔常量用用于区分一一个事物的的正反两面面,不是真真就是假。其其值只有两两种:trrue和ffalsee。字符常量:字符常量是是由英文字字母、数字字、转义序序列、特殊殊字符等的的字符所表表示,它的的值就是字字符本身,如如:a 8 t uu00277字符常量要要用两个单单引号括起起来,Javaa中的字符符占用两个个字节,是是用uniicodee码表示的的,我们也也可以使用用uniccode码码值加上u来表示示对应的字字符。 字符串常量量:字符串常量量和字符型型常量的区区别就是:前者是用用双引号括括起来的常常

12、量,用于于表示一连连串的字符符。而后者者是用单引引号括起来来的,用于于表示单个个字符。下下面是一些些字符串常常量:Helllo Woorld 1223 Welccome nXXXX&多学两招:有些时候候,我们在在无法直接接往程序里里面写一些些特殊的按按键,比如如你想打印印出一句带带引号的字字符串,或或者判断用用户的输入入是不是一一个回车键键,等等。其其实它们都都可以用一一些转义字字符来表示示,以下一一些特殊字字符的意义义,供参考考:r表示接接受键盘输输入,相当当于按下了了回车键;n表示换换行;t表示制制表符,相相当于taable键键;b表示退退格键,相相当于Baack SSpacee;表示单单

13、引号,是双引引号;表示一一个斜杠“”。比如上面的的Wellcomee n XXX,它的运行结结果是:WelcoomeXXXnull常常量:null常常量只有一一个值,用用nulll表示,表表示对象的的引用为空空。2.2 变变量及变量量的作用域域2.2.11 变量量的概念变量就是系系统为程序序分配的一一块内存单单元,用来来存储各种种类型的数数据。根据据所存储的的数据类型型的不同,有有各种不同同类型的变变量。用一个变量量定义一块块内存以后后,程序就就可以用变变量名代表表这块内存存中的数据据。我们来来看一下:int xx=0,yy;y=x+33;第一句代码码分配了两两块内存用用于存储整整数,分别别用

14、x,yy作为这两两块内存的的变量名,并并将x标识识的内存中中的数据置置为0,yy标识的内内存中的数数据为其原原始状态,可可以认为是是一个未知知数。第二二句代码的的执行过程程,程序首首先取出xx代表的那那块内存单单元的数,加加上3,然然后把结果果放到y所所在的那块块内存单元元,这样就就完成了yy=x+33的运算。2.2.22 Java的变量类型型在Javaa中内建有有八种基本本变量类型型来存储整整数、浮点点数、字符符和布尔值值。数据类型基本数据类型引用数据类型数值型字符型(char)布尔型(boolean)整数类型(byte, short, int, long)浮点类型(float, doubl

15、e)类(class)接口(interface)数组其中引用数数据类型会会在以后章章节详细讲讲解,这里里只讲基本本数据类型型。与其他编程程语言不同同的是,JJava的的基本数据据类型在任任何操作系系统中都具具有相同的的大小和属属性,不像像C语言,在在不同的系系统中变量量的取值范范围不一样样,在所有有系统中,Java变量的取值都是一样的,如表2.1。这也是Java跨平台的一个特性。有四种数据据类型用来来存储整数数,它们具具有不同的的取值范围围,分别如如表2.11所示:类型名 大小 取值范范围byte 8位 -12281227shortt 16位 -322768327667int 32位 -2114

16、748836488214474833647long 64位 -922233772036685477758008922233772036685477758007表2.1这些类型都都是有符号号的,所有有整数变量量都无法可可靠地存储储其取值范范围以外的的数据值,因因此定义数数据类型时时一定要谨谨慎。有两种数据据类型用来来存储浮点点数,它们们是单精度度浮点型(ffloatt)和双精精度浮点型型(douuble)。浮点数在计算机内存中的表示方式比较复杂,我们在后面的课程为大家进行分析,单精度浮点型和双精度浮点型的取值范围见表2.2:类型名 大小小 取值范围围 flooat 332位 1.4E-453.4

17、E+338,-11.4E-45-3.4EE+38 douuble 664位 4.9E-3241.7EE+3088, -44.9E-324-1.77E+3008表2.2char类类型用来存存储诸如字字母、数字字、标点符符号及其他他符号之类类的单一字字符。与CC语言不同,Java的的字符占两两个字节,是是uniccode编编码的。$独家见解:计算机里里只有数值值,当你在在内存中看看到一个数数值时,这这个数值可可能代表各各种意义,比比如你看到到的文字、图图像和听到到的声音等等都是使用数字形式式来表示的。生活中中的数值也也可以代表表其他意义义,如12234可以以代表密码码,存款额额,电报信信息等。根根

18、据上下线线索,我们们能够知道道这些数值值代表的意意义。其实实,字符也也是一个数数字,当我我们要给一一个字符变变量赋值时时,就可以以直接用整整数,如:97对应应字符aa,我们们使用 cchar ch=97将字符符a赋赋值给变量量ch。998对应的的是字符b,当当在内存里里面躺着一一个99时,请请问,它对应键键盘上的哪哪个字母呢呢?大家都都能够猜出出就是字符符c。如果我们要要将字符x赋给给一个chhar变量量,该填一一个怎样的的整数呢?显然,我我们不太容容易记住每每个字符所所对应的数数字,所以以,我们就就用单引号号加上这个个字符本身身来表示那那个字符对对应的数字字,如chhar cch=x。boo

19、leean类型型用来存储储布尔值,在在Java里里布尔值只只有两个,要要么是trrue,要要么就是ffalsee。Java里里的这八种种基本类型型都是小写写的,有一一些与它们们同名但大大小写不同同的类,例例如Boooleann等,它们们在Java里里具有不同同的功能,切切记不要互互换使用。2.2.33 注意意变量的有有效取值范范围系统为不同同的变量类类型分配不不同的空间间大小,如如doubble型常常量在内存存中占八个个字节, floaat的变量量占四个字字节,byyte型占占一个字节节等,如图图2.1所示:图2.1bytte b=129;/ 编编译报错,因因为1299超出了bbyte类类型的

20、取值值范围。flooat ff=3.55;/编编译报错,因因为小数常常量的默认认类型为ddoublle型。ddoublle型常量量在内存中中占八个字字节,而JJava只只为flooat的变变量分配四四个字节的的空间,要要将八个字字节的内容容装入四个个字节的容容器,显然然有问题。改改为:floatt f=33.5f;编译就可以以通过了,因因为3.55f是一个个floaat型常数数,在内存存中只占44个字节。2.2.44基本数据据类型之间间的转换在编写程序序过程中,我我们经常会会遇到的一一种情况,就就是需要将将一种数据据类型的值值赋给另一一种不同数数据类型的的变量,由由于数据类类型有差异异,在赋值

21、值时就需要要进行数据据类型的转转换,这里里就涉及到到两个关于于数据转换换的概念:自动类型型转换和强强制类型转转换。自动类型型转换(也也叫隐式类类型转换)要实现自动动类型转换,需需要同时满满足两个条条件,第一一是两种类类型彼此兼兼容,第二二是目标类类型的取值值范围要大大于源类型型。例如,当bytte型向iint型转转换时,由由于intt型取值范范围大于bbyte型型,就会发发生自动转转换。所有有的数字类型型,包括整整型和浮点点型彼此都都可以进行行这样的转转换。请看下面的的例子:byte b=3;int xx=b; /没没有问题,程程序把b的的结果自动动转换成了了int型型了 强制类类型转换(也也

22、叫显式类类型转换)当两种类型型彼此不兼兼容,或目目标类型取取值范围小小于源类型型时,自动动转换无法法进行,这这时就需要要进行强制制类型转换。强强制类型转换的的通用格式式如下:目标类型 变量=(目标类型型)值例如:byte a;int bb;a = (bytee) b;这段代码的的含义就是是先将innt型的变变量b的取取值强制转转换成byyte型,再再将该值赋赋给变量aa,注意,变变量b本身身的数据类类型并没有有改变。由由于这类转转换中,源源类型的值值可能大于于目标类型型,因此强强制类型转转换可能会会造成你的的数值不准准确,从下下面的图中中就可以看看出强制类类型转换时时数据传递递的过程。图2.2

23、请看下面的的程序:程序清单:Convversiion.jjavapubliic cllass Conveersioon publlic sstatiic vooid mmain(Striing arggs) bytte b ;intt i = 2666 ;b = (byyte)ii ; SSysteem.ouut.prrintlln(bbyte to iint iis+ +bb) ;程序输出入入下:byte to iint iis 100字符串可以以使用加号号(+)同同其他的数数据类型相相连而形成成一个新的的字符串,读读者只要明明白二进制制与十进制制数之间的的转换关系系,就不难难明白上面面程序

24、打印印的结果了了。$独家见解:要理解类类型转换,大大家可以这这么想像,大脑前面是是一片内存存,源和目目标分别是是两个大小小不同的内内存块(由由变量及数数据的类型型来决定),将将源数据赋赋值给目标标内存的过过程,就是是用目标内内存块去套套取源内存存中的数据据,能套多多少算多少少。2.2.55 表达式式的数据类类型自动提提升我们先看下下面一个错错误程序:程序清单:Test.javaa cclasss Tesst ppubliic sttaticc voiid maain(SStrinng argss) bytee b = 5;b = (b-2); Systtem.oout.pprinttln(bb

25、); 这段代码中中,5-22的值并未未超出byyte型取取值范围,然然而当执行行这段代码码时,Java报报出如下错错误:Test.javaa:6: posssiblee losss off preecisiionfoundd : inttrequiired: bytteb = (b-2); 1 errror这是因为在在表达式求求值时,变变量值被自自动提升为为int型型,表达式式的结果也也就成了iint型,这这时要想把把它赋给bbyte型型变量就必必须强制转转换了。因因此前面代代码中粗体体的部分就就应该改成成:b = (bytee)(b-2);这种特殊情情况在编程程过程中如如果遇到了了,只要知知

26、道怎么解解决就可以以了。关于类型的的自动提升升,Javva定义了了若干适用用于表达式式的类型提提升规则。第一,所有有的bytte型、shorrt型和chaar的值将将被提升到到int型。第二,如果果一个操作作数是loong型,计计算结果就就是lonng型;第三,如果果一个操作作数是flloat型型,计算结结果就是ffloatt型;第四,如果果一个操作作数是dooublee型,计算算结果就是是doubble型。以下代码演演示了Java的的类型自动动提升规则则:程序清单:Prommote.javaaclasss Proomotee publiic sttaticc voiid maain(SStr

27、inng arrgs) byte b = 50;char c = a;shortt s = 10224;int ii = 5500000;floatt f = 5.667f;doublle d = .11234;doublle reesultt = (f * b) + (i / c) - (d * s);Systeem.ouut.prrintlln(ff * bb) + + + (i / c) + - + (dd * ss);Systeem.ouut.prrintlln(rresullt = + resuult);我们看看在在下列代码码行的类型型提升:doublle reesultt = (f

28、 * b) + (i / c) - (d * s);在第一个子子表达式ff*b中,变变量b被提升为为floaat类型,该该子表达式式的结果也也提升为ffloatt类型。接接下来,在在子表达式式i/c中,变变量c被提升为为int类型型,该子表表达式的结结果提升为为int类型型。然后,子表表达式d*s中的变变量s被提升为为doubble类型型,该子表表达式的结结果提升为为doubble类型型。最后,这三三个结果值值类型分别别是flooat类型型,intt类型,和和doubble类型型。flooat类型型加intt类型的结结果是flloat类类型。然后后floaat类型减减去douuble类型,该该

29、表达式的的最后结果果就是dooublee类型。&多学两招:Systeem.ouut.prrintlln()除除了可以在在屏幕上打打印字符串串外,还可可以直接在在屏幕上打打印其他类类型的数据据,读者再再想想Syystemm.outt.priintlnn(a+1)在屏屏幕上的打打印结果与与Systtem.oout.pprinttln(+ a+1)在屏屏幕上的打打印结果有有什么不同同呢?前者者将字符a与整整数1相加后得得到的结果果是整数998,后者者将一个空空字符串与与字符aa相连后后再与整数数1相连形成成一个新的的字符串“a1”。2.2.66 变量量的作用域域大多数程序序设计语言言都提供了了“变量

30、作用域域”(Sccope)的的概念。在在C、C+和和Javaa里,一对对花括号中中间的部分分就是一个个代码块,代码块决定定其中定义义的变量的的作用域。代代码块由若若干语句组组成,必须须用大括号号包起来形形成一个复复合语句,多个复合语语句可以嵌嵌套在另外外的一对大大括号中形形成更复杂杂的复合语语句。如: iint xx=0;intt y=00;y=yy+1; xx=x+11;代码块决定定了变量的的作用域,作作用域决定定了变量的“可可见性”以以及“存在在时间”。参考下面这这个例子:程序清单:TesttScoppe.jaavapubliic cllass TesttScoppe ppubliic s

31、ttaticc voiid maain(SStrinng argss)int xx = 112; innt q = 966; / x和qq都可用 Syystemm.outt.priintlnn(x is +x); Syystemm.outt.priintlnn(q is +q); qq = xx; /* 错误的的行,只有有x可用, q 超出出了作用域域范围 */ Sysstem.out.prinntln(x iis +x); q作为在里里层的代码码块中定义义的一个变变量,只有有在那个代代码块中位位于这个变变量定义之之后的语句句,才可使使用这个变变量,q=x语句已已经超过了了q的作用用域,所以以

32、编译无法法通过。记住这样样的一个道道理,在定义变量量的语句所属于于的那层大大括号之间间,就是这这个变量的的有效作用用范围,但但不能违背背变量先定定义后使用用的原则。M脚下留心:下面这样样书写的代代码在C和和C+里里是合法的的: intt x = 12; iint xx = 996;x = x + 4;/ x运算算后的结果果为1000 x = x - 5;/x运算算后的结果果为7,而而不是955。 在在C和C+里面面,上面的的两个x相当于定定义了两个个变量,第第二层大括括号里面的的代码对xx的操作,都都是对第二二个x的操作,不不会影响到到第一个xx。第一层层大括号里里面的代码码对x的操作,都都是

33、对第一一个x的操作,跟跟第二个xx没有任何何关系。但这种做法法在Javva里是不不允许的,因因为Javva的设计计者认为这这样做使程程序产生了了混淆,编译器会会认为变量量x已在第一层层大括号中中被定义,不不能在第二二层大括号号被重复定定义。2.2.77 局部部变量的初初始化在一个函数数或函数里里面的代码码块中定义义的变量称称为局部变变量,局部部变量在函函数或代码码块被执行行时被创建建,在函数数或代码块块结束时被被销毁。局局部变量在在进行取值值操作前必必须被初始始化或进行行过赋值操操作,否则则会出现编编译错误,如如下面的代代码:程序清单:TesttVar.javaapubliic cllass

34、TesttVar ppubliic sttaticc voiid maain(SStrinng arggs) iint xx;/应应改为innt x=0; xx=x+11; /这个个x由于没没有初始化化,编译会会报错。 SSysteem.ouut.prrintlln(xx is +x);2.3函数数与函数的的重载2.3.11函数假设我们有有一个游戏戏程序,在在程序运行行过程中,我们要不断地发射炮弹。发射炮弹的动作都需要使用一段百行左右的程序代码,我们在每次发射炮弹的地方都要重复加入这一段百行程序代码,程序会变得非常臃肿,程序的可读性也就非常差。假如我们要修改发射炮弹的程序代码,需要修改每个发射

35、炮弹的地方,很可能就会发生遗漏。几乎所有的编程语言中都要碰到这个问题,各种编程语言都将发射炮弹的程序代码从原来的主程序中单独拿出来,做成一个子程序,并为这个子程序安排一个名称,在主程序中需要使用到子程序的功能的每个地方,只要写上子程序的名称就行了,计算机便会去执行子程序中的程序代码,当子程序中的代码执行完后,计算机又会回到主程序中接着往下执行。在Java中,我们将这种子程序叫函数。我们来写一一个程序来来说明函数数的作用与与编写方式式,程序在窗口口上打印出出3个由*组成的矩矩形,如下下图所示。图2.3我们可以用用下面的程程序来实现现:程序清单:Funcc1.jaavapubliic cllass

36、 Funcc1publlic sstatiic vooid mmain(Striing arrgs)/下面是是打印出第第一个矩形形的程序代代码forr(intt i=00;i33;i+)foor(innt j=0;j5;j+)SSysteem.ouut.prrint(*);Syystemm.outt.priintlnn(); /换行行Sysstem.out.prinntln();/下下面是打印印出第二个个矩形的程程序代码forr(intt i=00;i22;i+)foor(innt j=0;j4;j+)SSysteem.ouut.prrint(*);Syystemm.outt.priintln

37、n();Sysstem.out.prinntln();/下面是是打印出第第三个矩形形的程序代代码forr(intt i=00;i66;i+)foor(innt j=0;j10;jj+)SSysteem.ouut.prrint(*);Syystemm.outt.priintlnn();Sysstem.out.prinntln();看不懂上面面程序中的的for语语句的读者者,可以先先看本章后后面关于ffor语句句的讲解,即即使你现在在不愿意去去看,也没没多大关系系,你还是是能够发现现,上面程程序中的每每一段打印出出矩形的代代码,除了了宽度和高高度不一样样,其他的的地方都一一样。我们们可以把打打印出

38、矩形形的代码作作为子程序序单独从程程序中提出出来,并用用一个“名称”来标记这这段代码,以以后再碰到到要打印矩矩形时,直直接调用这这个“名称”就可以了了。这样,我我们对打印印矩形的程程序代码只只写了一遍遍,而不用用重复书写写那么多次次了。代码码如下:程序清单:Funcc2.jaavapubliic cllass Funcc2 ppubliic sttaticc voiid drrawReectanngle(int x,innt y)forr(intt i=00;ixx;i+)foor(innt j=0;jy;j+)SSysteem.ouut.prrint( * );Syystemm.outt.p

39、riintlnn(); /换行行Sysstem.out.prinntln();publlic sstatiic vooid mmain(Striing arrgs) drawwRecttanglle(3,5);draawRecctanggle(22,4); ddrawRRectaanglee(6,110);以上代码中中,我们提提出的这段段代码就是是函数体,用用来标记这这段代码的的“名称”(drawwRecttanglle),就是函函数名,函函数名和函函数体共同组成了了函数,在在Java中中,我们也也称之为方方法。这个个函数需要要接受两个个整数类型型的参数,一一个代表矩矩形的宽度度,另一个个代表

40、这个个矩形的高高度。有时时候,函数数还需要返返回一个结结果,如果果我们要编编写一个求求解矩形面面积的函数数,该函数数就要返回回一个代表表面积的结结果,函数数的返回结结果都是有有类型的。所所以一个函函数的定义义必须由三三部分组成成,定义一一个函数的的格式如下下:返回值类型型 函数名名(参数类类型 形式式参数1,参参数类型 形式参数数2,.) 程序代代码returrn返回值值;其中:形式参数:在方法被被调用时用用于接收外外部传入的的数据的变变量。参数类型:就是该形形式参数的的数据类型型。返回值:方方法在执行行完毕后返返还给调用用它的程序序的数据。返回值类型型:函数要要返回的结结果的数据据类型。实参

41、:调用用函数时实实际传给函函数形式参参数的数据据。如果一个函函数不需要要返回值,我我们可以省省略最后的的retuurn语句句。如果你你的函数里里没有reeturnn 语句,则则编译时系系统会自动动在函数的的最后添加加一个“retuurn;”。$独家见解:如何理解解函数返回回值类型为为voidd的情况,如如上面打印印矩形的函函数,不用用返回任何何结果,那那么,返回回值类型那那里该填什什么呢?对对于这种情情况,我们们就用vooid作为为返回值类类型,意思思是“不知道是是什么类型型,可定义义函数时又又非要填写写一个返回回值类型,就就用它充数数吧!”下面我们再再编写一个个求矩形面面积的函数数,来了解解

42、一下函数数有返回值值的情况。 程序清单:Funcc3.jaava publiic cllass Funcc3 ppubliic sttaticc intt gettAreaa(intt x,iint yy)retturn x*y;publlic sstatiic vooid mmain(Striing arrgs)intt areea = getAArea(3,5); Systtem.oout.pprinttln(firsst Accreagge iss + areea); Systtem.oout.pprinttln(secoond AAcreaage iis + gettAreaa(2,44); getAArea(6,100);在上面的ggetArrea函数数中,用到到了一个“retuurn(返回值)”语句,用于于终止函数数的运行并并返回该函函数的结果果给调用者者。如果函数没没有返回值值或调用程程序不关心心函数的返返回值,可可以用下面面这样的格格式调用定定义的函数数:函数名(实实参1,实实参2,.)如上面的ggetArrea(66,10);语句。如果调用程程序需要函函数的返回回结果,我我们要用下下面这样的的格式调用用定义的函函数:变量 = 函数名(实实参1,实实参2,.)如上面innt arrea = gettAreaa(3,55);语句句。对于有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理工具

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com