《程序设计基础(Java)》高职全套教学课件_第1页
《程序设计基础(Java)》高职全套教学课件_第2页
《程序设计基础(Java)》高职全套教学课件_第3页
《程序设计基础(Java)》高职全套教学课件_第4页
《程序设计基础(Java)》高职全套教学课件_第5页
已阅读5页,还剩160页未读 继续免费阅读

下载本文档

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

文档简介

程序设计基础(Java)项目1初识Java项目2Java语言基础项目3流程控制项目4数组项目5字符串项目6类与对象项目7常用的JavaAPI项目8异常处理项目9输入输出与文件处理全套可编辑PPT课件

项目一

初识Java任务1Java语言简介任务2搭建Java开发环境全套可编辑PPT课件

任务1Java语言简介任务引入小白是某大学计算机学院的一名学生,了解到Java工程师就业前景非常好,想自学Java编程。Java究竟是一门什么样的编程语言?与其他常见的高级语言相比有什么优势呢?Java根据应用环境不同提供了不同的版本,该如何选择合适的版本呢?知识准备一、发展历程上个世纪90年代初,个人计算机的应用对人们产生了极大的冲击,同时也改变了人们对于组织及商务的管理方式。美国SunMicrosystems公司由此成立了一个名为Green的内部研究计划,意在针对像有线电视转换盒这类处理能力和内存都很有限的消费设备,设计一种小型的计算机语言,开发小型家电设备的嵌入式应用。随着互联网的崛起,Sun公司看到了制作动态网页的潜在发展商机,改造了Oak。如今,Java已发展成为一种面向对象、跨平台、可移植性高的编程语言。二、特性和优势Java语言具有面向对象、与平台无关、安全、稳定和多线程等优良特性,特别适用于网络应用程序的设计,已经成为网络时代重要的编程语言之一。简单性

面向对象

跨平台/可移植性

安全性高性能

分布式

多线程

健壮性三、体系结构JavaSE(JavaStandardEdition)称为标准版,定位为桌面级的应用和数据库的开发。JavaEE(JavaEnterpriseEdition)称为企业版,定位为服务器端的应用。JavaME(JavaMicroEdition)称为微型版,定位为消费性电子产品的应用四、认识JDK,JRE和JVMJDK是JavaDevelopmentKit的缩写,也就是Java开发工具包,除了包含JRE,还提供了编译器、调试器等开发工具。JRE是JavaRuntimeEnvironment的缩写,是Java的运行环境,包含JVM和Java核心类库。JVM是Javavirtualmachine的缩写,也就是常常听到Java虚拟机,是整个Java实现跨平台的最核心的部分。简单地说,JDK是面向开发者的,是程序员编写Java程序使用的软件。Java三个版本之间的关系任务2搭建Java开发环境任务引入了解了Java的特性,以及在服务器端应用和网络应用方面的优势,小白顿时来了兴致,这与他毕业后的职业选择方向很契合。说学就学,学Java程序设计的首要任务当然是搭建Java的开发环境。知识准备一、下载、安装JDKJava程序必须运行在JVM之上,所以,要学习Java开发,首先要安装JDK。JDK包括用于开发和测试用Java编程语言编写并在Java平台上运行的程序的工具。本书使用的Java版本是JavaSE平台的最新长期支持(LTS)版本Java17。(1)登录Oracle公司官网,下载JavaSE的最新稳定版。(2)下载完成后,双击下载的文件启动安装向导,如图所示。(3)单击“下一步”按钮,选择安装JavaSE的目标文件夹,如图所示。(4)单击“下一步”按钮,开始安装程序,并显示进度条。安装完成后,显示如图所示的完成界面。安装向导指定目标文件夹(5)如果不需要访问JDK的官方文档,单击安装向导中的“关闭”按钮,即可完成安装。(6)按住键盘上的Windows键+R键,打开如图所示的“运行”对话框。输入命令cmd按Enter键,启动控制台。二、使用JDK文档Oracle公司为JDK工具包提供了一整套文档资料,称之为JDK文档。在安装JDK完成时,单击安装向导中的“后续步骤”按钮,将打开浏览器,显示当前JDK版本的官方文档,包括教程、API文档、开发人员指南、发布说明及更多的相关资源,如图所示。“运行”对话框查看安装的JDK版本JDK文档下载离线文档文档结构三、JDK文件结构JavaSE17安装完成后,打开安装目录,可以看到如图所示的文件目录。bin文件夹文件结构下面简要介绍几个很重要的可执行程序。vjava.exe:这个可执行程序其实就是JVM,运行Java程序。vjavac.exe:Java的编译器,用于把Java源码文件(以.java为后缀)编译为Java字节码文件(以.class为后缀)。vjar.exe:打包工具,用于把一组.class文件打包成一个.jar文件,便于发布。vjavadoc.exe:文档生成器,用于从Java源码中自动提取注释并生成文档。vjdb.exe:Java调试器,用于开发阶段的运行调试。四、配置JDK安装完JDK后,必须配置系统环境变量才能使用Java开发环境。(1)在桌面上右击“此电脑”,从弹出的快捷菜单中选择“属性”命令,然后在打开的“系统”对话框的左侧窗格中单击“高级系统设置”链接,打开“系统属性”对话框,如图1-12所示。(2)单击“系统属性”对话框底部的“环境变量”按钮,打开如图1-13所示的“环境变量”对话框。

“系统属性”对话框

“环境变量”对话框(3)在“系统变量”列表框中双击Path变量,打开如图所示的“编辑环境变量”对话框。(4)单击“编辑文本”按钮打开“编辑系统变量”对话框,在“变量值”文本框中,将路径C:\ProgramFiles\CommonFiles\Oracle\Java\javapath修改为JDK的安装路径(例如C:\ProgramFiles\Java\jdk-17.0.1\)的bin文件夹,如图所示。“编辑环境变量”对话框(5)单击“确定”按钮依次退出上述对话框,即完成了JDK的环境配置。JDK的Path配置成功JDK的编译器信息案例——使用命令行工具编译和运行程序搭建好JDK环境,就可以编译、运行Java程序了。(1)打开记事本,输入代码:(2)将文件以文件名Hello.java保存到D:\java_source\目录下。这里一定要注意文件的后缀.java,表示这是一个java源程序文件。(3)使用Windows+R组合键打开“运行”对话框,输入命令cmd,如图所示,按Enter键进入命令符提示窗口。(4)在命令符提示窗口输入DOS命令,将工作目录切换到java文件所在的目录,然后输入命令“javacHello.java”编译程序,如图所示。编译成功后,在源程序文件所在目录可以看到生成的字节码文件Hello.class,如图所示。“运行”对话框编译程序 生成字节码文件(5)在命令符提示窗口输入命令“javaHello”运行程序,按Enter键即可输出运行结果,如图所示。五、下载集成开发环境EclipseEclipse的发行版提供了预打包的开发环境,包括Java、JavaEE、C++、PHP、Rust等。开发Java应用,需要下载的版本是EclipseIDEforJavaDevelopers。(1)登录Eclipse官网的下载页面/downloads/,单击如图所示的“DownloadPackages”链接文本。(2)在打开的页面中,找到EclipseforJavaDevelopers,然后根据操作系统选择对应的下载链接,如图所示。(3)在打开的下载页面单击“Download”按钮,即可开始下载Eclipse的压缩包,如图所示。(4)下载完成后,将压缩包解压缩到合适的目录下,无须安装就可使用了。选择语言包版本

