整套课件教程java程序设计

上传人:沈*** 文档编号:230303165 上传时间:2023-08-23 格式:PPT 页数:252 大小:1.72MB
返回 下载 相关 举报
整套课件教程java程序设计_第1页
第1页 / 共252页
整套课件教程java程序设计_第2页
第2页 / 共252页
整套课件教程java程序设计_第3页
第3页 / 共252页
点击查看更多>>
资源描述
JavaJava程序设计程序设计单元1 构建应用程序开发环境工作任务(1)建立餐饮系统的开发环境(2)用Java程序输出餐饮系统的作者姓名(3)用Java程序输出餐饮系统的作者姓名和运行时间1.1引导资料 Java的由来Java的特点 平台无关性 安全性 面向对象 简单性 动态特性 分布性 多线程教学项目功能简述游戏项目(1)贪吃蛇游戏功能简介贪吃蛇游戏主要功能是能通过按键(方向键:向上、向下、向左、向右)来控制蛇体的运行方向。当蛇体碰到食物时即可吞食食物,蛇体增长,同时可得分。当蛇体碰到墙体时,游戏结束。游戏可通过开始按钮、暂停/继续按钮、停止按钮等按钮来控制蛇体的运行状态。同时在界面中即时显示蛇体的状态、速度、得分等信息。贪吃蛇游戏界面教学项目功能简述游戏项目(2)连连看游戏功能简介连连看游戏的主要功能是通过鼠标单击相同的两个图片,若图片间的边线在两个拐弯内即可连通消除。在该项目中能够选择等级并对当前等级的各种状态进行记录,如某级别的玩家记录、窗体设置等。能通过按钮有效地对游戏进行控制,如开始/停止、重置图片、提示、演示等功能。连连看游戏界面教学项目功能简述数据库项目(1)餐饮管理系统功能简介餐饮管理系统的主要功能是对菜品进行增加、删除、修改,能对菜品进行分类查询,并能够完成点菜功能,同时生成点菜单,结算打印小票等。(2)会员信息管理系统功能简介会员信息管理系统的主要功能是对会员信息进行增加、删除、修改,并能按会员类别进行分类查询。1.2 阶段任务实施 引导任务1-1 建立餐饮系统的开发环境 任务目标:能用正确配置Java开发环境。实现过程:(1)首先安装JDK(Java Development Kit)(2)再安装集成开发环境(IDE)1.2 阶段任务实施 引导任务1-2 用Java程序输出餐饮系统的作者姓名 任务目标:能用NetBeans编写第一个Java程序。实现过程:(1)打开NetBeans。(2)创建一个Java项目,项目名称为JavaBookApp。(3)手动编写Java源程序。1.2 阶段任务实施 引导任务1-2 用Java程序输出餐饮系统的作者姓名 任务目标:能用NetBeans编写第一个Java程序。程序代码:public class TestRepast public static void main(String args)System.out.println(餐饮系统的作者是:sunny!);编译并运行程序。1.2 阶段任务实施 引导任务1-3 用Java程序输出餐饮系统的作者姓名和运行时间 任务目标:认识Java程序的基本结构。实现过程:(1)在NetBeans中repast项目下新建一个TestRepast2的Java文件。(2)在TestRepast2文件中输入程序代码。代码分析:认识Java程序的基本结构 程序基本结构:1、包 2、注释3、导入包4、类定义 类变量定义 类方法定义 5、方法体类体类体1.3 知识解析1、开发Java程序的步骤开发Java程序的步骤可归结为如下3 步:编写源程序:用Java语言描述程序指令,以.java作为程序文件扩展名。编译:经编译器翻译后结果以.class作为扩展名,称之为字节码文件。运行:在Java平台上运行.class文件。1.3 知识解析2、认识Java包包在很大范围内实现面向对象程序设计的封装机制,它把一组类和接口封装在一个包中,这为管理大量的类和接口提供了方便,也有利于这些类和接口的安全。1.3 知识解析3、包声明 package 包名;例如:package veg1;/定义了该类位于veg1包中。package veg1.veg2;/定义该类对应于包veg1的子包veg2中。说明:一个Java程序文件中最多只能有一个包声明。1.3 知识解析4、import 语句 对于已经编写好的类,如果在新类中需要使用,应该将已经定义的类包含进来。Java的import语句用于包含所需要的类。例如:import java.applet.Applet;import java.awt.*;说明:一个Java程序文件中可以有多个import语句。1.3 知识解析5、认识Java类 类是Java的心脏,整个Java语言就是建立在类的逻辑基础上的,每一个Java程序都要有至少一个类。最基本的常用的定义方式:public class 类名 /类实体 类名要合符Java标识符的规则。在一个Java程序文件中,若有多个类的定义,应注意Java程序文件的命名。1.3 知识解析6、认识main方法 在Java的每个应用程序中,都必须有一个main方法,Java解释器运行字节码文件时,首先寻找main方法,然后以此为程序的入口点开始运行程序。1.3 知识解析7、输出打印语句:System.out.println()其作用是将括号中的字符串内容显示在屏幕上,并回车换行。大小写问题。语句:System.out.print()其作用与System.out.println()语句相似,只是不会换行。1.3 知识解析8、连接符号在打印输出时可用“+”号将多个数据连接起来,作为一个整体来显示。如:System.out.println(“青菜的价格为:”+8.0+“元”)。1.3 知识解析9、初学者常犯错误(1)类名与源程序文件名不一致;(2)中英文符号问题;(3)大小写问题。(4)、()不成对或交错出现。1.3 知识解析10、断点调试 Netbean断点调试方法:(1)设置断点:在程序代码窗口中,单击需要设置断点的代码行号,即可设置行断点。(2)按Ctrl+Shift+F5调试当前程序,程序运行到断点之后,按F5可继续执行当前程序。1.4 训练任务任务内容(1)创建贪吃蛇游戏项目。(2)创建连连看游戏项目。(3)创建学生信息管理系统项目。(4)在学生信息管理系统项目student中创建一个Java程序,输出你们班的名字、人数、男生数、女生数等信息。(5)更正下面的程序代码,并运行输出结果。public class Ch0101 public static void main(String args)system.out.println(*)system.out.println(*)system.out.println(*)JavaJava程序设计程序设计单元2 利用符号构建Java语句 工作任务(1)输出一次餐饮消费中的消费清单(2)输出会员在一次餐饮消费中的消费清单 阶段一:标识符、数据类型与变量引导任务2-1 输出一次餐饮消费中的消费清单 任务目标:能正确使用Java符号、数据类型以及变量和常量。设计要求:用常量来完成清单提示数据,消费清单具有顾客所消费的菜的名称、单价、数量及价格小计等。实施过程:在项目repast中新建一个包ch02.part1,并在该包中新建一个类TestVar,通过打印输出语句直接将信息显示在界面上。2.2 知识解析1、Java的字符集 Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准。2、标识符 Java语言中,为了有效地表示事物属性及其值的运算,程序中给所有的事物属性都采用一种符号化名称,这种名称就叫标识符。标识符必须是以一个字母、下划线或美元符号“$”开始的一串字符,后面的字符可以是字母、数字、下划线、美元符号等。2.2 知识解析3、关键字 关键字是为特定目的而保留的保留字,故也称保留字。关键字是Java语言本身占用的,不能做其它用途使用的符号。4、分隔符与注释 分隔符起分隔单词符号的作用。包括分号;、花括号和空白符号。注释中的内容会被编译器忽略,不出现在执行程序中。2.2 知识解析5、数据类型 在程序设计中,使用数据类型来标识一个数据是属于哪个类别的,且现实事物各种属性的数据都能找到与之匹配的类型。在Java中,数据类型可划分为简单类型和复合类型。6、变量与常量 变量和常量的类型与数据类型相对应的,即一个变量或常量仅是属于某一种数据类型的。常量是指在程序执行过程中其值不可发生变化的量。变量是指在程序执行过程中其值可发生变化的量,在使用时必须先声明。2.2 知识解析7、数据类型的转换 整型、实型、字符型数据可以混合运算,运算过程中,不同的类型数据要先转换为同一类型的数据才能进行运算。数据类型转换表:原始类型目标类型原始类型目标类型Byteshort,char,int,long,float,doubleintlong,float,doubleShortint,long,float,doublelongfloat,doublecharint,long,float,doublefloatdouble2.3 训练任务 1、跟我学 完成引导任务2-1的程序设计与调试工作,具体内容见引导任务2-1。2、自己做(1)使用变量输出贪吃蛇游戏当前的状态、运行速度、得分。(2)使用常量定义贪吃蛇游戏中的相关信息,如蛇的初始长度、初始速度、加速或减速的幅度等。阶段二:操作符与表达式任务2-2 输出会员在一次餐饮消费中的消费清单 任务目标:学会运算符、表达式设计要求:消费清单具有顾客所消费的菜的名称、单价、数量及价格小计等,并根据会员折扣进行结算后输出。实施过程:在项目repast中新建一个包ch02.part2,并在该包中新建一个类TestMemCon,通过使用常量title1、title2完成清单头的内容,用变量name、price、num等临时存储相应数值,用变量IsMember来表示是否是会员,并按会员进行结算。2.5 知识解析1、运算符与表达式 Java的运算符代表着特定的运算指令,程序运行时将对运算符连接的操作数进行相应的运算。表达式:运算符与操作数的组合构成表达式,其代表着一个确定的数值。2、赋值运算符 赋值运算符把常量、变量或表达式的值赋给一个变量,赋值运算符用等号“=”表示。赋值运算符遵循向右至左的结合性,即将“=”右边的表达式值赋给其左边的变量。2.5 知识解析3、算术运算符 算术运算符如下表:算术运算符说明+正值运算符、加法运算符-负值运算符、减法运算符+自增运算符-自减运算符*乘法运算符/除法运算符%求余运算符2.5 知识解析4、关系运算符 关系运算进行比较运算,通过两个值的比较,得到一个boolean(逻辑)型的比较的结果,其值为“true”或“false”。在Java语言中“true”或“false”不能用“0”或“1”来表示,而且这两个逻辑值必须用小写“true”与“false”。5、逻辑运算符 Java语言中,提供了6种逻辑运算符,逻辑运算符的运算结果为逻辑型“true”或“false”。2.5 知识解析6、位运算符 使用任何一种整数类型时,可使用位运算符对这种数据的二进制位进行操作。7、条件运算符 条件运算符的使用方式由“?”和“:”连接的三个操作数构成。一般的形式为:表达式1?表达式2:表达式3 执行的顺序为:先求解表达式1,若为真,取表达式2的值作为最终结果返回,若为假,取表达式3的值为最终结果返回。2.5 知识解析8、其它运算符 其它运算符如下表:符号功能()表示式加括号则优先运算(参数表)方法的参数传递,多个参数时用逗号分隔(类型)强制类型转换.分量运算符,用于对象属性或方法的引用 下标运算符,引用数组元素instanceof对象运算符,用于测试一个对象是否是一个指定类的实例new对象实例化运算符,实例化一个对象2.5 知识解析9、运算符优先级 在实际的开发中,可能在一个运算符中出现多个运算符,那么计算时,就按照优先级级别的高低进行计算,级别高的运算符先运算,级别低的运算符后计算。具体优先级见右表:优先级运算符结合性1().从左到右2!+(正)-(负)+-从右向左3*/%从左向右4+(加)-(减)从左向右5 从左向右6 =instanceof从左向右7=!=从左向右8&(按位与)从左向右9从左向右10|从左向右11&从左向右12|从左向右13?:从右向左14=+=-=*=/=%=&=|=从右向左2.6 训练任务 1、跟我学 完成引导任务2-1的程序设计与调试工作,具体内容见引导任务2-1。2、自己做(1)模拟贪吃蛇吃到食物后计算并输出新得分程序。(2)模拟连连看游戏判断是否打破记录的程序。JavaJava程序设计程序设计单元3 利用控制结构实现程序业务逻辑 Java语言课程组工作任务(1)改进在一次餐饮消费中的消费清单的输出程序(2)根据餐饮会员的积分值,判断会员的等级(3)设计出可供三种会员等级消费的选择主界面(4)输入某顾客一次餐饮消费中的消费清单(5)设计餐饮系统的登录界面(6)设计餐饮系统登出时的界面(7)用程序描述顾客点菜的过程阶段一:分支结构if语句 引导任务3-1 改进在一次餐饮消费中的消费清单的输出程序 任务目标:学会if分支控制结构设计要求:消费清单具有顾客所消费的菜的名称、单价、数量及价格小计等,并能从键盘输入接受一个值,根据该值判断是否为会员,从而判断是否是会员进行结算。实施过程:在项目repast中新建一个包ch03.part1,并在该包中新建一个类IsMember,通过使用常量title1、title2完成清单头的内容,用变量name、price、num等临时存储相应数值。通过从键盘输入数据,判断是否是会员,以改变变量member值。并通过if语句进行会员判断,若是会员则按会员进行结算,若不是则按非会员进行结算。阶段一:分支结构if语句 引导任务3-2 根据餐饮会员的积分值,判断会员的等级 任务目标:学会if分支控制结构设计要求:高于1000分的为金牌会员,大于700分而小于等于1000分的为银牌会员,大于500分而小于等于700分的为铜牌会员,大于200分而小于等于500分的为铁牌会员,小于200分的普通会员。通过键盘读入积分,从而判断其分值所在范围并进行相应的等级提示。实施过程:在项目repast的包ch03.part1包中新建一个类MemberScore,通过键盘输入积分值并将分值存放于变量count中,通过嵌套if结构进行连续条件区间的判断而完成相应的等级提示。3.3 知识解析1、基本if分支结构 基本if结构形式是:if(条件表达式)语句体1;else 语句体2;其中,“else 语句体”可选。流程图:条件表达式语句体1真假语句体23.3 知识解析2、键盘输入 Scanner是在SDK1.5以后新增的一个类,可使用该类创建一个键盘输入对象。Scanner reader=new Scanner(System.in);然后reader对象调用相关方法(函数),读取用户在命令行输入的各种数据类型。3.3 知识解析3、嵌套的if结构 嵌套if结构的形式是:if(条件表达式1)语句体1;else if(条件表达式2)语句体2;else 语句体n;流程图:条件表达式1语句体2假真语句体1条件表达式2真语句体3假3.4 训练任务 1、跟我学 完成引导任务3-1至引导任务3-2的程序设计与调试工作,具体内容见引导任务3-1至引导任务3-2。2、自己做(1)根据按键输出贪吃蛇的当前运行方向。(2)为根据消费总额进行打折。阶段二:分支结构switch语句 引导任务3-3设计出可供三种会员等级消费的选择主界面 任务目标:学会switch控制语句设计要求:能根据会员的选择进入不同的消费区。先通过输出语句完成界面提示,然后检测并接受键盘的输入,并判断该键值,根据选择键值进行相应的等级。实施过程:在项目repast中新建一个包ch03.part2,并在该包中新建一个类SwitchMember,先通过输出语句完成界面提示,然后用变量c获取System.in.read()所取得的键值。再通过开关语句switchcase来完成判断,并根据判断进入不同玩区。3.6 知识解析switch选择结构 基本形式为:switch(表达式)case 值1:语句体1;break;case 值2:语句体2;break;case 值3:语句体3;break;case 值n:语句体n;break;default:语句体n+1;3.6 知识解析switch选择结构 流程图:表达式=值1表达式=值1表达式=表达式=值n语句体1break语句体语句体nbreak语句体2breakbreak语句体n+13.6 知识解析switch选择结构 switch选择语句的表达式的值应为一个byte、short、int、char类型的数值。switch选择结构目的就是为了从众多情况中选择所希望的一种去执行,故而,每一分支语句中都用break语句作为结束。switch选择语句中可以有一个default语句作为所列分支都不匹配时的出口。3.7 训练任务 1、跟我学 完成引导任务3-3的程序设计与调试工作,具体内容见引导任务3-3。2、自己做(1)根据按键输出贪吃蛇的当前运行方向。(2)从键盘输入2012年的某一月份,打印出该月份的天数。阶段三:循环结构for语句 引导任务3-4 输入某顾客一次餐饮消费中的消费清单 任务目标:学会for循环控制结构设计要求:能通过键盘的输入消费清单数据,如菜品名称、单价、消费数量等。循环接受键盘的输入,直到输入完清单中条目。实施过程:在项目repast中新建一个包ch03.part3,并在该包中新建一个类ConList,先通过用Scanner对象input获取键盘的输入数据,然后通过循环语句for进行循环输入消费信息并输出。3.9 知识解析for循环结构 一般格式为:for(循环初始值;循环条件;循环增长量)循环体 流程图:循环初始值循环体循环增长量循环条件真假3.9 知识解析for循环结构for循环结构中的初始值、测试条件及增长量皆由表达式组成,三者皆为可选的。如果连测试条件都没有,那么将是无穷循环。“循环初始值;循环条件;循环增长量”三者之间用分号“;”隔开,故每个部分可以有几个表达式,每个表达式之间用逗号“,”隔开。for结构常常临时说明局部变量作为循环变量使用,当for循环结束时,这种临时局部变量即失效。3.10 训练任务 1、跟我学 完成引导任务3-4的程序设计与调试工作,具体内容见引导任务3-4。2、自己做(1)模拟贪吃蛇连续吃到10个事物的过程。(2)利用for循环打印出以下格式的内容。阶段四:循环结构while语句与dowhile语句 引导任务3-5 设计餐饮系统的登录界面 任务目标:学会使用while循环语句。设计要求:要求三次登录不成功则退出登录界面。循环接受键盘的输入,并判断每次输入的数据是否合要求,若合符要求,则进行系统,否则重新输入数据。三次输入不成功则退出登录界面。实施过程:在项目repast中新建一个包ch03.part4,并在该包中新建一个类WhileLogin,先通过用Scanner对象input获取键盘的输入数据,然后通过循环语句while进行三次循环限定。阶段四:循环结构while语句与dowhile语句 引导任务3-6 设计餐饮系统登出时的界面 任务目标:学会使用dowhile循环语句。设计要求:当餐饮系统正在进行时被用户关闭时,要询问是否还要进行使用,以增强交互。循环接受键盘的输入,根据输入判断是否登出系统。实施过程:在项目repast的包ch03.part4包中新建一个类Ch0209,通过循环语句dowhile循环检测Scanner对象input获取的输入数据。若为字符“y”则游戏结束,否则继续新游戏。3.13 知识解析1、while循环结构 while循环结构的表达形式为:while(循环条件)语句体 其中“循环条件”为一个逻辑表达式。流程图:循环体改变循环条件循环条件真假3.13 知识解析2、dowhile循环结构 dowhile循环结构的表达形式为:do 语句体 while(表达式);流程图:假循环体循环条件真3.14 训练任务 1、跟我学 完成引导任务3-5与引导任务3-6的程序设计与调试工作,具体内容见引导任务3-5与引导任务3-6。2、自己做(1)模拟贪吃蛇碰到墙体时退出的过程。(2)模拟会员抽奖。阶段五:控制转移 引导任务3-7 用程序描述顾客点菜的过程 任务目标:学会使用控制转移结构。设计要求:能从键盘依次输入顾客所点的菜。并要循环接受键盘的输入,根据输入判断是否继续点菜。实施过程:在项目repast中新建一个包ch03.part5,并在该包中新建一个类CusSelVeg,通过循环语句while循环进行询问,并检测Scanner对象input获取的输入数据,若输入的字符“y”则继续点菜,否则结束点菜。3.16 知识解析1、continue continue语句有两种形式:continue;continue 标号;流程图:3.16 知识解析1、continue continue语句的作用就是提前继续下一个循环,即:如果正在进行第N次循环,就增加循环变量,测试循环条件,如果符合,进入第N+1次循环。第二种用法“continue标号;”用在希望结束内部循环而继续外部循环,同时不希望外部循环从头开始。3.16 知识解析2、break break语句亦有两种形式 break;break标号;流程图:3.16 知识解析2、break break语句用于for、while、dowhile与switch结构中,其语句的作用与continue语句正好相反。执行break语句时,程序跳转到循环结构或选择结构语句块的结束处,执行下一条语句。使用第二种用法“break标号;”时,应在程序中 事先定义一个匹配的标号,且此标号必须在一个完整程序块开始处。3.16 知识解析3、return return语句有以下两种表达形式:return;return(表达式);return语句用于从方法中返回上一级程序。使用第二种形式能向上一级程序返回值一个返回值。若方法的返回值设定为“void”类型,则只能使用第一种返回形式。3.17 训练任务 1、跟我学 完成引导任务3-7的程序设计与调试工作,具体内容见引导任务3-7。2、自己做 模拟贪吃蛇暂停/继续运行的过程。当按键为P时暂停,按键为C时继续,其它键值暂不处理,直到按键为E时退出。JavaJava程序设计程序设计单元4 设计应用程序的类与接口工作任务(1)定义菜品类(2)为菜品类添加主要方法(3)实现餐饮管理系统消费结算功能(4)定义一个用于消费结算的接口4.1引导资料 面向对象的基本概念对象(Object)对象由属性(Attribute)和行为(Action)两部分组成,是数据和行为的统一体。类(Class)共享同一属性和方法集的所有对象的集合构成类。消息(message)为了能完成固有的任务,对象需要与其他对象进行互操作,这是连接对象与外部世界的唯一通道。接口(interface)接口是一个类所具有的方法的特征集合,是一种逻辑上的抽象,接口是消息的通道,通过接口,消息才能传递到具体的处理方法中进行处理。4.1引导资料 面向对象的特性 抽象性封装性 继承性 多态性 多态性多态性 多态性多态性 4.2阶段任务实施 引导任务4-1 定义菜品类 任务目标:能定义类。实现过程:在NetBeans中打开项目repast,然后在该项目中新建一个包ch04.part1,再在ch04.part1包中新建一个类TestVegtable,并为该类添加如P52页的代码,最后保存、编译。4.3 知识解析1、类的声明 类定义的一般形式如下:访问控制修饰 abstract final extends 父类 implements 接口列表 throws 异常类型列表 类体成员变量和成员方法 其中:中的内容是可选的。4.3 知识解析访问控制修饰符主要有friendly和public。abstract修饰符,将一个类声明为抽象类,不能用它来实例化一个对象,只能被继承。因为方法没有被实现,需要子类提供方法的实现。final修饰符,将一个类声明为最终类,一个最终类不可能有子类,也就是它不能被继承。final与abstract不能同时修饰一个类,此种类无意义。关键字class告诉编译器这是一个类,类名是可以自由选取但必需是合法的标识符。关键字extends用来表明创建的类是父类派生的子类,是从父类继承下来的。类名是可以自由选取但必需是合法的标识符。4.3 知识解析关键字implements告诉编译器类实现的接口,说明类可实现的一个或多个接口,如果有多个实现接口,要用逗号分隔。关键字throws告诉编译器类将要抛出的异常类型,编程人员可以在类的声明时指定一个或多个异常,当有多个异常类型时用逗号分隔。类体是类的具体实现,主要包括类的成员变量和成员方法。类只有在通过相应方式创建对象后,其所属的方法和属性才能够被其对象访问。4.3 知识解析2、成员变量 成员变量的定义格式如下:访问控制修饰符 static final transient volatile 其中,中的内容是可选的。4.3 知识解析访问控制修饰符主要包括friendly、private、protected和public四种,主要完成变量的访问权限的控制。static(静态)变量:指定该变量被所有对象共享,对所有的实例只使用一个备份,也就是说,静态变量只有一个版本,所有的实例对象引用的都是同一个静态变量。关键字final:一旦成员变量被声明为final,在程序运行中将不能被改变。4.3 知识解析transient:暂时性变量,防止对象序列化。volatile:用来防止编译器在成员上执行某种优化,较少使用。数据类型可以是Java中的简单数据类型、数组、类和接口。成员变量名:在一个类中,成员变量应该是惟一的,且是一合法标识符。4.3 知识解析3、成员方法 成员方法的定义格式如下:访问控制修饰符 static final abstract native synchronized (参数表)throws 异常类型 方法体 其中,中的内容是可选的。4.3 知识解析访问控制修饰符主要包括friendly、private、protected和public四种,主要完成方法的访问权限的控制。static修饰符与成员变量中的static的功能相同。final(最终)方法:成员方法被声明为最终方法后,将不能被了类覆盖,即能被子类继承和使用但不能在子类中修改或重新定义。abstract(抽象)方法:所谓抽象方法是指在类中没有方法体的方法,即只有声明没有实现的方法。native指定此方法实际是用另一种语言(如C)编写的代码存根 4.3 知识解析synchronized使用线程,指定当线程执行时该方法将锁定,防止另一个线程激活它返回值类型:成员方法的返回值类型可以是Java中简单数据类型、数组、类和接口。若方法没有返回值就用关键字void作为返回值类型。方法名:可以是任何一个有效的标识符,方法名最好有实际意义,以增加程序的可读性,方法名可以与成员变量重名。参数表:参数表中要声明参数的类型,并用逗号分隔多个参数。throws(异常)类型:抛出程序在运行时可能发生异常,每一个异常对象都对应着一个异常类。4.3 知识解析4、构造方法 构造方法的定义格式如下:public className()构造方法可视为一种特殊的方法,它用于对象被创建时初始化成员变量或对象,它具有和它所在的类名完全一样的名字。构造方法定义后,创建对象时就会自动调用它。构造方法没有返回类型,这是因为一个类的构造方法的返回类型就是类本身。4.3 知识解析5、this 在编写类时,有时需要引用此类的方法或变量,Java通过this来实现此功能。this代表了当前对象的一个引用,可将其看作是对象的另一个名字,通过this可以在任何方法中引用当前的对象。this的使用方式可归结为以下几种:-用于访问当前对象的成员变量:this.成员变量;-用于访问当前对象的成员方法:this.成员方法;-用于引用同一个类中的构造方法:this(参数)。4.3 知识解析6、方法重载 在Java 中,同一个类中可以有2个或2个以上的方法用同一个名字,只要它们的参数声明或返回值类型不同,该方法就被称为重载(overloaded),这个过程称为方法重载(method overloading)。4.3 知识解析7、内部类 内部类是指在某个类的内部嵌套定义的一个类,内部类可以在一个语句块的内部定义,也可以是其他类的成员,还可以在一个表达式内部匿名定义。其定义格式可表述如下:class 外部类class 内部类 4.3 知识解析内部类不能与包含它的类名相同。内部类可以声明为private和protected。还可以定义为abstract。一个内部类的对象能够访问创建它的外部类对象的所有属性及方法(包括私有部分),也可以使用内部类所在方法的局部变量。4.4 训练任务任务内容(1)创建贪吃蛇中的蛇体类。为蛇体类添加相关属性,如蛇的运动方向标识、蛇头坐标、蛇运行速度等,同时为这些属性提供相关的设置与获取值的方法。(2)创建连连看图片数据的模型类。为该添加相应的数据属性,如游戏级别、总行数总列数、图片数据等,并要求设置这些属性的获取与设置值的方法。4.5阶段任务实施 引导任务4-2为菜品类添加主方法 任务目标:能完成类的实例化。任务目标:能完成类的实例化。实现过程:实现过程:在项目在项目repastrepast中新建包中新建包ch04.part2ch04.part2,并在该包中,并在该包中创建类创建类TestVegMain,TestVegMain,并为该类添加如并为该类添加如P65P65页代码。页代码。最后保存、编译程序,运行最后保存、编译程序,运行 。4.6 知识解析1、对象的创建 Java语言中用创建实例对象的操作符new来创建对象。其格式如下:=4.6 知识解析类是对象的类型名。对象名称,要求是合法标识符。new运算符为新生成的类对象分配到内存空间,使得具体类的定义有实际的物理表示。类构造方法可以是系统默认的构造方法,也可以是用户自定义的,生成对象时是通过执行构造方法来进行初始化的。4.6 知识解析2、对象的使用 对象必须在实例化之后才能够使用,这一点与前面所说的变量一样。其实,变量也可看作是一种特殊数据类型的对象。当对象实例化之后,就可以用点操作符“.”来完成对类成员变量和成员方法的访问操作。对类成员的访问一般形式为:.4.6 知识解析对象名必须先声明,后使用。对象所访问的类成员必须是类定义中所允许的,即必须有相应的成员访问权限 4.6 知识解析3、访问控制 在讲述类的成员变量和成员方法时,都具有相应的访问控制修饰符。Java规定可以选择四种访问方式:public、private、protected和friendly。4.6 知识解析成员变量(方法)的访问控制修饰符 4.6 知识解析Java 类的成员变量(方法)的访问权限 4.6 知识解析5、static 在类的定义中,其成员变量和成员方法如果有static修饰,那么该变量或方法就称为静态变量或方法。相反没有static修饰的变量或方法就称为非静态变量或方法。在Java程序的生命周期中,Java运行环境提供了一个系统的垃圾回收器线程,负责自动回收那些没有引用与之相连对象所占用的内存,这种内存回收的过程就叫垃圾回收。4.6 知识解析6、对象的比较 在Java中我们可以有两种方法来比较两个对象是否相等:一是用“=”运算符;二是用equals方法。在Java程序的生命周期中,Java运行环境提供了一个系统的垃圾回收器线程,负责自动回收那些没有引用与之相连对象所占用的内存,这种内存回收的过程就叫垃圾回收。4.6 知识解析如果是基本类型比较,那么只能用=来比较,即比较基本数据类型的值。如果是对象,则“=”和equals比较的都是对象内存中的首地址(即引用的对象是否为同一个对象)。对于基本类型的包装类型,比如Boolean、Character、Byte、Short、Integer、Long、Float、Double等的引用变量,=是比较地址的,而equals是比较内容的。4.7 训练任务任务内容 完成引导任务4-2的程序设计与调试工作,具体内容见引导任务4-2 4.8阶段任务实施 引导任务4-3实现餐饮管理系统消费结算功能 任务目标:学会使用类的继承与多态性。实现过程:1、在项目repast中新建包ch04.part3,并在该包中新建一个类TestExtendsP,并为该类添加如下代码,最后保存、编译。2、在ch04.part3包中新建一个类TestExtMem,并为该类添加如下代码,最后保存、编译。3、在ch04.part3包中新建一个类TestExt,并为该类添加如下代码,最后保存、编译。4.9 知识解析1、继承 继承是面向对象程序设计的一个重要特征,它是通过继承原有的类而派生出新的类。被继承的类称为父类,派生出新的类为子类,子类继承父类的成员变量和成员方法,同时可以修改父类的变量或重写父类的方法,并可以添加新的变量和方法。4.9 知识解析子类可继承父类中公共(public)类型和保护(protected)类型的成员变量。如果在父类中定义了没有访问权限约束的变量或方法,则子类可以访问父类中的这些方法和变量。子类不能继承父类中被声明为私有(private)类型的成员变量。4.9 知识解析2、隐藏与覆盖 在类的继承中,当子类的成员变量与父类的成员变量同名时,子类的成员变量会隐藏父类的成员变量;当子类的方法与父类的方法同名,参数列表、返回值类型相同时,子类的方法将覆盖父类的方法,当子类重写的方法由子类的对象调用时,它总是参考在子类中的定义,父类中定义的该方法就被覆盖。4.9 知识解析3、super 子类在隐藏了父类的成员变量或重写了父类的方法以后,有时还要用到父类的成员变量,或为简化代码的编写在重写方法中使用父类中的该方法,这时就要访问父类的成员变量或调用父类的方法,Java中通过super关键字来实现对父类成员变量的访问。4.9 知识解析4、抽象类和抽象方法 用abstract关键字修饰类称为抽象类。由abstract关键字修饰的类方法称为抽象方法。一个抽象类可含有抽象方法,但抽象方法不能出现在非抽象类中;一个抽象类不一定要有抽象方法,但一个类如果含有抽象方法就一定要声明为抽象类。4.9 知识解析子类继承了一个抽象类,则该子类需用覆盖的方式来实现该抽象父类中的抽象方法。抽象方法必须在子类中给出具体的实现,若没有实现或没有完全实现抽象方法,则子类还是抽象类。抽象方法可与public和protected修饰符复合使用,但不能与final、private和Static复合使用。4.9 知识解析5、final修饰符 修饰符 final既可修饰类,也可修饰成员变量和成员方法,其用于限制这些被修饰的类、成员变量和成员方法的非继承性,即是最终的一种形式。如果在类的定义时,加上final修饰符,则说明该类是最终类,不能被其他类继承,也不能进行实例化。4.9 知识解析6、多态性 多态是面向对象中的一个重要特征,是指用相同的名字来定义方法,其中每个方法的参数类型和返回值类型均不相同。在Java中,多态性体现在两个方面:由方法重载实现的静态多态性和方法覆盖实现的动态多态性。4.9 知识解析7、初始化的过程 构造方法可能进行初始化工作,而类的成员变量本身也能自动进行初始化,那么,在对象生成时,这初始化过程到底谁先呢?在初始化的过程中,先静态成员,然后是非静态成员,再是构造方法。若有父类,则父类的相关初始化在子类之前。4.10 训练任务任务内容 完成引导任务4-2的程序设计与调试工作,具体内容见引导任务4-2 4.10 训练任务任务内容 用继承创建食物类Food,要求继承Point类,以方便记录食物的坐标位置,参考程序如下。为食物类Food添加主方法,以测试食物的颜色、随机产生的食物的位置等。程序写法参见引导任务4-2与引导任务4-3。4.11阶段任务实施 引导任务4-4自定义一个用于消费结算的接口 任务目标:能定义并使用接口。实现过程:1、在项目repast中新建包ch04.part4,并在该包中新建一个类TestCountInter,并为该接口添加如下代码,最后保存、编译。2、在NetBeans中新建类CountInterImplOne,并为该类添加如下代码,最后保存、编译。3、在NetBeans中新建类CountInterImplTwo,并为该类添加如下代码,最后保存、编译。4、在NetBeans中新建类CountInterDemo,并为该类添加如下代码,最后保存、编译。4.11 知识解析1、接口 接口的定义形式为:public interface 接口名称 extends 父类接口名 /接口体.4.11 知识解析如果使用了public,那么该接口能被任意类实现,反之只有与该接口同一个包中的类才可以实现这个接口。即如果没有指明接口的访问类型,则默认只有相同包中的类可以访问该接口的定义。interface是定义接口的关键字,接口的名字为合法的Java标识符。extends表示该接口有父接口,与类的继承不同,一个类只能有一个父类,而一个接口可以有多个父接口,父接口之间用逗号隔开。接口体包含常量定义在接口中定义的变量全部隐含为public、final和static,且声明的变量必须设置初值。4.11 知识解析接口体中方法定义,默认为abstract。没有方法体,而且是用逗号结尾,声明的方法具有public和abstract属性。如果子接口中定义了与父接口同名的常量或者相同的方法,则父接口中的常量被隐藏,方法被覆盖。在实现接口时,接口中的所有方法都要实现。4.11 知识解析2、接口的实现 在类的定义中用implement关键字来实现接口。一个类可以实现一个或多个接口,不同接口之间用逗号分开。在实现接口时,必须实现接口中的所有方法。4.12 训练任务任务内容 创建贪吃蛇中的墙体接口GroundInter。创建墙体类Ground,并实现墙体接口GroundInter。另外,要求增加与贪吃蛇墙体相关的属性,以及这些属性相对应的设置与获取值的方法。为墙体类Ground添加主方法,以测试墙体的颜色、网格颜色、非石头坐标位置等等。JavaJava程序设计程序设计单元5 利用数组与类库构建程序 工作任务(1)用数组来存取菜谱(2)利用Vector暂存点菜数据(3)利用LinkedList暂存蛇体数据(4)获取并过滤打印点菜单输出文件(5)输出点菜单信息到文件中 5.1 阶段任务实施 引导任务5-1 定义菜品类 任务目标:用数组来存取菜谱。实现过程:在NetBeans中打开项目repast,然后在该项目中新建一个包ch05.array,再在ch05.array包中新建一个类ArrayVeg,并为该类添加如P88页代码,最后保存、编译及运行程序,运行。5.2 知识解析1、一维数组 数组是有序数据的集合,数组中的每个元素具有相同的数组名,根据数组名和下标来确定数组中的元素。数组有一维数组与多维数组,使用时要先声明后创建。一维数组的声明格式有两种:(1)数据类型 数组名 (2)数据类型 数组名5.2 知识解析用运算符new分配内存再赋值,其格式为:数组名=new 数据类型size 注:其中size指明数组的长度。数组下标取值为0size-1。直接赋初值并定义数组大小,如引导任务5-1中的vegflag数组。5.2 知识解析2、二维数组 二维数组的定义的格式与一维数组类似,如引导任务5-1中的veginfo数组。再例如:int arr1 =new int34;int arr2 =new int3;int arr3 =0,1,2,3,4,5,6,7,8;5.3 训练任务任务内容(1)编写贪吃蛇游戏中存放石头墙体生成方法。若矩形场地周边为石头。(2)编写用数组保存某个学生的三门课程的成绩的程序。5.4 阶段任务实施 引导任务5-2利用Vector暂存点菜数据 任务目标:能使用Vector类。实现过程:1、在NetBeans中打开项目repast,然后在该项目中新建一个包ch05.set,再在该包中新建一个类testVector,然后输入相关程序。2、点击运行该程序。5.5 阶段任务实施 引导任务5-3利用LinkedList暂存蛇体数据 任务目标:能使用LinkedList类。实现过程:1、在ch05.set包中新建一个类testLinklist,然后输入相关程序。2、点击运行该程序。5.6 知识解析1、集合概述 java.util中共有多个接口/类用于管理集合对象,它们支持集、列表或映射等集合。这些集合接口/类的继承关系由两颗接口树构成。5.6 知识解析集合类结构 5.6 知识解析2、Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。Java SDK不提供直接继承自Collection的类,其提供的类都是继承自Collection的“子接口”,如List和Set。并且所有的接口都是泛型接口,声明形式如下:public interface Collection.5.6 知识解析使用 for-each 循环遍历集合。for-each 循环能以一种非常简洁的方式对集合中的元素进行遍历 使用迭代器Iterators遍历集合 迭代器(Iterator)可以用来遍历集合并对集合中的元素进行删操作。可以通过集合的iterator 函数获取该集合的迭代器。Collection和数组间的转换 数组转化为集合:List c=new ArrayList();集合转化为数组:Object a=c.toArray();5.6 知识解析List接口 List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引来访问List中的元素,这类似于Java的数组。在List中允许有相同的元素。Set接口 Set是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。5.6 知识解析3、Map接口 Map 是一种包含键值对的元素的集合,但其并没有继承Collection接口。Map不能包含重复的键,即一个Map中不能包含相同的key,每个key只能映射一个value。Map提供了key到value的映射,从而可通过键实现对值的快速访问。Java平台中包含了三种通用的Map实现:HashMap,TreeMap和LinkedHashMap5.7 训练任务任务内容 编写numberSelector方法,在连连看中用于选择图片编号。主要功能是能在min-max之间(包括min和max)随机选择count个数字序列。编写方法,在连连看中用于对当前选中的图片进行随机排列。5.8阶段任务实施 引导任务5-4获取并过滤打印点菜单输出文件 任务目标:能灵活使用String类。实现过程:1、新建ch05.String包,在该包中新建一个类testString,然后输入相关程序。2、点击运行该程序。5.9 知识解析1、字符串 Java提供了两种字符串类,即 String类和 StringBuffer类。它们都提供了相应的方法实现字符串地操作。String类用于处理不可变字符串,即String类的对象内容和长度是固定的。StringBuffer类用于处理可变字符串,且该类具有缓冲功能。5.9 知识解析2、String类 构建String类的对象方式有以下四种。(1)直接使用引号创建;(2)使用new String()创建;(3)使用new String(someString)创建以及其他的一些重载构造函数创建;(4)使用重载的字符串连接操作符+创建。5.9 知识解析获取子串 substring()用于实现获得字符串中部分字符串。连接字符串 concat()方法用于实现两个或多个字符串连接为一个字符串,同时生成一个新串。更改字符串中的部分字符 replace()方法用于替换字串符中的字符或字符序列。replaceAll(String,String)方法把字符串中与第一个参数字符串相同的字符串统一替换为第二个参数字符串。replaceFirst(String,String)方法把字符串中与第一个参数字符串相同的第一个字符子串替换为第二个参数字符串。5.9 知识解析去掉空格 trim()方法用于去掉起始和结尾的空格。获取字符串长度 length()方法用于取得字符串的长度。获取指定位置的字符 charAt(int index)可以直接获取字符串中一个特定位置的字符,前提是要先知道字符串的长度值,在长度范围内获得一个指定的字符。更改大小写 toUpperCase()方法,该方法把小写字符串转换成大写字符串。toLowerCase()方法,该方法把大写字符串转换成小写字符串。比较字符串 equals()方法实现比较两个字符串内容是否相同,如果相同则返回 true,如果不同则返回 false。5.9 知识解析转换为字符串 String 类提供静态方法valueOf(),它可以将任何类型的数据对象转换为一个字符串。截取多个字符 getChars()用以得到字符串的一部分字符串。获取字节数组 getBytes()方法是将字符存储在字节数组中。获取指定字符或子字符串的位置 indexOf()和lastIndexOf()方法分别用于确定字符串中指定字符或子字符串在给定字符串的第一次或最后一次位置。比较字符串大小 compareTo()方法用于判断一个字符串是大于、等于还是小于另一个字符串。5.9 知识解析获取指定字符或子字符串的位置 indexOf()和lastIndexOf()方法分别用于确定字符串中指定字符或子字符串在给定字符串的第一次或最后一次位置。分割字符串 分割字符串指按照指定的划界表达式把字符串分割成几部分,每部分是一个字符串,方法返回值是字符串数组。5.9 知识解析3、StringBuffer 常用于构造StringBuffer类的对象的方法为以下三种:(1)StringBuffer():构造一个没有任何字符的StringBuffer类;(2)StringBuffer(int length):构造一个没有任何字符的StringBuffer类,并且,其长度为length;(3)StringBuffer(String str):以str为初始值构造一个StringBuffer类。5.9 知识解析length()和capacity(),一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。setCharAt()设置索引号index的字符为ch。setLength()重新设置字符串缓冲区中字符串的长度,如果newLength小于当前的字符串长度,将截去多余的字符。append()可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。5.9 知识解析insert()插入字符串。reverse()颠倒StringBuffer对象中的字符。delete()删除当前StringBuffer对象中以索引号start开始,到end结束的子串,而deleteCharAt()删除当前StringBuffer对象中索引号为index的字符。5.10 训练任务任务内容 编写方法,用于分解所读取连连看的游戏记录。运行P104程序段,看看是否有语法错误,若有则改正。并观察程序最后输出结果 5.11阶段任务实施 引导任务5-5输出点菜单信息到文件中 任务目标:学会文件操作类、IO类。实现过程:新建ch05.file包,在该包中新建一个类testFileIO,然后输入相关程序。5.11 知识解析1、文件操作 输入与输出(IO)流简介 流、程序、外设关系图 5.11 知识解析2、异常处理 异常分类 -检查性异常(java.lang.Exception)。-运行
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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