《Java程序设计实战案例教程教学课件汇总完整版电子教案.pptx》由会员分享,可在线阅读,更多相关《Java程序设计实战案例教程教学课件汇总完整版电子教案.pptx(492页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java平台安装目录/Contents01020304Java概述JDK的安装Eclipse安装与使用第一个Java程序的编写01Java概述4 一种高级计算机语言可编写跨平台应用软件完全面向对象由SUN公司(已被Oracle公司收购)于1995年5月推出简单易用、安全可靠应用领域广泛Java概述5 Java SE 标准版(Java Platform Standard Edition)Java的三大技术平台为开发普通桌面和商务应用程序提供的解决方案Java EE 企业版(Java Platform Enterprise Edition)Java ME 小型版(Java Platform Mic
2、ro Edition)为开发企业级应用程序提供的解决方案为开发电子消费产品和嵌入式设备提供的解决方案Java的三大技术平台02JDK的安装7 lJava Development Kit,即Java开发工具包lSUN公司提供了一套Java开发环境l整个Java的核心l包括Java编译器、Java运行环境、Java工具、Java基础类库等JDKJREl lJava Runtime EnvironmentJava Runtime Environment,即,即JavaJava运行环境运行环境l lJREJRE通常已包含在通常已包含在JDKJDK中中l l若仅用于运行若仅用于运行JavaJava程序,
3、而非程序,而非JavaJava开发,可以直接下载开发,可以直接下载JREJRE,并,并在系统中安装即可。在系统中安装即可。JDK-JRE-JVM的概念ljava virtual machine,即Java虚拟机l整个java实现跨平台的最核心的部分l所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。JVM8 JDK、JRE及JVM的关系lJDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。lJRE(Java Runtime Environment)是运
4、行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。lJVM(Java Virtual Machine)是Java虚拟机的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。9 JDK的安装Oracle公司提供了多种操作系统的JDK,可以根据自己使用的操作系统,从Oracle官方网站下载相应的JDK安装文件,具体步骤如下:双击从Oracle官网下载的安装文件,进入JDK安装界面单击【下一步】按钮进入JDK的自定义安装界面在自定义安装功能和路径界面选择安装目录,或直接采用默认的安装目录,单击【确定】按钮在对所有的安装选项做出选择后,单击【下一步
5、】按钮开始安装JDK。安装完毕后会进入安装完成界面单击【关闭】按钮,关闭当前窗口,完成JDK安装1234510 JDK的安装JDK安装完毕后,会在硬盘上生成一个目录,该目录被称为JDK安装目录。如下图所示:03Eclipse的安装与使用12 112345为了提高程序的开发效率,大部分软件开发人员都是使用集成开发工具(IDE)来进行Java程序开发的。EclipseJava开发工具Eclipse在实际项目开发过程中,由于使用记事本编写代码速度慢,且不容易排错,所以程序员很少用它来编写代码。在本课程中,将使用一种Java常用的IDE集成开发环境:EclipseEclipse由IBM开发,功能完整且
6、成熟;开源、可扩展Eclipse具有强大的代码编排功能,可以帮助程序开发人员完成语法修正、代码修正、补全文字、信息提示等编码工作13 Eclipse的安装Eclipse是针对Java编程的集成开发环境(IDE),登录Eclipse官网http:/www.eclipse.org免费下载。Eclipse安装时只需将下载好的ZIP包解压保存到指定目录下(例如D:eclipse)就可以使用了。Eclipse的启动非常简单,直接在Eclipse安装文件中运行eclipse.exe文件即可,接下来会出现如下图所示的启动界面。14 Eclipse的使用lEclipse启动完成后会弹出一个对话框,提示选择工作
7、空间(Workspace),如下图所示:l工作空间用于保存Eclipse中创建的项目和相关设置。此处使用Eclipse提供的默认路径为工作空间,也可以单击【Browse】按钮来更改,工作空间设置完成后,单击【OK】按钮即可。注意:Eclipse每次启动都会出现选择工作空间的对话框,如果不想每次都选择工作空间,可以将此图【Usethisasthedefaultanddonotaskagain】复选框选中,这就相当于为Eclipse工具选择了默认的工作空间,再次启动时将不再出现提示对话框。15 Eclipse的使用l在Eclipse欢迎界面单击关闭欢迎界面窗口,就进入Eclipse工作台界面,Ec
8、lipse工作台主要由标题栏、菜单栏、工具栏、透视图四部分组成,如下图所示:03第一个Java程序的编写17 第一个Java程序的编写通过前面的学习,读者对Eclipse开发工具应该有了一个基本的认识。接下来通过Eclipse创建一个Java程序,并实现在控制台上打印“Hello World!”,具体步骤如下:新建Java项目在当前项目中新建一个包在当前包中新建一个Java类在类文件中编写main()方法,并在方法中编写一条输出语句:System.out.println(“Hello World”);01020304运行当前的类文件在控制台查看结果变量与常量目录/Contents0102030
9、405Java代码的基本格式Java中的关键字Java中的常量Java中的变量数据类型及类型转换01Java代码的基本格式21 Java代码的基本格式Java中的程序代码都必须放在一个类中。类需要使用class关键字定义,在class前面可以有一些修饰符,格式如下:注意:(1)Java中的程序代码可分为结构定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能。(2)每条功能执行语句的最后都必须用分号(;)结束。(3)Java语言严格区分大小写。22 Java中的标识符在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如,包名、类名、方法名、参数
10、名、变量名等,这些符号被称为标识符。标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但不能以数字开头,不能是Java中的关键字。定义标识符时还应该遵循以下规则:1、包名所有字母一律小写。例如:cn.itcast.test。2、类名和接口名每个单词的首字母都要大写。如:ArrayList、Iterator。3、常量名所有字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH。4、变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写。例如:lineNumber、getLineNumber。5、在程序中,应该尽量使用有意义的英文单词来定义标识符
11、,使得程序便于阅读。例如使用userName表示用户名,password表示密码。02Java中的关键字24 Java中的关键字关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字。和其它语言一样,Java中保留了许多关键字,例如,class、public等。下面列举的是Java中所有的关键字。03Java中的常量26 Java中的常量常量就是在程序中固定不变的值,是不能改变的数据。在Java中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。整型常量:整数类型的数据。例:125浮点型常量:就是在数学中用到的小数,分为float单精度浮点数和double双精度浮点数两种类型。例
12、:2.36字符常量:用于表示一个字符,用一对单引号()引起来,它可以是英文字母、数字、标点符号、以及一些特殊字符。例:k字符串常量:用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号(“”)引起来。”king”布尔常量:即布尔型的两个值true和false,用于区分真与假。例:truenull常量:只有一个值null,表示对象的引用为空。04Java中的变量28 Java中的变量计算机使用内存来存储计算时所使用的数据。程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,这些内存单元我们称之为变量。每个内存单元都用一个标识符来标识,也就是变量名;内存
13、单元中存储的数据就是变量的值。数据各式各样,要先根据数据的类型为它申请一块合适的空间29 Java中的变量房间房间 房间名字房间名字 房间类型房间类型 入住的客人入住的客人变量变量 变量名变量名 变量类型变量类型 变量值变量值对应对应30 变量的声明语法1 数据类型 变量名;变量名=值;举例:int age;age=19;语法2 数据类型 变量名=值;举例:int age=19;31 变量的赋值左下图第二行代码的作用就是为变量赋值,在执行第二行代码时,程序首先取出变量x的值,与3相加后,将结果赋值给变量y,此时变量x和y在内存中的状态发生了变化,如图所示。05数据类型及类型转换33 变量的数据
14、类型Java是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。34 变量的数据类型1、整数类型变量用来存储整数数值,即没有小数部分的值。整数类型分为4种不同的类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。占用空间指的是不同类型的变量分别占用的内存大小取值范围是变量存储的值不能超出的范围为一个long类型的变量赋值时需要注意一点,所赋值的后面要加上一个字母“L”(或小写“l”),说明赋值为long类型。35 变量的数据类型2、浮点数类型变量浮点数类型变量用来存储
15、小数数值。浮点数类型分为两种:单精度浮点数(float)、双精度浮点数(double),double型所表示的浮点数比float型更精确。在取值范围中,E表示以10为底的指数,E后面的“+”号和“-”号代表正指数和负指数,例如1.4E-45表示1.4*10-45。在为一个float类型的变量赋值时需要注意一点,所赋值的后面一定要加上字母“F”(或“f”),而为double类型的变量赋值时,可以在所赋值的后面加上字符“D”(或“d”),也可不加。在程序中也可以为一个浮点数类型变量赋予一个整数数值.36 变量的数据类型3、字符类型变量用于存储一个单一字符,在Java中用char表示。每个char类
16、型的字符变量都会占用2个字节。赋值时,要用英文半角格式的单引号()把字符括起来,如a,也可以赋值为065535范围内的整数,计算机会自动将这些整数转化为所对应的字符,如数值97对应的字符为a。37 变量的数据类型4、布尔类型变量布尔类型变量用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和false。具体示例如下:38 数据的类型转换当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。根据转换方式的不同,数据类型转换可分为两种:自动类型转换强制类型转换39 数据的类型转换1、自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需
17、要显式地进行声明。要实现自动类型转换,必须同时满足两个条件,第一是两种数据类型彼此兼容,第二是目标类型的取值范围大于源类型的取值范围。40 数据的类型转换1、自动类型转换整数类型之间可以实现转换,如byte类型的数据可以赋值给short、int、long类型的变量,short、char类型的数据可以赋值给int、long类型的变量,int类型的数据可以赋值给long类型的变量整数类型转换为float类型,如byte、char、short、int类型的数据可以赋值给float类型的变量。其它类型转换为double类型,如byte、char、short、int、long、float类型的数据可以赋
18、值给double类型的变量。41 数据的类型转换2、强制类型转换强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。强制类型转换的格式如下所示:Java中的运算符目录/Contents0102030405算数运算符赋值运算符比较运算符逻辑运算符运算符的优先级01算术运算符45 算数运算符算术运算符就是用来处理四则运算的符号,这是最简单、最常用的运算符号。46 算数运算符(1)在 进 行 自 增(+)和自减(-)的运算时,如果运算符放在操作数的前面则是先进行自增或自
19、减运算,再进行其它运算。反之,如果运算符放在操作数的后面则是先进行其它运算再进行自增或自减运算。算术运算符看上去比较简单,也很容易理解,但在实际使用时有很多需要注意的问题,具体如下:(2)在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有小数参与,得到的结果会是一个小数。(3)在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。02赋值运算符48 赋值运算符赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量,表中列出了Java中的赋值运算符及用法。49 赋值运算符在赋值运算符的使用中,需要注意以下几个问
20、题:(1)在Java中可以通过一条赋值语句对多个变量进行赋值。(2)除了“=”,其它的都是特殊的赋值运算符,以“+=”为例,x+=3就相当于x=x+3,首先会进行加法运算x+3,再将运算结果赋值给变量x。-=、*=、/=、%=赋值运算符都可依此类推。03比较运算符51 比较运算符比较运算符用于对两个数值或变量进行比较,其结果是一个布尔值,即true或false。比较运算符在使用时需要注意一个问题,不能将比较运算符“=”误写成赋值运算符“=”。04逻辑运算符53 逻辑运算符逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔型。54 逻辑运算符在使用逻辑运算符的过程中,需要注意以下几个细节:
21、(1)逻辑运算符可以针对结果为布尔值的表达式进行运算。如:x 3&y!=0。(2)运算符“&”和“&”都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false。当运算符“&”和“&”的右边为表达式时,两者在使用上还有一定的区别。在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&”进行运算,当左边为false时,右边的表达式不会进行运算,因此“&”被称作短路与。(3)运算符“|”和“|”都表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为false时,其结果才为false
22、。同与操作类似,“|”表示短路或,当运算符“|”的左边为true时,右边的表达式不会进行运算。(4)运算符“”表示异或操作,当运算符两边的布尔值相同时(都为true或都为false),其结果为false。当两边布尔值不相同时,其结果为true。05运算符的优先级56 运算符的优先级在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,把这种顺序称作运算符的优先级。分支结构-1 if语句目录/Contents010203单分支 if 语句双分支 if else 语句多分支 if else if else 语句01单分支 if 语句60 单分支 if 语句if语句是指如果
23、满足某种条件,就进行某种处理,其语法格式如下所示:上述语法格式中,判断条件是一个布尔值,当值为true时,才会执行中的语句。61 单分支 if 语句if语句的执行流程如下图所示。02双分支 if else 语句63 双分支 if else 语句ifelse语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理,其语法格式如下所示:64 双分支 if else 语句ifelse语句的执行流程如下图所示。65 双分支 if else 语句在Java中有一种特殊的运算叫做三元运算,它和if-else语句类似,语法如下:三元运算通常用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的
24、值,否则结果为表达式2的值。03多分支 if else if else 语句67 多分支 if else if else 语句ifelse if else语句用于对多个条件进行判断,进行多种不同的处理,其语法格式如下所示:68 多分支 if else if else 语句ifelse ifelse语句的执行流程如下图所示:分支结构-2 switch语句70 Switch条件语句switch语句也是一种很常见的选择语句。和if条件语句不同,它只能针对某个表达式的值做出判断,从而决定执行哪一段代码。使用switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的
25、值和某个目标值匹配时,会执行对应case下的语句,switch语句的基本语法见右图:71 Switch条件语句例如,在程序中使用数字17表示周一到周日如果想根据某个输入的数字输出中文格式的星期值,可以通过右边所示的代码来实现。72 Switch条件语句switch case 语句有如下规则:switch 语句中的变量类型可以是:byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。case
26、 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量。当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没
27、有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。循环结构-1 while和dowhile语句目录/Contents0102while循环语句do while 语句03while 与 do while 的区别01while循环语句76 while循环语句while语句和if条件语句有点类似,都是根据条件判断来决定是否执行后面的代码,区别在于,while循环语句会反复地进行条件判断,只要条件成立,内的执行语句就会执行,直到条件不成立,while循环结束。while循环语句的语法结构如下所示:77 while循环语句while循环语句的执行流程如下图所示。
28、02do while 语句79 dowhile循环语句dowhile循环语句和while循环语句功能类似先执行一次循环体,然后在判断布尔表达式是不是true,如果是就继续执行循环体,在判断布尔表达式,直到为false就结束循环。while循环语句的语法结构如下所示:80 dowhile循环语句dowhile循环语句的执行流程如下图所示。03while 与 do while 的区别82 while 与 dowhile 的区别while是先判断在执行如果判断不成立,就不会执行;dowhile是先执行再判断,不管判断是否成立都会执行一次 int a=8;while(a10)System.out.pr
29、intln(“a的值为:”+a);System.out.println(程序结束”);输出结果:程序结束 int a=8;doSystem.out.println(“a的值为:”+a);while(a10);System.out.println(程序结束”);输出结果:a的值为8 程序结束循环结构-2 for语句目录/Contents0102for循环语句循环嵌套语句01for循环语句86 for循环语句for循环语句是最常用的循环语句,一般用在循环次数已知的情况下,其语法格式如下所示:在上述语法格式中,for后面的()中包括三部分内容,初始化表达式、循环条件和操作表达式,它们之间用“;”分隔
30、,中的执行语句为循环体87 for循环语句如果用表示初始化表达式、表示循环条件、表示操作表达式、表示循环体,则for循环的执行流程如下所示:02循环嵌套语句89 循环嵌套语句嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、dowhile、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环,格式如下:循环结构-3 跳转语句目录/Contents0102break 语句continue 语句02break 与 continue 的区别01break 语句93 break 语句跳转语句用于实现循环过程中流程的跳转,Java中
31、的跳转语句有break和continue。break语句:直接跳出当前循环体(while、for、do while)或程序块(switch)。其中switchcase执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。一旦执行break,整个switch语句立刻结束。用在循环语句中时,一旦执行,整个循环结束。for(inti=0;i5;i+)if(i=2)System.out.println(“跳出for循环);break;System.out.println(i);System.out.println(“程序结束”);02conti
32、nue语句95 continue 语句continue语句:用在循环语句中,它的作用是终止本次循环,执行下一次循环。一旦执行,立刻跳过当前循环剩余内容,马上开始下一次循环。for(inti=0;i5;i+)if(i=2)System.out.println(“跳出本次循环,进行下一次循环);continue;System.out.println(i);System.out.println(“程序结束”);03break 与 continue 的区别97 break 与 continue 的区别前面的例子,运行后的结果比较:在break测试中,当 i=2,直接跳出了 for 循环,不再执行之后的
33、循环测试 continue时,当 i=3,直接跳过了continue之后的输出语句,进入下一次循环。因此,break与continue的区别如下:break是跳出来整个循环,不会再执行接下来的循环。continue至少跳过一次循环,后面的循环如果满足条件,依旧会执行。方方 法法99 情境引入需求:假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹。发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。方法概述100 情境引入为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来,放在一个中,并为这段代码起个名字
34、,这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了。上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,程序在需要发射炮弹时调用该方法即可。方法概述101 方法的定义及格式完成特定功能的一段代码方法:修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2)方法体;return 返回值;格式:102 方法格式的解释说明n修饰符修饰符 public staticn返回值类型返回值类型 用于限定返回值的数据类型n方法名方法名 一个名称要符合命名规则,用于调用方法n参数类型参数类型 限定调用方法时传入参数的数据类型103 方法格式的解释说明n参数名参数名 一个变量
35、名,接收调用方法时传入的参数n方法体方法体 完成功能的代码nreturnreturn 结束方法以及返回方法指定类型的值 n返回值返回值 由return带回的结果,返回给调用者104 方法案例返回值类型返回值类型 明确功能结果的数据类型参数列表参数列表 明确有几个参数,以及参数的类型如何写一个方法呢?两个明确案例:求两个整型数据之和105 有返回值的方法练习练习一:键盘录入两个数据,返回两个数中的较大值练习二:键盘录入两个数据,比较两个数是否相等106 有返回值的方法调用单独调用,没有意义输出调用,有意义,但不推荐,因为不一定需要把结果输出赋值调用,推荐方式107 方法注意事项n方法不调用不执行
36、n方法与方法是平级关系,不能嵌套定义n方法定义的时候参数之间用逗号隔开n方法调用的时候不用再传递数据类型n如果方法有明确的返回值,一定要有return带回一个值108 没有返回值的方法调用没有返回值的方法没有返回值的方法就是返回值类型为返回值类型为voidvoid的方法的方法只能单独调用109 返回值为void类型的方法练习练习一:键盘录入行数和列数,输出对应的星形练习二:键盘录入一个数据n(1=n+value);6.2.1 System类的常用方法Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。每次使用Java命令启动虚拟机都对应一个Runtime实例,并且只有一个实
37、例,因此该类采用单例模式进行设计,对象不可以直接实例化。可以通过getRuntime()方法获取实例,并使用下列方法获取信息。availableProcessors():获取处理器个数。freeMemory():获取空闲内存个数。maxMemory():最大可用内存数量。6.2.2 Runtime类的常用方法6.3Math类和Random类Math类是数学操作类,提供了一系列用于数学运算的静态方法,包括求绝对值、三角函数等。Math类中有两个静态常量PI和E,分别代表数学常量和e。由于Math类比较简单,因此初学者可以通过查看API文档来学习Math类的具体用法。在JDK的java.util包
38、中有一个Random类,它可以在指定的取值范围内随机产生数字。在Random类中提供了两个构造方法。6.3 Math类和Random类方法声明方法声明功能描述功能描述Random()构造方法,用于创建一个伪随机数生成器Random(long seed)构造方法,使用一个long型的seed种子创建伪随机数生成器6.4处理日期的类Java提供了一系列用于处理日期、时间的类,包括创建日期、时间对象获取系统当前日期、时间等操作。Java提供Date类来处理日期、时间,现在Date类的方法大部分已经过时,不再推荐使用,我们接下来介绍还在使用的构造器和方法。6.4.1 Date类方法声明方法声明构造函数
39、构造函数Date()生成一个代表当前日期时间的Date对象Date(long date)根据指定的long型整数来生成一个Date对象。after(Date date)测试该日期是否在指定日期date之后before(Date date)测试该日期是否在指定日期date之前compareTo(Date date)比较两个日期的大小,后面的时间大于前面的时间返回-1.equals(Object obj)当两个时间表示同一时刻时返回truegetTime()返回改时间对应的long型整数setTime(long time)设置该time的时间Java提供了Calendar类来更好的处理日期和时间,
40、Calendar类是一个抽象类,所以不能使用构造器来创建Calendar对象,但提供了惊呆GetInstance()方法来获取Calendar对象。Calendar类提供了大量访问、修改日期时间的方法。6.4.2 Calendar类方法声明方法声明功能介功能介绍Add(int f,int a)根据日历的规则,为给定的日历字段添加或减去指定的时间量。Get(int f)返回指定的日历字段值getActualMaximum(int f)返回指定日历字段可能拥有的最大值。Roll(int f,int a)为给定的日历字段添加或减去指定的时间量Set(int f,int v)将给定的日历字段设置为给定
41、值。Set(int y,int m,int d)设置Calendar对象的年、月、日3个字段的值。Set(int y,int m,int d,int h,int m,int s)设置Calendar对象的年、月、日、时、分、秒6个字段的值。6.5包装类为了解决Java中一些类的方法需要接收引用类型的对象这样的问题,JDK中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。在Java中,每种基本类型都有对应的包装类。6.5 包装类表中,列举了8种基本数据类型及其对应的包装类。其中,除了Integer和Character类,其他包装类的名称和基本数据类型的名称一致
42、,只是类名的第一个字母需要大写。包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本数据类型的值转为引用数据类型,反之,拆箱是指将引用数据类型的对象转为基本数据类型。基本数据基本数据类型型对应的包装的包装类byteBytecharCharacterintIntegershortShortlongLongfloatFloatdoubleDoublebooleanBoolean本章主要讲解了Java中常用类的使用,我们首先需要掌握String、StringBuffer和StringBuilder类的创建以及相关方法的使用,随后介绍了System类和Runtime类常用方法的
43、使用、Math类和Random类的使用,以及时间相关类的使用,还讲解了Java中包装类的相关知识,这部分内容需要大家了解并熟悉相关方法,在使用的过程中也可以通过查看API文档来查找这些类的用法,接下来通过一个案例任务和练习题来巩固这部分的内容。本章小结感 谢 观 看集合框架和泛型本章目标本章目标l掌握集合体系框架l掌握Collection接口的作用及主要操作方法l掌握Collection子接口List、Set的区别及常用实现类的使用l掌握Map接口的作用l掌握Map接口的常用实现类l掌握Iterator接口的使用l掌握泛型集合的使用331 本章内容Map接口的实现类HashMapMap接口的实
44、现类TreeMap集合的工具类Collections本章小结泛型List接口的实现类为什么需要集合集合的体系框架Collection接口的常用方法List接口的常用方法迭代器IteratorSet接口的实现类HashSetSet接口的实现类TreeSet为什么需要使用集合为什么需要使用集合l数组优缺点优点:优点:遍历速度快,因为在内存中所分配的空间是连续的缺点:缺点:数组的长度一旦创建,则不能再更改,对于像新闻类的网站,新闻的数量每天都不一样,所以长 度设置多了浪费,设置少了不够用 在删除和插入元素时,需要大量的移动元素,效率太低l集合的的特点 l存储的元素只能是引用数据类型,符合面向对象的特
45、征l由于底层的数据结构不同,集合的种类有很多,可供选择的集合多种多样 集合框架体系集合框架体系集合框架体系相关的接口和类位于java.util包中 CollectionCollection接口接口lCollection接口是集合的顶层接口,存储元素的特点是:不唯一、无序lCollection接口的定义 Collection接口继承了Iterable接口,说明了Collection具 备一种能力,即可以使用加强for循环遍历的能力lCollection接口常用的增、删、改、查的方法序号序号执行操作执行操作返回值类型返回值类型方法名方法名方法描述方法描述1增加boolean add(Ee)向集合中
46、添加一个对象2boolean addAll(Collectionc)将一个集合的元素一次性添加到另一个集合中3判断booleanisEmpty()判断集合是否为空,即集合的长度为04boolean contains(Objecto)判断指定对象在集合中是否存在5boolean equals(Objecto)用于比较集合中的元素是否完全相同6删除boolean remove(Objecto)一次删除一个对象7void clear()一次性删除集合中的全部对象8boolean removeAll(Collectionc)将两个集合中相同的对象删除9boolean retainAll(Collect
47、ionc)将两个集合中不相同的对象删除10查询Iterator iterator()返回在此集合的元素上进行迭代的迭代器11int size()返回集合中元素的个数ListList接口接口lList接口是Collection的子接口,存储元素的特点是不唯一、有序(添加顺序)lList接口常用的方法序号序号执行操作执行操作返回值类型返回值类型方法名方法名方法描述方法描述1增加void add(intindex,Eelement)在指定位置上添加一个元素2boolean addAll(int index,Collectionc)在指定位置上添加一批元素3删除Eremove(intindex)先将集
48、合中指定位置上的元素取出,然后再将该元素删除4修改Eset(intindex,Eelement)用指定元素替换集合中指定位置上的元素5ListsubList(intfromIndex,inttoIndex)截取子集合,含头不含尾6查询Eget(intindex)获取指定位置上的元素,但不删除7ListIterator listIterator()返回此列表元素列表迭代器示例示例ListList接口的实现类接口的实现类lList接口常用的实现类lArrayListArrayList继承AbstractList类实现List接口底层数据结构是数组优点:遍历和根据索引访问效率高缺点:空间是连续的,删
49、除或插入元素,需要大量移动元素该类是JDK1.2版,线程不同步的,在多线程操作时,会提高访问效率,但会降低程序的安全性lLinkedListLinkedList 继承AbstractSequentialList类,实现List和Deque接口 底层数据结构是双向链表 优点:插入和删除元素的效率高 缺点:遍历速度慢,因为分酌的空间不连续 LinkedList在List接口的基础上又扩展出了自己独有的方法lVectorVector继承AbstractList类实现List接口底层数据结构是数组优缺点与ArrayList相同该类是JDK1.0版,线程同步的,在多线程的操作时,能够提高程序的安全生,但
50、会降序访问的效率 示例序号序号执行操作执行操作方法方法描述描述1增加void addFirst(E e)在列表的开头插入指定元素2void addLast(E e)将指定元素添加到列表的末尾3boolean offerFirst(E e)在列表的开头插入指定元素,该方法从JDK1.6开始是Deque接口中的方法4boolean offerLast(E e)将指定元素添加到列表的末尾,作用与add(E e)方法的功能相同,该方法从JDK1.6开始是Deque接口中的方法1删除E removeFirst()先将列表中的第一个元素获取,然后再将该元素从列表中删除2E removeLast()先将列表