选择要下载的语言包覆盖两个同名文件夹六、配置Eclipse工作空间下载并解压缩后,要正常使用Eclipse,还需要对IDE环境进行一些基本配置。(1)双击解压缩文件中的eclipse.exe文件,启动Eclipse,弹出如图所示的“EclipseIDE启动程序”对话框。(2)单击“浏览”按钮,设置开发环境的工作空间。(3)单击“启动”按钮,即可启动Eclipse。初次启动时,会显示如图1-29所示的欢迎界面。“EclipseIDELauncher”对话框欢迎界面(4)在菜单栏选择“Window”→“Preferences”命令,打开“Preferences”对话框。(5)拖动对话框右侧的滚动条,定位到Workspace选项界面的“Textfileencoding”选项

设置Workspace选项设置编码和换行符(6)在左侧窗格中选中Java→Compiler选项,取消选中“Usedefaultcompliancesettings”复选框,并勾选“EnablepreviewfeaturesforJava17”复选框,如图所示(7)设置完成后,单击“ApplyandClose”按钮应用设置并关闭对话框。案例——使用Eclipse编译和运行程序(1)启动Eclipse,关闭欢迎界面,进入Eclipse的工作界面,如图所示。(2)单击“PackageExplorer”窗格中的“CreateaJavaproject”链接文本,或者在“PackageExplorer”窗格的空白处右击,从弹出的快捷菜单中选择“New”→“JavaProject”命令,打开“NewJavaProject”对话框。Eclipse工作界面“NewJavaProject”对话框(3)单击“Finish”按钮,打开“Newmodule-info.java”对话框,如图所示。(4)单击“Don’tCreate”按钮关闭对话框,即可完成Java项目的创建。创建的Java项目(5)在src目录上右击,从弹出的快捷菜单中选择“New”→“Class”命令,打开“NewJavaClass”对话框。创建类(6)单击“Finish”按钮,即可创建Hello类。(7)在编辑器中编辑main()方法的代码,例如在控制台输出文本“HelloWorld!”,如图所示。在编辑过程中,Eclipse会同时进行编译工作,生成的.class文件在项目的bin目录下可以看到,如图所示。创建的类文件编辑类文件

生成的.class文件(8)在工具栏中单击“Run”→“RunAs”→“JavaApplication”命令,如图所示(9)运行结束后,在编辑器下方的“Console”窗格中可以看到运行结果,如图所示。“SaveandLaunch”对话框

运行结果项目总结项目二

Java语言基础任务1Java基本语法任务2语法规则任务1Java基本语法任务引入作为一名计算机学院的学生,小白虽然已接触过一些简单的编程语言,但毕竟不同语言之间,编码规则也不尽相同。为此,小白觉得有必要先弄明白Java的程序结构、标识符的命名规则、常用的关键字、常量与变量的定义方法,以及代码注释等基本语法。知识准备一、程序结构Java程序由类组成,后缀为.java。一个完整的Java程序可包含若干个类,最简单的Java程序只包含一个类二、标识符在编写程序时,常常要使用一些符号名称定义类名、常量和变量名、方法名、参数名等,这些符号名称就是标识符。Java的标识符是由字母、数字、下划线(_)和美元符号($)按任意顺序组成的字符序列,不能以数字开头,且区分大小写,也不能是Java中的保留关键字。三、关键字Java关键字是指被Java语言赋予了特殊含义,用作专门用途的单词,也称为保留字。不能用作标识符。目前,Java语言中的关键字如表所示。四、常量与变量在程序设计语言中,常量和变量都是用于存储数据的容器,它们唯一的区别是:常量中存放的值不允许更改,而变量中所存放的值是可以更改的。1.常量在Java语言中,利用关键字final定义常量。2.变量变量是为存储数据而创建的标识符,可为函数和语句提供可变的参数值。案例——输出变量的值本案例通过输出变量的值,演示变量的定义和使用方法。(1)在Eclipse中新建一个Java项目varDemo,右击src目录,新建一个名为varTest的类,包名称为ch02。(2)在编辑器中输入代码,定义变量并输出。(3)右击文件varTest.java,从弹出的快捷菜单中选择“RunAs”→“JavaApplication”命令,在控制台窗格中可以看到输出结果,如图所示。五、代码注释注释是使用一些简单易懂的语言对代码进行简单的解释的方法。在程序中添加注释可以增强代码的可读性,便于理解代码。使用注释还可以注销不希望参与执行的代码。注释的语句在程序执行时会被编译器忽略,对代码执行没有影响。Java语言中包含了三种注释符:(1)单行注释符://(2)多行注释符:/*要注释的内容*/(3)文档注释符:/**要注释的内容*/任务2语法规则任务引入了解了基本语法,小白试着写一段简单的加法运算程序,但总是出错,要么提示类型不匹配,要么就是数值超出某个类型的范围。同样是数值运算,为什么有的能运行成功,有的就无法编译呢?通过查阅资料,小白这才知道Java中的数据有严格的类型要求,即使是常用的整数类型,也有多种不同的类型,对应不同的取值范围。因此,要写出合法的程序,还需要掌握具体的语法规则。知识准备在编写程序时,会用到很多不同类型的数据,Java是一种强类型语言,每个变量都必须声明其数据类型。Java的数据类型可分为两大类:基本数据类型和引用数据类型(也称为对象数据类型),每种分类中又包括多种数据类型,如图所示。一、基本数据类型Java语言中的基本数据类型包括整数类型、浮点类型、字符类型和布尔类型(也称为逻辑类型)。1.整数类型整数类型顾名思义,就是存储整数的类型,按照存储值的范围不同,Java语言将整型分成了byte、short、int、long四种类型,默认为int,如表所示。案例——整型变量示例(1)在Eclipse中新建一个Java项目IntVarDemo,右击src目录,新建一个名为IntVar的类,包名称为ch02。(2)在编辑器中输入代码,定义变量并输出。(3)右击文件IntVar.java,从弹出的快捷菜单中选择“RunAs”→“JavaApplication”命令,在控制台窗格中可以看到输出结果,如图所示。2.浮点类型浮点类型是指小数类型,在Java语言中有两种浮点数,一种称为单精度浮点类型(float),一种称为双精度浮点类型(double)。具体取值范围如表所示。3.字符类型字符类型(char)表示16位Unicode字符,只能存入一个字符,占用两个字节,能存放一个汉字。char类型的字符要使用单引号括起来,例如'M'、'数'等。默认值为空格。常用的转义字符如表所示。4.布尔类型当某个值只有两种状态时,可以将其声明为布尔类型(也称为逻辑类型),例如,用户权限是否为管理员、当前日期是否为工作日等。案例——判断用户是否为VIP会员(1)在Eclipse中新建一个Java项目BooleanDemo,右击src目录,新建一个名为BooleanTest的类,包名称为ch02。(2)在编辑器中输入代码,定义变量并输出。(3)右击文件BooleanTest.java,从弹出的快捷菜单中选择“RunAs”→“JavaApplication”命令,在控制台窗格中输入数值3500,按Enter键可以看到输出结果,如图所示。二、类型转换Java是一种强类型语言,在赋值运算或者算数运算时,要求数据类型一致。如果要将一种数据类型的值赋给另一种数据类型的变量,就要进行类型的转换。Java中的类型转换有两种:自动转换和强制转换。1.自动转换自动转换也称为隐式类型转换,是指两种数据类型在转换过程中不需要显式地通过代码进行声明。(1)整数类型之间。(2)整数类型转换为float类型,byte、short、char、int类型的数据可以赋值给float类型的变量。(3)其他数值类型转换为double类型,byte、short、char、int、long和float类型的数据都可以赋值给double类型的变量。2.强制转换如果要把高精度的数据赋值给低精度的变量,则需要进行显式的代码声明,也就是进行强制类型转换(也称为显式类型转换)。案例——数据类型转换示例(1)在Eclipse中新建一个Java项目TransferDemo,右击src目录,新建一个名为TransferTest的类,包名称为ch02。(2)在编辑器中输入代码,定义变量并输出。(3)右击文件TransferTest.java,从弹出的快捷菜单中选择“RunAs”→“JavaApplication”命令,即可在控制台窗格中看到输出结果,如图所示。三、运算符运算符是每一种编程语言中必备的符号,能够提供对数值、字符、逻辑值进行运算。表达式是由常量、变量、函数和运算符按照运算法则组成的计算关系式。在数据运算中,使用表达式表达想要达到的效果,使用运算符进行相关的运算。下面简要介绍Java中常见的运算符:赋值运算符、算术运算符、逻辑运算符、比较运算符、三元运算符以及运算符的优先级。1.赋值运算符赋值运算符(=)是最常用的运算符,它的含义是将右边的值赋值给左边的变量,经常用于对属性、变量、方法属性的赋值操作。表

