java程序设计第三章PPT详细讲解.ppt_第1页
java程序设计第三章PPT详细讲解.ppt_第2页
java程序设计第三章PPT详细讲解.ppt_第3页
java程序设计第三章PPT详细讲解.ppt_第4页
java程序设计第三章PPT详细讲解.ppt_第5页
已阅读5页,还剩64页未读, 继续免费阅读

下载本文档

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

文档简介

标识符、关键字和类型表达式与程序流控制数组,第三章JAVA语言基础,标识符,标识符包括:变量名,类名,方法(函数)名以字母,_,或$开头大小写敏感,且长度没有限定如:usernameuser_name_sys_varl$change,风格约定:_,$不作为变量名,方法名开头变量名、方法名首单词小写,其余单词只有首字母大写。如anyVariableName接口名、类名首单词第一个字母大写。如AnyClassName常量:完全大写ANYCONSTANTVALUE注释:/注释一行/*/注释一行或多行/*可用javadoc命令转化为HTML文件*/,标识符,关键字,*当前不使用*为Java2增加的,Java基本数据类型,逻辑型文字型整数类型浮点型,逻辑型:boolean,取值:true,false如:booleantruth=true;,基本数据类型-逻辑型,文字型:char、Stringchar:16位的unicode(国际码)字符。如,charmychar=Q;unicode字符集是一套字符编码系统,可以支持各类文字的字符,达34168个字符。定义形式:a;t;u?String是类,Stringgreeting=”GoodMorning!n”;,基本数据类型-文字型,char型程序例,publicclassCharToIntpublicstaticvoidmain(Stringargs)intintResult,intVar=10;charcharVar=语;intResult=intVar+charVar;System.out.println(Thecharis:+charVar);System.out.println(ThecharsUnicodeis:u+Integer.toHexString(charVar);System.out.println(Theintvaluecorrespondingtothecharis:+newInteger(charVar).toString();System.out.println(Int+intVar+addsthechar,theresultis:+intResult);,改改程序看结果,System.out.println(Thecharis:+intResult);System.out.println(Thecharis:+(char)intResult);System.out.println(Thecharis:+charVar+1);System.out.println(Thecharis:+(char)(charVar+1);,整数类型:byte,short,int和long,类型长度取值范围byte8位-2727-1short16位-215215-1int32位-231231-1long64位-263263-1,基本数据类型-整数类型,Java中缺省整型是int可有3种形式:十进制、八进制、十六进制十进制八进制十六进制int2407710XAB07long24L0771L0XAB07L,整型常量,浮点型:float和double长度:float:32位double:64位缺省是double类型,如3.14(double型)表达方法:E或e-科学记数法6.02e23F或f-表示float类型,6.02e23FD或d-表示double型,2.718D,基本数据类型-浮点型,例3-2基本数据类型,Assign.java,改改程序看结果,floatz=3.414;doublew=3.1415f;c=u0001;str=Hitoutttheren;str=Hi0outttheren;x=6.0;,exp3-3SomeConstTest.java,改改程序看结果,System.out.println(Float.NaN=+0/0);,类的初步概念,“日期”类型的两种不同表达:方式一:intday,month,year;/定义年、月、日intd1,m1,y1;/定义一个日期intd2,m2,y2;/定义另一个日期方式二:classDateintday;intmonth;intyear;voidsetDate(inta,intb,intc).Java用class创建新的类型。,structDateintday;intmonth;intyear;,类的变量的声明与引用,在Java中,一个类声明后,不能直接引用,必须经过实例化:基本类型声明后,直接开空间。如:inta;a=12;非基本类型不直接开空间,而是开辟引用空间,数据空间没有开。只有通过实例化,才能给数据开辟空间。,记不记得电视机遥控器?,类的变量的声明与引用,例:1Datetoday;2today=newDate();,today,遥控器,电视机,引用变量之间的赋值,1Datea,b;2a=newDate();3b=a;,0 xabcd,0 xabcd,变量及作用域,变量的定义:变量的值是可以变化的,它的定义包括变量名、变量类型和作用域几个部分。注意以下几点:1)变量名必须是一个合法的标识符。变量名应具有一定的含义,以增加程序的可读性。2)变量类型可以为前面所说的任意一种数据类型。,3)声明一个变量的同时也就指明了变量的作用域,变量的作用域指明可访问该变量的一段代码。按作用域来分,变量可以有下面几种:局部变量、类成员变量、方法参数、异常处理参数。局部(local)变量是在一个方法内定义的变量,也被称作自动(automatic)、临时(temporary)或栈(stack)变量。当执行进入一个方法时,局部变量被创建,当执行离开该方法时,局部变量被清除,它的作用域为它所在的代码块(整个方法或方法中的某块代码)。在成员函数内定义的变量对该成员变量是“局部的”,因而,你可以在几个成员函数中使用相同的变量名而代表不同的变量。在一个确定的域中,变量名应该是唯一的。通常,一个域用大括号“”和“”来划定。,相对于一个方法的“局部”变量,如果在初始化之前想使用它,编译器会提示出错,如下面这样就是不允许的:voidf()inti;i=i+1;,exp3-4TestInit.java,inty;,当一个对象被创建时,实例变量在分配存储器的同时被值初始化。初始化值如下表所示。,补充例1:Java中的数据类型-SimpleTypes.java补充例2:Java中变量的作用域-Scope.java补充例3:Java中对象的初始化-InitVal.java,运算符与表达式,与C不同之处:Java是强类型语言,类型限制比C严格,运算符的操作对象的类型会受到更多限制。Java不提供指针运算符,增加了对象操作符instanceof,字符串运算符+和零填充的右移等。,算术运算操作符:+,-,*,/,%,+,-关系操作符:,=,Stringname=“Pete”+“Seymour”;Stringtitle=salutation+name;则title值:Dr.PeteSeymour,StringandStringBuffer,一起看看网上的解释String是不可变类型StringBuffer是可变类型String赋值后不能改变StringBuffer则没有这个问题在内容需要变化的时候尽量用StringBuffer比如拼SQL语句的时候最好用StringBufferByhardas(孤魂一笑),String对象是不能更改的,java还有另外的一个标准库StringBuffer,这个对象是可以被直接更改的。当你对字符串进行转换的时候,如增加,删除,应该使用StringBuffer.如果你有静态字符串,只是把他们连接起来,String对象是最佳选择!Byzeusguitar(选择),Stringmsg=“kkkk”;msg=“llll”你没有改变msg的内容,实际上是你抛弃了最初的“kkkk”对象,重新生成了llll对象。Stringmsg=“kkkk”;Stringm=msg;msg=“llll”现在你得到了两个对象“kkkk”,“llll”.msg和m是引用,好比是个指向对象的东东。Bywkrain(戈壁一沙鸥),右移操作符和,:带符号右移10102111010.:无符号右移,以0填充10102001010.,补充例6:Java中位运算符的使用-BitOp.java,Java强制类型转换,一般形式:(type)expression例:(float)x/2对强制类型转换的限制:整型与浮点型可以相互转换,但基本类型和数组、对象等复合类型之间不能互相转换。,补充例7:Java中的类型转换-TypeConversion.java,程序流控制,whiledowhileforifelseswitch,while语句举例,例3-6:WhileDemo.java补充例8:用while语句计算10的阶乘-WhileOp.java,StringcopyFromMe=g;,do-while语句示例,例3-7:DoWhileDemo.java补充例9:用do-while语句计算10的阶乘-DoWhileOp.java,StringcopyFromMe=g;,for语句,例3-8:ForDemo.java补充例10:用for语句计算10的阶乘-ForOp1.java补充例11:for语句的嵌套-ForOp2.java,*,if语句,例3-9:IfElseDemo.java补充例12:求三个数中的最大者-MaxOfThree.java,switch语句,例3-10:SwitchDemo.javaSwitchDemo2.java补充例13:根据不同的四则运算符(+、-、*、/),对两个实数执行相应的运算并输出结果-SwitchOp2.java,循环跳转语句,breaklabel从switch语句、循环语句中跳出。continuelabel跳过标号循环体的其余部分,不带label跳过最内层循环的剩余语句。label:statement,例3-11:BreakDemo.java例3-12;3-13例3-14ContinueWithLabelDemo.java(请考虑不用label如何处理?),数组,声明数组数组的创建与初始化多维数组数组拷贝,数组,数组中的元素都是同一种类型。数组的长度在创建的时候确定,并且在创建后固定不变。如果要建立存储不同类型数据的集合,或者要求集合的长度可以动态变化,可以使用Collection(集合)类。,数组声明,可以声明基本类型和类类型的数组声明包含两部分:数组类型与数组名称。格式:C,C+标准形式:chars;Pointp;chars;Pointp;,推荐使用,数组的声明,在Java中数组作为类来处理,所以数组声明并不创建实例对象,而是创建一个可用来引用该数组的引用。,数组的创建与初始化,可以象其它对象一样,使用new来创建,格式:newelementTypearraySize基本类型数组例:chars;s=newchar20;/创建有20个字符的数组,尝试画出内存布局图,例3-15:ArrayDemo.java,对象数组,除了基本类型以外,还可以创建对象类型的数组。Pointp;/创建1个引用p=newPoint100;/创建100个引用创建100个Point对象:p0=newPoint();p1=newPoint();,数组的初始化,数组元素是被初始化的。字符串-u0000,null对象数组-null用初始值创建数组inta=1,2,3;Stringnames=“Jack”,“Wang”,“Lee”;Dated=newDate(),newDate(),newDate();,对象数组举例,例3-16:ArrayOfStringsDemo.java,多维数组,声明方法inta;或inta;实例化a=newint44;/直接为每一维分配内存,生成规则数组a=newint4;/只有最后维可以不给值,其它都要给,可/以生成不规则数组a0=newint10;a1=newint5;数组成员变量length-数组元素个数:a=newint1012;a.length=10;a0.length=12;,多维数组示例,补充例:ArrayOfArrays.java例3-17:ArrayOfArraysDemo1.java例3-18:ArrayOfArraysDemo2.java,数组拷贝,数组一旦创建,其大小不可变,但已有的数组变量可指向全新的数组;该数组原指的内容丢失inta=newint6;a=newint10;/不必重新声明a数组变量之间赋值是引用赋值。1inta=newint6;2intb;3b=a;,数组数据的复制,通过拷贝数组的函数。System.arrayCopy(Objectsource,intsrcIndex,Objectdest,intdestIndex,intlength),数组拷贝,数组拷贝示例,例3-19:ArrayCopyDemo.java补充例ArrayCopy.java,数组拷贝示例,运行结果:,数组排序,思考:对数组9,1,3,4,2,5,7,6,8进行排序,如何写程序?补充例:ArraySort.java,说明:,在编制程序中可以直接使用类Arrays提供的某个sort方法,来对数组排序。sort方法常见的使用形式如下:publicstaticvoidsort(Xxxa);该方法用改进的快速排序方法对指定

温馨提示

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

评论

0/150

提交评论