赋值运算符2.算术运算符算术运算符是最常用的一类运算符,包括加法、减法、乘法、除法等,具体的表示符号如表所示。3.逻辑运算符逻辑运算符主要用于多个布尔型表达式之间的运算,用于判断某个条件是否成立,运算的结果也为布尔型。具体说明如表所示。4.关系运算符关系运算符常用于条件判断语句,比较两个操作数的值,运算的结果是布尔值true或false。常见的关系运算符可分为两类:一类用于判断大小关系,一类用于判断相等关系。具体的说明如表所示。5.位运算符位运算符包括与、或、非、左移、右移等,具体的表示符号如表所示。6.三元运算符Java中有一个三元运算符,也被称为条件运算符,顾名思义,也就是有三个运算项,具体的语法形式如下:案例——计算绝对值(1)在Eclipse中新建一个Java项目ABSDemo,右击src目录,新建一个名为ABSTest的类,包名称为ch02。(2)在编辑器中输入代码,定义变量并输出。(3)右击文件ABSest.java,从弹出的快捷菜单中选择“RunAs”→“JavaApplication”命令,根据提示输入一个整数,按Enter键即可在控制台窗格中输出指定数值的绝对值,如图示。7.运算符的优先级在Java表达式中,通常会使用多个运算符进行计算,这种情况下就要注意运算符的运算先后顺序,也就是优先级。Java语言中运算符的优先级从高到低如表所示。四、输入与输出编写程序后,要查看代码是否按预期计算运行,通常会输入测试参数,然后输出运行结果。在前面的案例中,都是使用语句System.out.println()方法输出运行结果。System是一个系统类,完整类名为java.lang.System。所有的Java程序都会自动导入java.lang核心语言包,因此在使用System类时无须显式导入。System.out在JRE启动时,被初始化为标准输出对象,调用println()方法向标准输出打印指定的字符串并换行。System类还提供了用于实现输入的流对象System.in。System.in包含的read()方法可接收键盘输入的数据,但不能按照数据类型接收入。因此常使用位于java.util.Scanner类来接收键盘输入的数据。案例——输出客户信息(1)在Eclipse中新建一个Java项目ScannerDemo,右击src目录,新建一个名为ScannerTest的类,包名称为ch02。(2)在编辑器中输入代码,定义变量并输出。(3)右击文件ScannerTest.java,从弹出的快捷菜单中选择“RunAs”→“JavaApplication”命令,根据提示通过键盘输入数据,即可在控制台窗格中看到输出结果,如图所示。项目总结项目实战实战一:计算圆的周长和面积本实战通过键盘获取圆的半径,然后计算并输出圆的面积。(1)在Eclipse中新建一个Java项目CircleArea,右击src目录,新建一个名为CircleArea的类,包名称为ch02。(2)在编辑器中输入代码,定义变量并输出。(3)运行程序,根据提示通过键盘输入半径,即可在控制台窗格中看到输出结果,如图所示。实战二:对密码加密本案例利用位运算符对给定的密码进行加密。(1)在Eclipse中新建一个Java项目PasswordDemo,右击src目录,新建一个名为PasswordDemo的类,包名称为ch02。(2)在编辑器中输入代码,定义变量并输出。(3)运行程序,运行结果如图所示。项目三

流程控制任务1顺序结构和选择结构任务2循环结构任务1顺序结构和选择结构任务引入看到Java学习群里的网友分享的Java应用小程序,小白很心动,也想编写一个简单的小程序,模拟学习打卡奖励,打卡满21次就输出一条祝贺语句,否则提示用户再接再厉。但程序怎么知道是否满21次了呢?小白想到自然语言中的“如果……就……否则”结构语句,Java程序中是否也能这样写程序呢?知识准备一、顺序结构顺序结构就是按照代码的顺序,逐行地执行以分号;结束的语句。二、单分支条件语句单分支条件语句是单一条件的if语句,只有满足if语句中的条件才能执行相应的语句。三、多分支条件语句多分支语句包括二选一条件的if...else语句,以及多选一的if..elseif…else语句。二选一条件的if...else语句与三元运算符效果等价,只是比三元运算符更直观、灵活。案例——计算体质指数BMI(1)在Eclipse中新建一个Java项目BMIDemo,右击src目录,新建一个名为BMITest的类,包名称为ch03。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中根据提示输入身高和体重,按Enter键可以看到输出结果,如图所示。四、switch...case语句switch语句也属于多分支条件语句,相当于一系列的if..elseif..语句,但switch语句不是对条件进行计算以获得布尔值,而是对表达式进行求值并根据计算结果确定要执行的语句块。案例——计算会员购物折扣(1)在Eclipse中新建一个Java项目ScoreEvaluate,右击src目录,新建一个名为DiscountCompute的类,包名称为ch03。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中根据提示积分数值,按Enter键可以看到输出结果,如图所示。运行结果任务2循环结构任务引入使用分支语句解决了判断打卡是否满21天的问题,但怎样让程序反复执行打卡的语句呢?总不能将一条语句重复写21次吧?如果要求打卡100天或更多,岂不是让人很崩溃?凭直觉,小白知道,作为一门高级编程语言,Java肯定提供了简单直观的方法解决循环执行的问题。知识准备循环结构就是根据指定的条件多次执行同一组代码,重复的次数由指定的数值或条件决定,常用于检索和批量处理。循环结构由循环体和控制条件两部分组成,其中重复执行的代码称为循环体,能否重复操作,取决于循环的控制条件。循环结构可分为以下两类:(1)先进行条件判断,如果条件成立,执行循环体代码,执行完之后再进行条件判断,条件成立继续,否则退出循环。(2)先不管条件是否成立,依次执行语句,执行完成之后进行条件判断,如果条件成立,循环继续,否则退出循环。一、for循环for循环是最支持迭代的一种通用结构,是最有效、最灵活的循环结构,多用于固定次数的循环案例——计算等差数列的和(1)在Eclipse中新建一个Java项目SeriesSum,右击src目录,新建一个名为SeriesSum的类,包名称为ch03。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中可以看到输出结果,如图所示。二、while循环while循环与for循环类似,当条件表达式满足时,执行循环体,但是while循环一般适用于不固定次数的循环。在循环刚开始时,会计算一次循环条件的值,循环条件是布尔表达式,如果条件为true,则执行循环体,否则退出循环。之后每一次循环,都会重新计算一次循环条件,根据循环条件的值决定程序进程。三、dowhile循环do...while循环与while循环基本相同,只不过do...while是先执行循环体,再判断条件表达式,所以do...while至少会循环一次。循环体包括变量改变赋值表达式,执行语句并实现变量赋值。循环条件是布尔表达式,运算的结果决定循环的进程。dowhile语句执行的过程是,先执行do{}中循环体的内容,再判断while()中布尔表达式的值是否为true。如果为true,则继续执行循环体中的代码,否则退出循环。案例——验证登录密码(1)在Eclipse中新建一个Java项目PasswordVerify,右击src目录,新建一个名为PasswordVerify的类,包名称为ch03。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中根据提示输入密码,如果输入的密码与指定的密码不符,则再次输出提示信息,要求用户输入密码;如果密码正确,则输出一条提示信息,如图所示。四、中断循环语句执行循环语句时,如果要跳出循环,就需要用到中断循环语句:break语句和continue语句。break语句用于中断循环,使循环不再执行。如果是多个循环语句嵌套使用,则break语句跳出的是最内层循环。continue语句与break语句类似,但它不是强制终止,而是中止循环体中尚未执行的语句,强制开始下一次循环。对于for循环,continue语句会导致执行条件测试和循环变量步进部分;对于while和dowhile循环,continue语句会导致程序控制回到条件判断语句上。案例——输出奇数和偶数(1)在Eclipse中新建一个Java项目OddEven,右击src目录,新建一个名为OddEven的类,包名称为ch03。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,即可在控制台窗格中看到输出结果,如图所示。五、循环嵌套在较为复杂的循环结构中,通常会组合使用多种循环结构。一个循环体内部包含另一个完整的循环结构,称为循环的嵌套。在嵌套使用循环结构时,要注意控制循环的跳转,以免陷入无限循环。在嵌套循环中,break语句只能使程序跳出包含它的最内层的循环结构,如果要跳出外层循环,要配合使用“标签”。同样的,continue配合标签使用,可以跳出指定的循环体。案例——输出3的倍数(1)在Eclipse中新建一个Java项目ContinueOuter,右击src目录,新建一个名为ContinueOuter的类,包名称为ch03。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,即可在控制台窗格中看到输出结果,如图所示。案例——打印空心菱形(1)在Eclipse中新建一个Java项目DiamondPrint,右击src目录,新建一个名为Diamond的类,包名称为ch03。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,即可在控制台窗格中看到输出结果,如图所示。项目总结项目实战实战一:成绩查询本实战输入某次比赛中某位参赛人员两个单项的成绩之和,然后根据总分判断对应的奖项。总分大于等于18为一等奖,15(含)~18分为二等奖,10~14(含)分为三等奖,10分以及下没有奖项。(1)新建一个项目,在项目中添加类,然后在main()方法中编写代码。(2)运行程序,根据提示输入两个单项的成绩,按Enter键,即可在控制台窗格中看到计算的总分,以及对应的奖项,如图所示。实战二:报数出列初中某班有45个学生,体育课上排列成5×9的队列报数。本实战利用循环结构、选择结构,并配合使用带标签的break语句,在报数至第3排第6列时对应的学生出列终止报数。(1)新建一个项目,在项目中添加类,然后在main()方法中编写代码。(2)运行程序,可在控制台窗格中可以看到报数和出列情况,如图所示。项目四

数组任务1一维数组任务2二维数组任务1一维数组任务引入为了解全班同学的英语过级情况,老师要求作为班委成员的小白统计一下全班同学的英语四级成绩。小白就想编写一个程序存储同学们的成绩,方便后续的计算、排序等工作。但全班48个同学,难道要定义48个相同类型的变量,写48条基本相同的语句?Java中有没有数据类型,可以一次存储所有的成绩呢?答案是肯定的,这就是数组。知识准备数组分为一维数组、二维数组以及多维数组,是把相同数据类型的元素按照一定的先后次序排列组织在一起有序集合,并使用一个标识符进行封装,是一种引用类型的变量。本任务着重介绍一维数组和二维数组的创建及使用方法。一、创建一维数组一维数组可以看作是一组相同数据类型的数据的有序集合,其中的每个数据称为一个数组元素,按照排列顺序,有一个唯一的索引号进行标识。整个序列有一个标识符,称为数组名称。数组元素的数据类型决定了数组的数据类型,可以是Java中任意的数据类型(基本数据类型或引用数据类型)。表

数据类型的默认值Java中,数据类型的默认值如表4-1所示。二、数组初始化数组初始化是指创建数组时使用显式方式为数组中的每个元素赋值。在Java中,初始化数组有以下3种常用的方式,下面分别进行介绍。1.静态初始化这种方式是直接在定义数组的同时就为数组元素分配空间并赋值2.默认初始化数组是引用类型,其中的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。3.动态初始化这种方法是先定义数组,并为数组元素分配空间,然后为数组元素赋值。三、引用数组元素在使用上一节介绍的第三种初始化方式时,实质是访问数组arr_A的每一个元素并赋值。Java通过数组元素的下标(也称为索引)下标引用数组中的具体元素,语法格式如下:案例——存储并输出商品数量(1)在Eclipse中新建一个Java项目GoodsNum,右击src目录,新建一个名为GoodsNum的类,包名称为ch04。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中可以看到输出结果,如图所示。四、遍历一维数组上面的案例中,如果要存储输出的数据很多,一个一个初始化然后输出显然是一件很烦琐的事情。利用数组元素有规律的索引,配合使用循环结构,可以很方便地遍历数组中的所有元素。案例——输出最好成绩(1)在Eclipse中新建一个Java项目EvaluationScores,右击src目录,新建一个名为EvaluationScores的类,包名称为ch04。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中可以看到输出结果,如图所示。五、使用Arrays工具类定义数组中的元素后,如果要对数组中的元素进行分配,可以利用Arrays工具类的fill()方法填充和替换元素。Arrays类的全称是java.util.Arrays,是java.util包中提供的一个用于操作数组的实用类。该类包含了一系列的静态方法用于操作数组。下面简要介绍几个常用的静态方法。1.fill()该方法可将指定的int值分配给int型数组的每一个元素。2.sort()该方法可将数值类型和char型数组中的元素按照元素值由小到大进行排列。3.toString()该方法可对数组进行遍历查看,将数组中的所有元素以一个字符串的形式返回。4.equals()该方法可比较两个同种类型的数组的值是否相同,返回布尔类型的逻辑值。5.binarySearch()该方法可按照二分查找算法查找数组中是否包含指定的值,如果包含,则返回该值在数组中的索引;如果不包含,则返回负值。6.copyOf()该方法可将指定的数组从索引为0的元素开始复制到指定长度的新数组中。如果给定的长度超过原数组长度,则用null进行填充。7.copyOfRange()该方法可将源数组中指定下标范围内的元素值复制到一个新数组中。案例——复制并排序数组(1)在Eclipse中新建一个Java项目CopySort,右击src目录,新建一个名为CopySort的类,包名称为ch04。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中可以看到输出结果,如图所示。任务2二维数组任务引入利用数组存储了全班同学的成绩,但各个成绩是孤立的,不能与对应的学生(通过学号)关联起来。如果后续要进一步统计其他科目的成绩,是不是每个科目都建一个数组存储?即使每个科目都用一个数组,怎样才能将这些数组关联起来一一对应呢?小白想到了数学中的矩阵,在Java中,能不能像矩阵那样采用行列的方式存储数据呢?这样的话,一行就可以存储一个学生的多种信息,48行就可以存储全班同学的所有成绩信息了。很快,小白知道了这种数据结构称为二维数组。知识准备一、创建二维数组二维数组可以看作是数组的数组,也就是说数组中的每一个元素也是一个数组。二维数组的声明方式与一维数组类似,也有两种声明方式,不同的是二维数组中包含两个方括号[]。二、二维数组赋值二维数组赋值初始化与一维数组相同,也有三种方式,都是直接将元素值包含在{}中。不同的是,二维数组有两个索引,每一行的元素值都包含在{}中。案例——上报缺勤人数本案例存储某公司3个部门本月的缺勤人数及总数,并输出。(1)在Eclipse中新建一个Java项目AbsentRecord,右击src目录,新建一个名为AbsentRecord的类,包名称为ch04。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中可以看到输出结果,如图所示。三、遍历二维数组二维数组可以利用两层嵌套的for循环遍历所有的行标和列标,从而访问数组中的每一个元素。在这里要提请读者注意的是,对于给定的二维数组arr[][],使用length属性返回数组长度时,arr.length返回的是二维数组的行数,arr[i].length返回的是第(i-1)行的列数量。如果是不规则数组,每一行的列数量也不相同,因此,在遍历二维数组时,最好使用数组的length属性值控制循环次数。案例——转置二维数组本案例存储一个3行4列的二维数组,将数组元素转置并输出。(1)在Eclipse中新建一个Java项目ArrTranspose,右击src目录,新建一个名为ArrTranspose的类,包名称为ch04。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中可以看到输出结果,如图所示。项目总结项目实战实战一:查询指定元素的位置本实战创建一个int型一维数组,在数组中查找指定的数值并返回对应的。(1)在Eclipse中新建一个Java项目SearchDemo,右击src目录,新建一个名为SearchDemo的类,包名称为ch04。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中可以看到输出结果,如图所示。实战二:替换二维数组的元素值本实战创建一个int型二维数组,使用默认值初始化,然后替换数组的元素值,使每个元素的值为其两个下标的和。(1)在Eclipse中新建一个Java项目ChangeValue,右击src目录,新建一个名为ChangeValue的类,包名称为ch04。(2)在编辑器中输入代码,定义变量并输出。(3)在工具栏上单击“Run”按钮,在控制台窗格中可以看到输出结果,如图所示。实战三:诗词排版本实战使用不规则的字符型二维数组将宋词《定风波》中的部分词句打印输出。(1)在Eclipse中新建一个Java项目,在项目中添加一个名为DingFengBo的类,包名称为ch04。(2)在编辑器中输入代码,定义变量并输出。(3)运行程序,结果如图所示。项目五

字符串任务1String类字符串任务2StringBuffer类字符串任务1String类字符串任务引入在输出学生成绩时,使用学号查看不太直观,小白想输出时添加对应的学生姓名,并输出对应的成绩等级(优秀、良好、及格或不及格)。但学生的姓名和成绩等级都不是单个字符,使用char类型存储显然操作不方便且效率低下,如果后期要修改其中的个别字符更是麻烦。通过查阅资料,小白得知强大的Java提供了存储多个字符甚至大篇幅字符内容的数据结构——字符串,使用这种数据结构还能很便捷地对字符串的特定字符或子串进行操作。知识准备字符串是若干个字符有序拼接而成的文本值,在存储方式上类似数组。Java用String类描述字符串,将字符串当作对象进行了封装,方便对字符串进行操作。一、创建字符串在Java中,使用关键字String声明字符串。与char不同的是,字符串中可以包含若干个字符,能显示任何文本信息,且字符串中的字符必须包含在双引号中。二、连接字符串在程序设计中,有时需要将多个字符串连接起来生成一个新的字符串,例如本书的案例中常用到连接多个字符串以输出信息。案例——打印购物小票本案例通过连接字符串,打印一张购物小票。(1)新建一个Java项目,在项目中添加一个名为BirthdayTest的类。(2)引入java.util.Scanner类,然后在类定义中添加main()方法,编写实现代码。(3)运行程序,结果如图所示。三、提取字符串内容Java将字符串作为对象进行处理,因此可以使用String类的方法执行多种操作,如获取字符串的长度、返回指定位置的字符、提取字符串的子串,等等。下面简要介绍几种常用的操作方法。1.获取字符串的长度与数组类似,获取字符串的长度使用String类的方法length()。2.获取指定位置的字符使用charAt()方法可以获取字符串中指定位置的字符,返回类型为char3.获取指定字符或子串的位置如果要得到指定字符在字符串中首次出现的位置,可以使用indexOf()方法,返回类型为int。如果指定的字符或子串不存在,则返回-1。4.提取子串使用substring()方法可以在字符串中提取指定范围的字符子串案例——显示出生日期(1)新建一个Java项目,在项目中添加一个名为BirthdayTest的类。(2)引入java.util.Scanner类,然后在类定义中添加main()方法,编写实现代码。(3)运行程序,结果如图所示。四、判断字符串在实际应用中,有时会需要判断字符串中是否包含指定的字符串,字符串是否以指定的字符串开头或结束,以及比较两个字符串是否相同。Java提供了相应的方法实现这些需求。1.contains()方法该方法可以判断字符串中是否包含指定的字符串,返回布尔类型的逻辑值。2.startsWith()方法该方法可以判断字符串是否以指定的字符串开头,返回布尔类型的逻辑值。3.endsWith()方法该方法可以判断字符串是否以指定的字符串结束,返回布尔类型的逻辑值。4.equals()方法该方法可以判断当前字符串是否与指定的字符串相同,返回布尔类型的逻辑值。5.equalsIgnoreCase()方法在实际应用中,有时要求只要两个字符串的长度和内容相同,就可认定两个字符串相同。例如输入登录用户名和密码时不区分大小写。案例——按类别统计商品库存本案例将商品名称和对应的库存量以“名称(库存量)”的形式存储在一个字符串数组中,通过String类的一些方法统计各类商品的库存总量。(1)新建一个Java项目,在项目中添加一个名为Inventory的类。(2)在类定义中添加main()方法,编写实现代码。(3)运行程序,在控制台窗格中可以看到各类商品的库存总量,如图所示。五、转换字符串Java提供了丰富的方法处理字符串,可以将字符数组或者字节数组转成字符串,也可以将基本数据类型或者对象转成字符串,还可以修改字符串的大小写和内容,以及将字符串转换为数组。下面介绍几个常用的转换字符串的方法。1.大小写转换转换字符串内容的大小写可以使用方法toUpperCase()和toLowerCase(),这两个方法分别将字符串中的所有字符转换为大写和小写。2.其他类型转换为字符串String类提供了一个静态方法valueOf(),用于将基本数据类型、对象或字符数组转换为字符串3.将字符串转成字符数组或字节数组上面介绍了将字符数组转换为字符串的操作,Java还支持将字符串转换为字符数组或字节数组4.替换字符串内容利用replace()方法可以替换字符串中指定的字符序列,返回一个新的字符串。5.将字符串转换为字符串数组这种操作其实就是将字符串根据给定的分隔符进行拆分,返回一个字符串数组。6.去除字符串两端的空格使用方法trim()可以删除字符串首尾外的空格案例——搜索货架上的商品本案例使用一个3×3的二维数组模拟一个3层的货架,每层分3格存放商品。通过在控制台输入要搜索的商品名称或关键字,可输出搜索到的商品名称和所在位置。(1)新建一个Java项目,在项目中添加一个名为SearchGoods的类。(2)引入java.util.Scanner类,然后在类定义中添加main()方法,编写实现代码。(3)运行程序,在控制台窗格中根据提示输入要搜索的商品名称或其中一个字,按Enter键即可输出搜索到的商品信息,如图所示。任务2StringBuffer类字符串任务引入临近毕业,小白编写了一个程序,使用字符串存储同学姓名和电话,按学号输出全班同学的通讯录,最近遇到了一些小麻烦。原来有的同学因某些原因联系不上手机号,要备注一下实习单位的座机号,有的同学要修改通信地址。这样一来,由于字符串的长度发生了变化,运行时总是出错。Java中有没有容量可变,可以修改字符串序列的字符串呢?知识准备上一个任务中介绍的String类创建的字符串一旦创建就不可修改。本任务将介绍一种可修改的字符串——使用StringBuffer类创建字符串,而且这种字符串的长度会随着存放的字符串增加而自动增加。一、创建StringBuffer对象StringBuffer类是一个类似于String类的字符串缓冲区,可以存储任意类型的数据,且支持对字符串内容进行修改,长度可变。要使用缓冲区,先要建立StringBuffer对象。创建StringBuffer对象不能通过直接赋值为字符串常量的方式,而应该使用关键字new二、添加数据在字符串缓冲区中添加数据有两个方法append()和insert()方法append()可将任意数据类型的参数转换为字符串,然后追加到字符序列末尾。方法insert()用于将字符串插入到指定的索引位置。三、删除数据在字符串缓冲区中删除数据也有两个方法delete()和deleteCharAt()案例——调整员工花名册某公司按员工编号编排花名册,最近有员工离职,也有新员工入职。为了保持其他员工编号不变,新进员工的名单添加到离职员工的位置。本案例使用StringBuffer类的相关方法调整员工花名册。(1)新建一个Java项目,在项目中添加一个名为EmployeeList的类。(2)在类定义中添加main()方法,编写实现代码。(3)运行程序,根据提示在控制台分别输入离职员工姓名和新进员工姓名,即可输出调整后的员工花名册,如图所示。四、修改数据字符串缓冲区创建后,还可以进行修改,常用的操作包括替换指定范围内的字符、将原字符串设置为指定长度不是最后一个员工离职

最后一个员工离职案例——比较String和StringBuffer对象的区别本案例分别对String类和StringBuffer类创建的字符串进行修改,比较两者的区别。(1)新建一个Java项目,在项目中添加一个名为SBFDemo的类。(2)在类定义中添加main()方法,编写实现代码。(3)运行程序,在控制台窗格中可以看到运行结果,如图所示。五、反转字符串利用reverse()方法可以反转字符串,语法格式如下:六、其他方法StringBuffer类还提供了一些与String类相同的方法。例如,可以使用substring()方法可以提取子串。使用indexOf()方法获取指定字符串首次出现的位置;lastIndexOf()方法可以反向搜索,返回指定子字符串在当前字符串中最后出现的位置。案例——输出网络号码本案例在控制台输入IP地址,利用lastIndexOf()方法和substring()方法从IP地址中提取网络号码和本地计算机号码。(1)新建一个Java项目,在项目中添加一个名为SBFDemo的类。(2)在类定义中添加main()方法,编写实现代码。(3)运行程序,在控制台根据提示输入IP地址,按Enter键,即可返回该IP地址的网络号码和本地计算机号码,如图所示。项目总结项目实战实战一:姓名排序本实战从控制台接收输入的姓名列表,姓名之间使用逗号分隔。利用字符串转换方法和数组排序方法将姓名字符串转换为字符串数组并排序,最后输出排序后的姓名列表,用空格分隔。(1)新建一个Java项目,在项目中添加一个名为NameSort的类。(2)引入Arrays类和Scanner类,在类NameSort定义中添加main()方法,编写实现代码。(3)运行程序,输入要排序的姓名列表,按Enter键,即可将姓名按升序进行排列,如图所示。实战二:手机号加密本实战从控制台接收输入的手机号,如果输入的号码长度不为11位,则输出错误提示并要求重新输入,否则用“*”号替换手机号中的第4位到第7位进行加密并输出。(1)新建一个Java项目,在项目中添加一个名为PhoneNum的类。(2)引入Scanner类,在类PhoneNum定义中添加main()方法,编写实现代码。(3)运行程序,在控制台根据提示输入手机号,按Enter键,即可返回加密后的号码,如图所示。项目六

类与对象任务1创建类任务2使用对象任务1创建类任务引入在学习编程语言时,小白总能听到或看到“面向对象”“类”“对象”这样的字眼。在学习Java之初,小白就知道了Java是一门完全面向对象的编程语言,但不知道面向对象是如何在程序中体现的,Java是如何将现实世界中的一个实体(例如水杯)和程序世界中的代码逻辑联系在一起,对应起来的。带着这些疑问,小白继续Java学习之旅。知识准备面向对象的思想是采用数据抽象的方法构建程序的类、对象和方法。类是一个抽象的概念,表示对现实生活中一类具有共同特征的对象的抽象化,定义一类对象所具备的属性和方法。一、定义类类是面向对象语言中最常用的元素,在面向对象编程中,类可看作是定义了对象属性和行为的对象载体。1.类的修饰符包括访问权限修饰符、最终类修饰符final和抽象类修饰符abstract三种。2.类名用于描述类的功能的标识符,最好具有实际意义,能见名知意,以便理解类中描述的内容。类的命名规则建议遵循Pascal命名法(帕斯卡命名法),即每个单词的首字母大写。3.类体对一类具有共同特征的对象所具有的属性和方法的定义。二、定义成员变量成员变量的定义方法与变量的定义方法类似,只是在变量前面可以加上修饰符。类成员的修饰符包括public、protected或者private;静态变量修饰符static;常量说明符final。在类中定义成员变量后,加载类时,会自动为其中的变量赋值为相应数据类型的默认值,如表所示。案例——定义类Table本案例定义一个圆桌类Table,包含直径大小、颜色和价格属性。(1)新建一个Java项目ClassDemo,添加一个类Table。(2)在类中定义成员变量。三、定义成员方法方法是将完成同一功能的代码按逻辑组织在一起,方便调用的一种方式。访问修饰符可以是类成员访问修饰符中的任意一种,如果省略,则只能在当前类及同一个包中的类中进行访问。方法的返回值可以是任意的数据类型,如果指定了返回值类型,则必须使用return关键字返回一个与之类型匹配的值。如果没有指定返回值类型,必须使用void关键字表示没有返回值。方法名通常遵循Pascal命名法进行命名,用于描述方法所实现功能。参数列表用于指定方法使用的参数,使用“数据类型参数名”的形式定义。案例——计算阶乘(1)新建一个Java项目FactorialDemo,添加一个类FactorialDemo。(2)在类中添加main()方法和自定义的成员方法factorialX()。方法main()中调用成员方法,输出计算结果。(3)运行程序,在控制台中根据提示输入一个整数,按Enter键返回计算结果。输入参数为负数、0和正整数的运行结果分别如图所示。四、构造方法在类中除了成员方法之外,还可以定义一种特殊的方法——构造方法。构造方法是一个与类同名的方法,用于根据类的定义创建一个对象。构造方法具有以下特点:构造方法名与所在类的类名相同构造方法没有返回值,不能指定返回类型,也不能定义为void构造方法用于初始化无static修饰的成员变量五、创建内部类为便于程序维护,通常一个.java文件中只定义一个类。如果在项目中,类与接口或两个接口之间的方法命名有冲突,这种情况下,必须使用内部类来解决,这也是唯一一种必须使用内部类的情况。所谓内部类,就是在一个类内部定义的类,作为类的成员,编译后生成两个独立的类。内部类可用static、protected和private修饰,而外部类只能使用public或缺省修饰符。内部类可视为外部类的一个成员,内部类方法可以访问所在的外部类定义的数据,包括私有的数据结构,但外部类不能直接访问内部类的成员。案例——描述书架上可放的图书数量本案例使用内部类描述一个书架上可放的最多图书数量。(1)新建一个Java项目BookShelf,添加一个类BookShelf,该类作为外部类。(2)在类中定义一个内部类Books描述图书数量信息(3)运行程序,在控制台窗格中可以看到输出结果,如图所示。任务2使用对象任务引入小白喜欢小鸟,他创建了一个Bird类,定义了鸟类的翅膀、爪子、羽毛和喙等属性。除了这些共有的属性,不同的小鸟有不同的特征,不同的行为。怎么才能通过Bird类创建属性和行为各不相同的小鸟呢?能否在Bird类的基础上添加游禽特有的属性和行为,创建一个游禽类呢?知识准备所谓面向对象是指在编程时将任何事物都看成是一个对象来描述。对象是面向对象程序的核心,对应概念世界中的实体。一个对象是一个程序单元,将一组数据和对这些数据的各种操作组合在一起。对象包括属性和方法,对象中的数据称为属性,对象中的各种操作称为方法,用于描述对象的功能。一、实例化对象定义了类及其中的类成员之后,就可以在程序中创建类的对象,访问类中的成员。创建类的对象,可以理解为基于一个模板定制一个对象。二、访问类成员创建对象后,就可以通过“对象名”调用类中的成员案例——访问Table类成员本案例定义一个类,然后创建类对象,通过调用类的方法,输出类中定义的属性值。(1)打开Java项目ClassDemo。(2)在类Table中添加一个无参构造方法、一个带参数的构造方法以及main()方法。(3)运行程序,打开控制台窗口,显示运行结果,如图所示。三、获取、设置成员变量的值在上一节中,使用“对象名.成员变量名”的方式访问成员变量,可以设置和获取成员变量的值。但在实际应用中,为保证数据安全,通常不可直接访问或修改成员变量的值。如果要查看、修改这类成员变量,Java提供了专门的成员方法来访问成员变量,获取成员变量值的方法称为getter方法,设置成员变量值的方法称为setter方法。案例——计算圆柱体的体积本案例定义一个圆柱体的类,使用无参数构造方法创建一个圆柱体对象,通过getter方法和setter方法访问圆柱体的底面半径和高,计算圆柱体的体积。(1)新建一个Java项目VolumeCompute,添加一个类Cylinder。(2)在类中定义成员常量和变量,以及setter方法和getter方法,然后添加main()方法。(3)运行程序,在控制台窗格中可以看到圆柱体的参数和体积,如图所示。四、方法重载面向对象编程的多态特性,简单来说,就是“对外一种定义,内部多种实现”。方法重载是面向对象编程多态特性的一种表现形式。Java支持方法重载,可以在同一个类中定义多个名字相同但参数不同的方法。同一个方法名就是对外的统一接口,参数不同导致内部实现也不同。在Java中,定义重载的方法必须遵循以下原则:方法名相同,包括大小写方法的参数列表必须不同,可以是参数的类型、个数或顺序不同方法的返回类型、修饰符可以相同,也可以不同案例——不同数据类型的减法运算本案例通过方法重载,实现不同的数据类型的减法运算。(1)新建一个Java项目MinusDemo,添加一个类MinusDemo。(2)在类中定义5个同名的方法计算减法,然后添加main()方法。(3)运行程序,在控制台窗格中可以看到,根据输入的参数类型不同,自动调用不同的minus()方法进行计算,并输出结果,如图所示。五、类的继承继承的基本思想是基于某个父类的扩展,制定出一个新的子类。子类可以继承父类原有的属性和方法,也可以增加自己特有的属性和方法。例如,等边三角形是一种特殊的三角形,可以说等边三角形类继承了三角形类的所有属性和方法(例如三条边,内角和为180度),还扩展了一些等边三角形特有的属性和方法(例如三条边相等,每个角都为60度)。案例——比较不同包装礼品的区别本案例使用类的继承说明精装礼品与简装礼品在价格上的区别。(1)新建一个Java项目presents,添加一个简装礼品的类Paperback。(2)在类中定义简装礼品的成员属性和成员方法(3)在项目中添加一个新的类clothbound,继承自类Paperback,在类中定义精装礼品的成员属性和成员方法(4)在项目中添加一个新的类PresentsTest,在类中定义主方法main(),比较精装礼品和平装礼品的价格差别(5)运行程序,在控制台窗格中可以看到比较结果,如图所示。六、使用静态成员在Java中,如果不同的类之间需要对同一个变量或方法进行操作,可以使用关键字static修饰这个共享变量或方法,将其定义为静态变量或静态方法,统称为静态成员。相对地,无static修饰的成员则称为动态成员。与类的动态成员依赖类的实例(即具体的对象)不同,类的静态成员不依赖于类的实例,在不创建类对象的情况下就可以直接通过类名进行访问,且这些静态成员被类的所有实例共享。因此,动态变量常称为实例变量,静态变量则称为类变量。案例——计算快递费用假设某快递公司只接收重量小于等于100KG的包裹,运费按重量计算,到上海首重12元,续重1.01~20KG,每千克加收4元;续重20.1~50KG,每千克加收3.5元;续重50.1~100KG,每千克加收3元。本案例根据包裹重量计算首重调整前后的快递费用。(1)新建一个Java项目PackageFee,添加一个类PackageFee。(2)在类中将首重费用定义为静态变量,添加类的成员方法计算运费、调整首重价格,然后添加主方法创建类的对象,输入包裹重量,调用静态变量和成员方法计算运费。(3)运行程序,在控制台窗格中根据提示输入包裹重量和新的首重价格,即可计算对应的运费,如图所示。项目总结项目实战实战一:定义Student类本实战定义一个学生类StudentInfo,包含一个自定义的构造函数为类中的属性赋值,一个成员函数用于输出学生信息。(1)新建一个Java项目StudentClass,在项目中添加一个名为StudentInfo的类,并定义类成员(2)运行程序,结果如图所示。实战二:查看联系人信息本实战通过重载构造方法,根据联系人信息的完整程度输出相应的联系人信息。(1)新建一个Java项目,在项目中添加一个名为ContactInfo的类,并定义类成员(2)运行程序,在控制台窗格中可以看到输出信息,如图所示。项目七常用的JavaAPI任务1认识JavaAPI任务2常用类库任务1认识JavaAPI任务1认识JavaAPI任务引入小白在查看Java程序代码时,发现很多程序都是以关键字package和import引导的语句开头,这些语句是什么意思呢?其后引导的标符识又代表什么,有什么功能呢?在网上经常看到的JavaAPI又是什么呢?知识准备一、什么是JavaAPIJavaAPI是Java应用程序编程接口(JavaApplicationProgramInterface)的英文首字母缩写,是系统提供的已实现的Java标准类库的统称。Java类库也称为运行时库,是Java语言的重要组成部分,提供了Java程序与运行它的Java虚拟机之间的接口。二、常用的包Java提供的预定义类根据实现的功能不同,可以划分为不同的集合,每个集合是一个包,这些包合称为类库。下面简要介绍Java的一些基本包。java.lang:这是Java的核心语言包,包含运行Java程序必不可少的系统类,例如System类、String类、Exception类。由于JVM会自动引入这个包,因此不需要引入就可直接使用该包中的类。java.util:该包提供一些实用工具类,例如时间类Date、随机数类Random和集合类Collection等等。java.io:该包提供各种输入流类和输出流类,包含实现Java程序与操作系统、用户界面以及其他Java程序进行数据交换的类。java.awt:这是一个抽象窗口工具集包,包含用于构建GUI(图形用户界面)程序的基本类和绘图类。java.awt.event:该包包含用户与界面交互的事件类、监听器接口等,使程序可以用不同的方式处理不同类型的事件。java.sql:这是一个实现JDBC(Javadatabaseconnection)的包,能实现Java程序访问不同种类的数据库的功能。:该包是Java语言实现网络功能的类库,例如Socket类、URL类等等。利用这些类,开发者可以编写具有网络功能的程序。javax.swing:该包提供一组完全由Java语言实现的图形用户界面组件,并能尽可能地让这些组件在所有平台上的工作方式都相同。查看API文档三、包的声明与引入声明包可以将Java的类放到特定的包中,Java使用关键字package声明包在Eclipse的“PackageExplorer”窗格中可以看到对应的文件结构关系,如图所示。案例——利用Eclipse创建包本案例在Eclipse中创建一个包,并在包中创建一个类。(1)新建一个Java项目PackageDemo,右击项目中的src节点,从弹出的快捷菜单中选择“New”→“Package”命令,打开“NewJavaPackage”对话框。Sourcefolder文本框中显示默认的源文件路径。(2)在Name文本框中输入包名称,如图所示。(3)单击“Finish”按钮关闭对话框,即可创建包。“NewJavaPackage”对话框创建包(4)在包demo上右击,从弹出的快捷菜单中选择“New”→“Class”命令,打开“NewJavaClass”对话框。(5)单击“Finish”按钮关闭对话框,在Eclipse的编辑区可以看到自动生成的包声明语句和类定义代码:

创建类创建的类任务2常用类库任务引入了解了JavaAPI的功能,小白感觉就像发现了一个巨大的宝库,原来很多要编写大段代码实现的基本功能,Java已编写好并预置在系统中。要使用这些功能高效编码,接下来的任务就是掌握这些类库的常用方法。小白跃跃欲试,决定先从最常用的几个类库开始Java学习的晋级之路。知识准备了解了API的功能和使用方法,本任务介绍几个常用的类库。一、包装类在前面的项目中介绍过,Java的数据类型分为两种:基本数据类型和引用数据类型。引用数据类型包括所有的类和接口类型,例如String类,可以视为一个对象进行处理。能否将基本数据类型也作为对象进行处理呢?基本数据类型对应的包装类如表所示。Byte类、Short类、Integer类、Long类、Float类和Double类都是Number类的子类,要把这些子类对象转换为对应的基本数据类型,需要使用Number类对应子类中的方法,如表所示。创建了对象,就可以引用方法对对象进行操作。Integer类的常用方法如

温馨提示

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

评论

0/150

提交评论