面向对象程序设计与实践-教案_第1页
面向对象程序设计与实践-教案_第2页
面向对象程序设计与实践-教案_第3页
面向对象程序设计与实践-教案_第4页
面向对象程序设计与实践-教案_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

第3页共4页XXXXXXXX学院教案 XXXXXXXXXXX第1页共1页XXXXXX学院教案(2026年春季学期)课程名称:面向对象程序设计与实践课程学时:48授课年级:2025级任课教师:XXXXXX学院教务处

XXXXXXXXX学院教案 XXXXXXXXXXX第2页共5页课程英文名称Object-OrientedProgrammingandPractice课程代码COM0018A课程类型学科基础考核方式考试成绩构成形成性考核实验30%成绩构成形成性考核单元测试20%终结性考核统一闭卷50%教材和参考书目书目类型书目名称作者出版社及出版时间课程教材Java基础案例教程高玲玲、范佳伟、罗丹、郭进电子工业出版社,2020年03月参考书目Java从入门到精通(第6版)Java程序设计教程(第3版)Java基础案例教程明日科技林巧民黑马程序员清华大学出版社,2021清华大学出版社,2022人民邮电出版社,2017授课时间1-12周课程组负责人审核教案符合教学大纲的要求,教学方式和课程内容合理,教学过程安排适当,能达到设定的教学目标,便于衡量课程目标是否达成,教学总结有助于持续改进。课程负责人审核(手写签名):2026年7月14日

XXXXXXXXXX学院教案 XXXXXXXXXXX第2页共5页教案编号:01教学单元第一章Java语言概述1.1节1.2节1.3节1.4节课时数4教学单元性质理论授课方式讲授+案例+实践支撑的课程目标1.课程目标1(支撑毕业要求2.1):能用面向对象程序设计的基本原理对软件开发过程中的关键环节进行识别,并对模块或者系统进行分析和评价。2.课程目标2(支撑毕业要求2.2):能应用程序设计的基本原理和数学模型方法,对软件功能模块或者系统设计开发过程中的复杂问题进行表达。教学目标1.了解Java语言的基本知识,包括发展和特点2.掌握Java的实现机制、跨平台工作原理,达到描述的水平3.能够描述和理解Java语言的体系结构4.能够实现和掌握Java开发环境的安装和环境变量的配置,培养动手能力,并提高Java编程规范的意识5.软件程序设计以及软件工程的发展对国家以及国力的重要性,从中美贸易战、中国芯、卡脖子技术等引导同学们认真学习计算机程序设计,奋发图强,为实现中国梦而努力教学重点1.Java语言特点2.Java的实现机制和跨平台运行原理3.Java的开发环境的安装和配置教学难点Java的开发环境的安装和配置时间分配教学过程MIN45453060一、对课程等教学情况进行讲解,老师自我介绍以及课程内容简介,课程大纲介绍,学习方法和技巧问题探讨1.分析课程内容,简介课程大纲,介绍教学平台2.讲解本门课的学习方法,探讨学习技巧问题3.讲解课程考核方式等内容二、同学们根据第一周学习内容概述,展开对《Java基础案例教程》PPT、视频资源、源码等进行和讨论以及答疑。学习Java语言的基础知识,包括产生和特点1.Java的起源和设计理念,Java语言是由Sun公司于1995年5月23日正式推出的面向对象的程序设计语言。Java编译器和Java虚拟机什么是编译?程序为什么要编译?一个Java源程序文件必须经过转换才能被计算机识别和执行,该转换过程被称为编译。Java编译器和Java虚拟机,什么是Java虚拟机?Java虚拟机是一个想象中的机器,用来运行Java程序。Java解释器即为Java虚拟机。经过Java解释器的解释,才能得到具体的及其可以执行的代码,即机器码文件。所谓的机器码就是指真正令CPU运行的程序代码。也称为本地码学习Java的体系结构:J2SE平台的英文全称是Java2PlatformStandardEdition。中文全称是Java平台的标准版本。根据书中的步骤下载J2SE。根据书中的步骤安装J2SE。根据书中的步骤设置J2SE。从Java语言的诞生启迪同学们要有较强的国家使命感,要对自己的职业进行规划。计算机的专业学习过程中,会发现有很多理论和技术的发源地都是国外,从中美贸易战、中国芯、卡中国脖子的技术等引导同学们认真学习计算机程序设计,奋发图强,为中国梦努力。软件程序设计以及软件工程的发展对国家以及国力的重要性,和同学们一起讨论2.讲解和分析Java的开发环境以及运行步骤Java源程序编写后,要使用Java编译器(Javac.exe)进行编译,将Java源程序编译成可执行的程序代码。Java源程序都是扩展名为.Java的文本文件。编译时首先读入Java源程序,然后进行语法检查,如果出现问题就终止编译。语法检查通过后,生成可执行程序代码即字节码,字节码文件名和源文件名相同,扩展名为.class。三、案例1-1.第一个Java程序,结合网易云课堂视频进行学习1.JDK开发工具集:采用JDK开发JAVA程序能够很快理解程序中各部分代码之间的关系,有利于理解JAVA的程序设计思想。JDK随着JAVA的升级而升级。缺点从事大规模企业级JAVA应用开发非常困难,不能进行复杂的JAVA软件开发,也不利于团队协同开发。2.安装SDK:运行下载的“j2sdk-1_8_2_01-windows-i586.exe”软件包,可安装SDK,在安装过程中可以设置安装路径及选择组件,系统默认的安装路径为C:\j2sdk1.8.2_01(这里选择E盘),默认的组件选择是全部安装。SDK中的主要文件夹和文件,E:\j2sdk1.8.2_01中的文件和子目录结构3.☆setpath=%path%;E:\j2sdk1.4.2_01\bin☆setclasspath=.;E:\j2sdk1.4.2_01\lib\;%classpath%4.首先建立一个你存放Java源程序的路径和文件夹,如本书使用的Java源程序都存放在为“e:\Java\程序”文件夹中。单击“开始”→“所有程序”→“附件”→“命令提示符”,在“命令提示符”单击右键,选择“属性”菜单,将打开“命令提示符属性”对话框。选择“快捷方式”选项卡,在“起始位置”栏输入“e:\Java\程序”,单击“确定”按钮即可。5.讨论和思考Java程序运行的时候与微软的一些高级语言编写的程序之间的差异,学习后分享Java的跨平台的理念:其次,Java是运行在JVM上的,Java不会直接生成机器码,而是生成JVM可以识别的代码,然后通过JVM解释成机器代码,所以Java的可移植性很高,这点正是网络开发的特点,所以Java最擅长的领域是服务器以及移动端开发。6.演示Java第一个程序,并且进行说明importJava.io.*;//用import语句加载已定义好的包Java.io.*,//类似于C中的#include,要在屏幕上进行输出//的程序都要加载该包publicclassMyJavaApplication//主类MyJavaApplication的头说明{publicstaticvoidmain(Stringargs[])//程序入口,主类的主函数main{System.out.println(“Hello,JavaWorld!”);//标准输出函数,在屏幕上打印//“Hello,JavaWorld!”}}要点分析:类体中的类的成员包括域和方法;主类必须说明成publicclassmain方法的说明必须是:publicstaticvoidmain(Stringargs[]);System是系统内部定义的一个系统对象;out是System对象中的一个域,也是一个对象;println是out对象的一个方法程序编辑完成之后,接着要做的步骤是:JavacMyJavaApplication.Java四、课程思政软件程序设计以及软件工程的发展对国家以及国力的重要性,从中美贸易战,从中国芯,从卡中国脖子的技术等教育同学们认真学习计算机程序设计,奋发图强,为中国梦努力。同学们需要有职业道德规划,了解软件开发的相关规章制度和法律法规。程序设计规范,引导学生要遵守各项规章制度,遵守国家法律法规。作业布置1.JDK环境的搭建2.平台第一周测试作业课后反思第一周,给同学们首先讲解和分析了课程的重要性,在计算机专业学科体系中的地位,以及课程目标;然后分享了程序设计的学习方法和经验,要求同学们多练习。课程中,同学们一起完成了环境的搭建和安装,学习情况较好

教案编号:02教学单元第二章Java语言基础2.1节2.2节课时数4教学单元性质理论+实践授课方式讲授+案例+实践支撑的课程目标1.课程目标1(支撑毕业要求2.1):能用面向对象程序设计的基本原理对软件开发过程中的关键环节进行识别,并对模块或者系统进行分析和评价。2.课程目标2(支撑毕业要求2.2):能应用程序设计的基本原理和数学模型方法,对软件功能模块或者系统设计开发过程中的复杂问题进行表达。3.课程目标3(支撑毕业要求3.2):使学生能够应用面向对象程序设计的语法知识和基本方法,根据需求完成功能模块或者系统的设计和开发,培养学生设计解决方案的能力,锻炼程序设计能力。教学目标1.掌握Java中标识符的命名规则2.了解Java中的关键字3.使用Java定义变量或声明常量4.掌握Java中8种基本数据类型的使用方法,了解不同数据类型的转换,包括强制转换和隐式转换5.掌握Java中运算符和表达式的使用6.掌握Java中打印输入和键盘输出的方法7.培养同学们的法制意识、遵纪守法,做事情能够抓主要矛盾,精益求精的工匠精神教学重点1.Java中基本数据类型2.Java中变量的声明3.Java中键盘接收输入教学难点1.Java基本数据类型转换2.程序设计过程中代码调试时间分配教学过程MIN540454545一、同学们在平台上查询本周的学习和任务安排二、结合2-1案例超市购物清单对标识符,关键字,常量,变量,数据类型,运算符以及数据类型转换进行学习1.案例描述:设计一个可实现超市购物清单的输出的程序,程序运行的结果2.案例分析:需要定义几个变量,数据类型如何选择,计算积分需要哪个运算符号,积分的提取如何实现3.关联知识标识符的四项规定:标识符可以由字母,数字和两个特殊字符下划线(_),美元符号($)组合而成;标识符必须以字母,下划线或美元符号开头;大小写敏感;应该使标识符能一定程度上反映它所表示的变量,常量,对象或类的意义。通过标识符的规范命名引入,战国·邹·孟轲《孟子·离娄上》:“离娄之明,公输子之巧,不以规矩,不能成方圆。”1.作为学生应该遵守学校规章制度;2.作为企业的员工遵守企业的规定;3.作为合格的社会公民,约束和指导自己的行为。如合法的标识符有:FirstJavaApplet,_isTrue,$theLastOne等不合法的标识符有:1First,Tree&Glasses,-isTrue,JavaBuilder等Java的各种数据类型占用固定的内存长度,与具体的软硬件平台环境无关;Java的每种数据类型对应一个缺省的数值,这体现了JAVA的跨平台性和安全稳定性Java的字符类型采用unicode编码,每个Unicode码占16位,比ASCII码多一倍,中文和西文统一表示基本数据类型都有个类与之对应,可以进行类型转换。如果对于double类型有一个Double类,char类型有一个Character类,这些类中包含一些特定的方法,可以实现对数值的专门操作,如把字符转换成双精度型数值等基本类型,包括整型、浮点型、布尔型和字符型;数组类型,包括一维数组和多维数组;复合类型,包括类、接口。数据类型名称位长缺省值取值范围布尔型Boolean1falsetrue,false字节型Byte80–128~127字符型Char16‘\u0000’‘\u0000’~’\uffff’短整型Short160–32768~32767整型Int320–2,147,483,648~2,147,483,647长整型Long640–9,223,372,036,854,775,808~9,223,372,036,854,775,807浮点型Float320.0+1.4E–45~+3.4028235E+38双精度型Double640.0+4.9E–324~+1.7976931348623157E+308分析和讲解Java的数据类型转换,包括隐式转换和强制转换,以及相关语法规则:当有一个整数而你需要把它变成一个字符型数据使用时该怎么办呢?需要将整数类型数据强制转换为字符型数据。变量类型强制转换的格式为:(数据类型)数据表达式讲解运算符和表达式,介绍Java的运算符Java的运算符代表着特定的运算指令,程序运行时将对运算符连接的操作数进行相应的运算。运算符和操作数的组合构成表达式,表达式代表着一个确定的数值。按照运算符功能来分,运算符有七种:赋值运算符、算术运算符、关系运算符、条件运算符、逻辑运算符、位运算符和其它运算符。按照连接操作数的多少来分,有一元运算符、二元运算符和三元运算符。赋值运算符:由赋值运算符构成的表达式称为赋值表达式。赋值运算符的右边是一个表达式,这个表达式还可以包含一个表达式。例如:a=b=c=0,相当于三个表达式c=0,b=c,a=b。算术运算符:算术运算符按操作数的多少可分为一元运算符和二元运算符,一元运算符(+、-、++、--)一次对一个操作数进行运算,二元运算符一次对两个操作数进行运算。求余运算在判断两个数是否成倍数时很有用,余数为0则两数成倍数,否则两数不成倍数。一元运算i++和i--比传统写法的加减运算速度要快很多,常用作循环结构中的计数器。关系运算符:有一些运算符能产生布尔类型的结果,称它们为关系运算符。关系运算符用于两个操作数之间关系的比较。关系表达式的运算结果为布尔值,不是true就是false,操作数可以是常量、变量和表达式。关系表达式常常用作分支结构或循环结构的控制条件。条件运算符:条件运算符有一个“?”和一个“:”,条件运算符与上面的运算符略有不同,是三元运算符,有三个操作数。条件表达式的格式为:条件表达式?结果1:结果2;条件运算符的计算过程为:首先计算作为条件的逻辑表达式或关系表达式,条件表达式返回值为true时整个表达式的值为结果1,返回值是false时整个表达式的值为结果2。逻辑运算符:关系运算只能解决一些简单条件的判定问题,对较为复杂的条件可用逻辑运算来判定。逻辑表达式通常由多个关系表达式构成,最终运算结果为布尔值true或false。运算符的优先级学习,使得同学们明白做事要有轻重缓急,抓主要矛盾。4.案例实现5.案例小结:空格的输出,数据类型的选择,数据类型转换6.案例拓展:现有5名学生,每个学生有3次成绩,请设计一个计算每名学生的平均成绩的程序,并将5名学生的姓名、3次成绩和平均成绩用表格的形式在控制台打印输出。学生姓名和成绩的数值可以自行确定。三、案例2-2计算圆的面积和周长1.案例描述:案例2-1中的单价和数量都是在程序中固定的,如果希望在程序运行过程中使用输入的数值来进行计算,程序可以怎么设计?2.案例分析:需要定义哪些变量或者常量,变量或常量的数据类型的选择,如何接收数据。3.关联知识:Java的输出,Java的输入Java在控制台输出由Java的基类System提供,常用的输出使用的格式有以下两种。格式1:System.out.print(表达式);输出表达式的值后不换行;格式2:System.out.println(表达式);输出表达式的值后换行。Java在JDK1.5版本中增加了Scanner类,来进行简单的键盘输入。Scanner类可以获取任意的输入值,放在Java中util包的,所以在使用前需要在类前加载util包通过程序设计输入输出语句等规范,培养同学们养成认真务实的态度。4.案例实现:5.案例小结:圆周率的定义Math函数库,数据输入的方法选择,计算结果的打印6.案例拓展:计算圆柱体的表面积和体积的程序该如何设计呢?程序设计过程中的练习以及纠错,让同学们养成一丝不苟的好习惯四、课程思政程序标识符命名规范,引导学生要遵守各项规章制度,遵守国家法律法规,做一个守法的好公民。程序设计输入输出语句等规范,培养同学们养成认真务实的态度。运算符的优先级学习,使得同学们明白做事要有轻重缓急,抓主要矛盾。程序设计过程中的练习以及纠错,让同学们养成一丝不苟的好习惯。作业布置1.完成实验指导一的作业和上传2.平台第二周测试作业课后反思程序设计基础这部分内容和C语言基本差不多,同学们学习的难度不大,说明了标识符,关键字,讲解分析了数据类型,也演示了如何进行学习编写demo的程序进行知识的辅助学习,同学们也掌握了运算符教案编号:03教学单元第三章Java程序控制结构3.1节3.2节课时数4教学单元性质理论+实践授课方式讲授+案例+实践支撑的课程目标1.课程目标1(支撑毕业要求2.1):能用面向对象程序设计的基本原理对软件开发过程中的关键环节进行识别,并对模块或者系统进行分析和评价。2.课程目标2(支撑毕业要求2.2):能应用程序设计的基本原理和数学模型方法,对软件功能模块或者系统设计开发过程中的复杂问题进行表达。3.课程目标3(支撑毕业要求3.2):使学生能够应用面向对象程序设计的语法知识和基本方法,根据需求完成功能模块或者系统的设计和开发,培养学生设计解决方案的能力,锻炼程序设计能力。教学目标1.熟悉流程图的相关概念和基本知识2.掌握绘制流程图的基本方法和技巧3.掌握顺序、分支和循环结构的流程和语法4.熟练使用程序结构控制语法进行相关程序设计5.通过程序控制结构流程图和程序设计,培养良好的逻辑性思维,做事有条不紊。教学重点1.三种基本类型流程图的绘制2.多种分支结构语法规则,并能根据实际问题需求选择合适的分支结构3.三种典型的循环结构语法规则,根据实际问题选择合适的循环结构教学难点1.程序控制结构的流程图的阅读和理解绘制2.分支结构流程的程序设计和程序分析3.循环结构流程的程序设计和程序分析时间分配教学过程MIN52545204545一、同学们在平台上查询本周的学习和任务安排二、案例3-1商品竞价1.案例描述:给出一种商品,要求用户竞猜其价格,如果猜对了,则给出商品价格,并提示一共猜测了几次;如果猜错了,则提示猜高了或猜低了,用户进行下一次尝试,一共限定5次机会。要求使用流程图描述商品竞价过程,并设计相应程序。2.关联知识:流程图,流程图的基本符号顺序结构案例分析以及流程图绘制条件分支结构案例分析以及流程图绘制循环结构案例分析以及流程图绘制《尚书·盘庚上》:“若网在纲;有条而不紊。通过流程图的绘制,引导学生做一个凡事有条理的人,懂得做事情进行规划和部署,有条理,统筹管理,节约时间,提高效率3.案例分析:竞猜正确——给出正确的价格,竞猜不正确——判断是高于,还是低于,给出进一步提示,可否竞猜——判断猜测次数是否已经达到上限4.案例实现:5.案例小结:开始结束,分支的处理注意不要遗漏6.案例拓展:同学们可以进一步在本案例的基础上考虑如下情况:如果现有商品一共是5种,需要分别竞猜价格,应如何用流程图描述竞猜过程。三、案例3-2出租车计费1.案例描述:上海出租车计费标准如下所示,要求根据乘客输入的公里数、乘车时间(白天或夜间)、是否等候等数据来计算乘客的出租车费。白天(5:00—23:00):起步价为14元(3公里以内);超过3公里后,每公里价格为2.4元;超过10公里后,每公里价格为3.6元;夜间(23:00—5:00):起步价为18元(3公里以内);超过3公里后,每公里价格为3.1元;超过10公里后,每公里价格为4.7元;时速低于12公里时(等候费)每5分钟收费2元。2.案例分析:3.关联知识:分支结构if语句的语法格式为:if(条件表达式)s1语句;这是最简单的单分支结构。条件表达式的值为true,就执行s1语句,否则就忽略s1语if语句通常都与else语句配套使用,形成二分支结构。它的语法格式为:if(条件表达式)s1语句;elses2语句;当条件表达式的值为true,就执行s1语句,忽略else和s2语句;否则,条件表达式的值为false,程序忽略s1语句,执行else后面的s2语句。s1和s2都可以是复合语句。对于复杂的情况,可以嵌套使用if…else语句。它的语法格式为:if(条件表达式1)s1语句;elseif(条件表达式2)s2语句;elses3语句;开关语句switch的语法格式为:switch(表达式){case常量1:语句1;break;case常量2:语句2;break;default:语句n;}使用开关语句时,注意以下几点:case后面的常量必须是整数或字符型,而且不能有相同的值;·通常在每一个case中都应使用break语句提供一个出口,使流程跳出开关语句。否则,在第一个满足条件case后面的所有语句都会被执行,这种情况叫做落空。看下面分别加上和去掉break语句的例子。条件分支结构的学习,使得同学们养成良好的逻辑性,告知同学们人生道理的选择也是如此,需要树立正确的人生观和价值观的重要性,帮助同学们在今后的人生选择中做出正确决定。案例代码演示分析publicclassW1{publicstaticvoidmain(Stringargs[]){intc=28;switch(c<10?1:c<25?2:c<35?3:4){case1:System.out.println(""+c+"℃有点冷");break;case2:System.out.println(""+c+"℃正合适");break;case3:System.out.println(""+c+"℃有点热");break;default:System.out.println(""+c+"℃太热了");}}}4.案例实现:5.案例小结:双分支结构,多分支结构6.案例拓展:在学习完本案例相关知识及案例实现后,同学们对如何设计Java中的分支结构程序有了比较深入的理解。如果某位乘客是白天乘车,行程较长,直到夜间才到地点,请同学们进行进一步完善该程序。四、课程思政程序设计流程图的绘制,引导学生做一个凡事有条理的人,懂得做事情进行规划和部署,有条理,统筹管理,节约时间,提高效率。条件分支结构的学习,使得同学们养成良好的逻辑性,告知同学们人生道理的选择也是如此,需要树立正确的人生观和价值观的重要性,帮助同学们在今后的人生选择中做出正确决定。循环语句的学习,使得同学们提升抽象思维能力和逻辑思维能力,通过案例学习不积跬步,无以至千里,不积小流,无以成江海的学习态度。作业布置1.完成实验指导二的作业和上传2.平台第三周测试作业课后反思课堂上和我们一起学习了流程图的绘制,大家练习情况一般,还有些小问题;通过案例的方式学习了分支结构的语法,内容比较简单,大家学习情况较好,switch的结构还需要多练习

教案编号:04教学单元第三章Java程序控制结构3.3节课时数4教学单元性质理论+实践授课方式讲授+案例+实践支撑的课程目标1.课程目标1(支撑毕业要求2.1):能用面向对象程序设计的基本原理对软件开发过程中的关键环节进行识别,并对模块或者系统进行分析和评价。2.课程目标3(支撑毕业要求3.2):使学生能够应用面向对象程序设计的语法知识和基本方法,根据需求完成功能模块或者系统的设计和开发,培养学生设计解决方案的能力,锻炼程序设计能力。教学目标1.熟悉流程图的相关概念和基本知识2.掌握绘制流程图的基本方法和技巧3.掌握顺序、分支和循环结构的流程和语法4.熟练使用程序结构控制语法进行相关程序设计5.通过程序循环结构流程图和程序设计,锻炼同学们坚持不懈、与时俱进的精神教学重点1.三种基本类型流程图的绘制2.多种分支结构语法规则,并能根据实际问题需求选择合适的分支结构3.三种典型的循环结构语法规则,根据实际问题选择合适的循环结构教学难点1.程序控制结构的流程图的阅读和理解绘制2.分支结构流程的程序设计和程序分析3.循环结构流程的程序设计和程序分析时间分配教学过程MIN5104530151560一、同学们在平台上查询本周的学习和任务安排二、案例3-2闰年求解1.案例描述:请求解出20世纪一共有多少个闰年,并将结果输出显示出来2.关联知识:Java循环结构for语句for语句的一般语法格式如下:for(表达式1;表达式2;表达式3)循环体如果希望程序的一部分内容按固定的次数重复执行,通常可以使用for循环。for循环采用一个计数器控制循环次数,每循环一次计数器就加1,直到完成给定的循环次数为止。案例说明:按5度的增量打印出一个从摄氏度到华氏度的转换表。classCtoF{publicstaticvoidmain(Stringargs[]){intfahr,cels;System.out.println("摄氏度华氏度");for(cels=0;cels<=40;cels+=5){fahr=cels*9/5+32;System.out.println(""+cels+""+fahr);}}}while语句-while语句的一般语法格式如下:while(条件表达式)循环体do-while语句do-while语句的一般语法格式如下:do循环体while(条件表达式)代码案例演示分析:求1+2+…+100之和。classSum{publicstaticvoidmain(Stringargs[]){intn=1;intsum=0;do{sum+=n++;}while(n<=100);System.out.println("1+2+...+100="+sum);}}对比分析:归纳do…while循环的语法格式为:do{循环体}while(条件表达式);其中do、while是关键字。程序首先执行do下面的循环体,然后计算while后面条件表达式的值,如果其值为true,则重复执行循环体,否则,就结束循环。3.案例分析:闰年如何表示——if((year%400==0)||((year%100!=0)&&(year%4==0)));20世纪的闰年——从公元1901年循环判断到公元2000年4.案例实现:5.案例小结:1、单个逻辑判断表达式实现2、多个逻辑判断表达式组合3、循环上、下限4、for循环实现语法6.案例拓展:通过学习本案例,同学们应该对循环结构设计有更为清晰的认识,可以进一步进行案例拓展内容设计实现。例如,求解出生年份是否为闰年,这些闰年中有哪些年份的生肖是一致的。三、案例3-3做最好的自己1.案例描述,每天进步一点点,一年后我们会变成什么样1*1.01365天后会怎么样;每天都原地踏步,一年后我们会是什么样1*1365天后会怎么样;每天都退步一点,一年后我们又会是什么样1*0.99365天后会怎么样2.案例分析,循环次数已知,采用for循环3.案例实现:publicclassTest{ publicstaticvoidmain(String[]args){ doubledcount1=1.0; doubledcount2=1.0; doubledcount3=1.0; for(inti=1;i<=365;i++) { dcount1=dcount1*1.01; dcount2=dcount2*1; dcount3=dcount3*0.99; } System.out.println("坚持不懈,每天进步一点,一年后进步很大"); System.out.println(dcount1);//37.783434332887275 System.out.println("原地踏步,一年还是原来的自己"); System.out.println(dcount2);//1 System.out.println(“差之毫厘,谬以千里,每天都在退步,一年后将被远远抛在后面"); System.out.println(dcount3);//0.025517964452291122 }}4.案例小结:《礼记·经解》:“《易》曰:‘君子慎始,差若毫厘,缪以千里。’”战国时期苟子的《劝学》骐骥一跃,不能十步;驽马十驾,功在不舍;锲而舍之,朽木不折;锲而不舍,金石可镂。”坚持不懈、持之以恒,差之毫厘,谬以千里的道理;使得同学们提升抽象思维能力和逻辑思维能力,通过案例深刻体会不积跬步,无以至千里,不积小流,无以成江海的学习态度四、课程思政程序设计流程图的绘制,引导学生做一个凡事有条理的人,懂得做事情进行规划和部署,有条理,统筹管理,节约时间,提高效率。条件分支结构的学习,使得同学们养成良好的逻辑性,告知同学们人生道理的选择也是如此,需要树立正确的人生观和价值观的重要性,帮助同学们在今后的人生选择中做出正确决定。循环语句的学习,使得同学们提升抽象思维能力和逻辑思维能力,通过案例学习不积跬步,无以至千里,不积小流,无以成江海的学习态度。作业布置1.完成实验指导三的作业和上传2.平台第四周测试作业课后反思通过案例的方式讲解了程序的循环结构,并对while和for循环的结构进行了对比,同学们在课后进行了大量的练习,也课后的练习进了讲解。

教案编号:05教学单元第四章Java面向对象基础4.14.2课时数4教学单元性质理论+实践授课方式讲授+案例+实践支撑的课程目标1.课程目标1(支撑毕业要求2.1):能用面向对象程序设计的基本原理对软件开发过程中的关键环节进行识别,并对模块或者系统进行分析和评价。2.课程目标3(支撑毕业要求3.2):使学生能够应用面向对象程序设计的语法知识和基本方法,根据需求完成功能模块或者系统的设计和开发,培养学生设计解决方案的能力,锻炼程序设计能力。教学目标1.同学们应具备类和对象的基本概念和相关知识,达到描述的能力2.同学们应该掌握类的基本概念以及Java中类的实现,锻炼抽象思维能力和程序设计能力3.同学们应该掌握对象的基本概念以及Java中对象的申明,锻炼抽象思维能力4.同学们应该掌握类的修饰符以及应用,锻炼程序程序能力5.同学们应该掌握类中数据成员和数据方法的语法规则,锻炼程序程序能力6.同学们应该掌握类中数据成员和数据方法的修饰符,锻炼程序程序能力7.同学们应该掌握内部类和Java的系统类库,掌握学习方法和技巧,锻炼自主学习能力8.同学们达到可以很好利用API文档查询相关类知识的能力9.通过类和对象的程序设计,培训学生工程项目分析能力和管理能力,抽象能力教学重点1.类的访问修饰符的不同作用2.数据成员和成员方法的语法规则3.数据成员和成员方法的访问修饰符差异教学难点1.类的访问修饰符的不同作用2.数据成员和成员方法的语法规则3.数据成员和成员方法的访问修饰符差异时间分配教学过程MIN5104510201520202520一、同学们在平台上查询本周的学习和任务安排二、案例4-1设计一个宠物类1.案例描述:使用面向对象的思想设计一个宠物类,该类可以实现如下功能:支持宠物的基本信息设置,包括宠物的名字、毛发颜色、年龄、体重、售价等;支持宠物的基本状态查询;支持宠物的基本信息介绍;例化该宠物类的多个宠物对象来进行验证。2.关联知识:Java是完全面向对象编程语言。面向对象编程(OOP)是一种全新的编程理念,如果从来没有过OOP编程经验,你需要从基本概念开始。什么是对象?类又是什么?它们之间有什么关系?对象是如何通过消息和外部通讯的?在开发软件的信息世界中,对象定义为相关数据和方法的集合。对象是现实世界对象的抽象模型。从现实世界对象中抽象出来的对象使用数据和方法描述其现实世界中的状态和行为特征,一般通过变量描述其状态,通过方法实现其行为。变量是一种有名称的数据实体,而方法则是和对象相关的函数或过程。封装:封装的含义是把类设计成一个黑箱,使用者只能看见类中定义的公共方法,而看不到方法实现的细节,也不能直接对类的数据进行操作,迫使用户通过接口去访问数据,这种封装正是OOP设计者追求的理想境界。相关数据和方法封装到一个包里,为程序员带来了两个好处:模块化和数据隐藏。消息:对象的行为由方法来实现,消息传递是对象之间进行交互的主要方式。构成消息的三个要素是:接收消息的对象;接收消息后进行处理的方法;方法所需要的参数继承:不但可以发生在同一个层次上,也可以发生在不同层次上。所有层次的类都是从Object类那里直接或间接地衍生下来的。Object仅提供了所有的类在Java虚拟机上运行时所需要的基本状态和方法。一般来说,层次越高,类就越抽象,反之类就越具体。继承使父类的代码得到重用,在继承父类提供的共同特性基础上添加新的代码,使编程不必一切都从头开始,有效提高了编程效率。类通过关键字class来创建,下面的声明语句格式给出了可能出现的符号和顺序:[public][abstract][final]<class><类名>[extends父类][implements接口]{<类体(成员变量和成员方法)>}其中,[]表示为可选项,<>表示为必选项。关键字含义说明如下:class类名:class关键字告诉编译器这是一个类,类名是可以自由选取但必须是合法的标识符。在声明类的语句中,class前面的关键字称为类的修饰符。修饰符说明:public(公共的)在没有任何修饰符的缺省情况下,类只能被同一个源程序文件或同一个包中的其它类使用,加上public修饰符后,类可以被任何包中的类使用,称为公共类。有关包的概念请参考后面章节的内容(目前可把包当作一个源程序文件)。Abstract(抽象的):有时,定义的类代表了一个抽象的概念,就不能用它来实例化一个对象。同样在OOP中,可能建立了一个不需要产生对象的类abstract说明的类称为抽象类,不能用它实例化一个对象,它只能被继承。final(最终的):final说明的类称为最终类。一个最终类不可能有子类,也就是说它不能被继承。为什么要把一个类说明为最终类呢?有两点理由:为了提高系统的安全性和出于对一个完美类的偏爱。分析Java类的数据成员和成员方法的语法规则以及修饰符的作用域通过类和对象的程序设计中成员变量成员函数的访问,引出数据的保护,进而引申出保护国家财产的重要性,维护国家荣誉。同学们进行课堂的讨论。成员变量的声明语句有如下格式:[public][private][protected][package]//访问控制修饰符[static][final][transient][volatile]<数据类型><成员变量名称>importJava.awt.*;importJava.applet.Applet;classDrawShape{privateintx,y,shape;publicvoidsetPos(intxPos,intyPos){x=xPos;y=yPos;}publicvoidsetShape(intchoice){shape=choice;}publicvoiddraw(Graphicsg){if(shape==1)g.drawRect(x,y,60,60);elseif(shape==2)g.drawOval(x,y,60,60);elseg.drawString("形状参数不对!",20,120);}}publicclassM1extendsApplet{finalintBOX=1,OVAL=2;DrawShapea=newDrawShape();publicvoidpaint(Graphicsg){a.setPos(40,20);a.setShape(BOX);a.draw(g);a.setPos(200,60);a.setShape(OVAL);a.draw(g);}}3.案例分析:展开讨论,宠物类定义——宠物类名确定,修饰符确定成员变量——宠物名字、毛发颜色、年龄、体重、售价等;成员方法——宠物基本信息查询,如查询名字、毛发颜色、年龄等宠物基本信息;构造方法——多种构造函数初始化成员变量;对象定义——定义宠物类的对象,成员变量、成员方法访问4.案例实现:演示或者翻转课堂5.案例小结:构造方法,成员变量,成员方法,对象的定义、初始化、对象成员变量、方法引用6.案例拓展:通过学习本案例,大家应该对如何定义类,如何建立对象有了一定认识,可以在此案例的基础上进一步拓展,如通过提供多个构造方法,以及增加类变量和类方法的定义,实例化多个对象,输出对象属性等,以达到进一步熟悉如何进行类的定义和使用目的。三、案例4-2优化宠物类1.案例描述:现在需要在案例4-1的基础上对宠物的一些方法进行修改,要求如下所述;增加修改宠物的基本信息的方法,并且要求宠物的年龄值在0~50之间,否则提示年龄设置有误;要求宠物的体值重在0~100之间,否则提示体重设置有误,不允许外部类对宠物的年龄、售价等属性进行直接访问或修改2.关联知识:封装:修改属性的可见性来限制对属性的访问。为每个属性创建一个赋值(set)和取值(get)的方法,用于对这些属性的访问。在赋值和取值方法中根据需要增加对属性的存取限制。3.案例分析:课堂讨论,如何对外隐藏类内部信息;如何提供恰当的修改和查询方法4.案例实现:演示或者课堂翻转5.案例小结:1、数据成员name、color、age、weight、price被设置为private访问权限;2、数据方法提供了每个数据成员的访问和修改方法被设置为public访问权限。通过函数结构化的程序设计,培养学生工程项目分析能力和管理能力,抽象能力。6.案例拓展:我们可以在已有学习内容的基础上,进一步增加宠物的属性设置如喜好、品种等,并按照封装性需求来实现属性隐藏,对外提供属性的访问和设置方法,最后实例化并给对象赋值,输出对象属性。四、课程思政通过函数结构化的程序设计,培养学生工程项目分析能力和管理能力。通过类和对象的程序设计中成员变量成员函数的访问,引出数据的保护,进而引申出保护国家财产的重要性,维护国家冗余。通过类的继承等,让同学们学习中华民族的传统美德,需要继承和发展光大,对中华美德的弘扬。作业布置1.完成实验指导三的作业和上传2.平台第五周测试作业课后反思这部分的内容语法较多,同学们学习的时候也要求了进行笔记,并且帮助同学们进行了总结,案例演示中同学们学习认真,课后完成了实验指导和练习,学习情况良好

教案编号:06教学单元第四章Java面向对象基础4.34.44.5课时数4教学单元性质理论+实践授课方式讲授+案例+实践支撑的课程目标1.课程目标1(支撑毕业要求2.1):能用面向对象程序设计的基本原理对软件开发过程中的关键环节进行识别,并对模块或者系统进行分析和评价。2.课程目标3(支撑毕业要求3.2):使学生能够应用面向对象程序设计的语法知识和基本方法,根据需求完成功能模块或者系统的设计和开发,培养学生设计解决方案的能力,锻炼程序设计能力。教学目标1.同学们应具备类的封装,继承,多态的基本知识,锻炼抽象思维能力2.同学们应该掌握继承的基本含义以及Java中的语法规则,锻炼程序设计能力3.同学们能够实现继承的相关程序设计实现,锻炼逻辑思维能力4.类的继承等,让同学们学习中华民族的传统美德,需要继承和发展光大,对中华美德的弘扬教学重点1.继承的语法规则,尤其是构造函数的继承写法教学难点1.继承的语法规则,尤其是构造函数的继承写法时间分配教学过程MIN510451020454545一、同学们在平台上查询本周的学习和任务安排二、案例4-3宠物多样性设计1.案例描述:请基于前一步完成的宠物类满足如下多样化要求的宠物设计;在Pet类中增加移动的move方法,打印“我是可以移动的”,增加enjoy方法,打印“我很高兴”。定义Pet类的子类鸟类Bird,属性有爪子数量(number),并重写移动的方法move,打印“我是可以飞的”。重写enjoy方法,打印“我很高兴,啾啾啾”。定义Pet类的子类猫类Cat,属性有品种(kind),并重写移动的方法move,打印“我是可以跑的”,重写enjoy方法,打印“我很高兴,喵喵喵”。测试主类:实现一个Cat对象、一个Bird对象,实现它们的move方法和enjoy方法2.关联知识:讲授或者在线学习继承:类的继承描述的是类与类之间的“isa”关系,即子类是比父类更为特殊的类,是父类的一种特例;通过此种继承派生方式,新类自动包含了原始类的变量和方法,然后可以根据需要将新变量和方法添加到派生的新类中,可以快速地构建一个区别于父类和兄弟类的新类,最大化了现有类重用的可能性。通过继承引出对中华民族传统美德的继承,同学们一起讨论都有哪些中华民族的传统美德,进而对中华美德的弘扬,发扬光大。访问权限:公开级别:用public修饰,对外公开。受保护级别:用protected修饰,对子类和同一个包中的类公开。默认级别:没有修饰符号,向同一个包的类公开。私有级别:用private修饰,只有类本身可以访问,不对外公开。成员变量继承:子类继承的是父类的非私有类型的数据成员,子类不能直接访问从父类中继承的私有属性,但可使用公有(及保护)方法进行访问。1、子类可以继承父类的非私有成员函数,父类的private修饰的成员方法不能被继承。当从父类继承下来的方法不能完全满足子类需要时,可以重写该方法,此时,子类将实现对成员方法的覆盖。父类的final修饰的方法不允许子类重写。重写方法必须与父类保持相同的方法名、返回类型、参数个数、类型和顺序。子类的该同名方法的访问权限必须大于等于父类方法的访问权限。如果子类想使用父类被覆盖的方法,那么也必须使用关键字super来完成使用。构造函数继承:This:在类的方法定义中使用的this关键字代表使用该方法的对象的引用.Super:super.成员变量使用super关键字调用被子类隐藏的父类的成员变量.super.成员方法使用super关键字调用被子类隐藏的父类的成员方.super(参数)调用父类的构造方法3.案例分析:课堂讨论基类Pet修改——增加成员方法move方法和enjoy方法;子类Bird和Cat——定义各自的属性和重写move方法和enjoy方法;验证——主类定义实现4.案例实现:课堂翻转,老师演示或者学生展示5.案例小结:(1)父类定义在前,子类继承再后(2)子类定义从父类继承成员变量从父类继承成员方法子类自身的成员变量子类自身定义的成员方法构造方法(3)子类对象创建构造6.案例拓展:在学习完本案例之后,你应该对如何基于已有类快速创建一个新类有了比较清晰的认识,可以进一步在本案例的基础上,完成如下拓展。定义Pet类的子类狗类Dog,属性为品种(kind),并重写move方法,打印“我是可以跑的”,重写enjoy方法,打印“我很高兴,汪汪汪”。在子类中增加toString()方法,描述类的属性信息。三、案例4-4宠物店设计1.案例描述:现有一个宠物店,里面经营鸟、猫、狗等若干类型宠物,现在想要实现对宠物进行喂食,不同宠物喂食不同食物且呈现出不同的高兴状态2.关联知识:讲授或者在线学习多态是面向对象程序设计的一个重要特征,利用多态性可以设计并实现一个易于扩展的系统。在Java中多态的本质是多个相似功能的方法用同一个方法名向不同的对象发送同一个消息,不同对象在接收时会产生不同的行为。1)动态绑定技术。2)继承和重写3.案例分析:课堂讨论如何实现不同宠物喂食不同食物的效果?如何让不同宠物呈现不同高兴状态?验证——主类定义实现4.案例实现:课堂翻转,老师演示或者学生展示5.案例小结:(1)要有继承(2)要有重写(3)父类引用指向子类对象当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。多态好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。6.案例拓展:可以考虑在本案例的基础上进一步完成如下拓展练习。增加方法,统计该宠物店现有的宠物数量以及预期总售价。增加方法,在每个类中增加toString方法,描述每个类的静态属性值。优化PetShop类中的feed()方法,将该方法中的如下语句:System.out.println("我是"+petList[i].getName());替换为:System.out.println(petList[i]);四、案例4-5类的管理1.案例描述:为了方便对案例4-4宠物商店设计的多个类进行管理,并便于后续二次开发,现要求将类纳入指定的包进行管理。2.关联知识:讲授或者在线学习包的管理:Java语言提供了很多常用的包,例如,Java.util、Java.awt、Java.lang等,这些包中存放着最常用的基本类。内存管理主要包括内存分配和内存回收两个部分。在Java中,内存管理由JVM负责。JVM在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间。堆内存:堆内存用来存放由new创建的对象实例和数组。使用堆可以动态分配内存大小,但是其存取速度较慢。栈内存:基本数据类型的局部变量,会在栈内存中分配空间,并保存初始值。数据空间:存放的是静态变量(类变量)或常量。代码空间:存放的是对象的方法。因此即使创建出一个类的多个对象也是共用一个方法。3.案例分析:课堂讨论通过学习本案例关联知识,可以很方便地使用包机制来实现对类的管理以及后期扩展。因此,可以将Food相关的类纳入一个包中,将Pet相关的类纳入另一个包中。4.案例实现:课堂翻转,老师演示或者学生展示如果现在有新增需求,宠物店里新引进了若干宠物,并且宠物的食谱各不相同,那么可以很方便地在petpg包中纳入新增的宠物类,在foodpg包中纳入新增的食物类。由此可以看出,用包来进行类的管理非常方便。5.案例小结:包的管理:1、如何创建包2、如何引用包3、包的作用内存的管理:1、内存分配:堆区、栈区、数据区、代码区2、内存回收6.案例拓展:包机制是Java中管理类的重要手段。在实际开发中会遇到大量同名的类,通过包可以很容易地解决类重名的问题,也可以实现对类的有效管理。本章拓展内容可以考虑以章节名字为包名来进行已编写类的管理五、课程思政通过函数结构化的程序设计,培养学生工程项目分析能力和管理能力。通过类和对象的程序设计中成员变量成员函数的访问,引出数据的保护,进而引申出保护国家财产的重要性,维护国家冗余。通过类的继承等,让同学们学习中华民族的传统美德,需要继承和发展光大,对中华美德的弘扬。作业布置1.完成实验指导四的作业和上传2.平台第六周测试作业课后反思封装继承多态的语法较多,同学们学习的时候帮助大家进行了总结,并且以程序的方式进行了演示,帮助大家理解,说明了具体的应用场景。教案编号:07教学单元第五章Java抽象类和接口5.2课时数4教学单元性质理论+实践授课方式讲授+案例+实践支撑的课程目标1.课程目标1(支撑毕业要求2.1):能用面向对象程序设计的基本原理对软件开发过程中的关键环节进行识别,并对模块或者系统进行分析和评价。2.课程目标3(支撑毕业要求3.2):使学生能够应用面向对象程序设计的语法知识和基本方法,根据需求完成功能模块或者系统的设计和开发,培养学生设计解决方案的能力,锻炼程序设计能力。教学目标1.熟悉抽象类的基本含义以及Java中的语法规则2.熟悉接口基本含义以及实现规则3.掌握抽象类定义方法,并能根据需要进行抽象类设计4.掌握接口定义以及实现方法5.引入了抽象类和接口等增加了编程的灵活性,引申出友善,人与人之间的相互关心,相互帮助以及和睦共处教学重点1.抽象类的语法规则2.接口类的定义及实现规则3.使用接口实现多态教学难点1.抽象类和抽象方法的使用2.接口的使用时间分配教学过程MIN51045102020252025一、同学们在平台上查询本周的学习和任务安排二、案例5-1简易公司人事管理1.案例描述:现有一软件公司,公司中有开发人员若干、项目经理若干、地区经理若干。已知开发人员有姓名、工号和薪水的属性,并为公司进行工作。项目经理除了有姓名、工号和薪水还有奖金,并为公司进行工作。地区经理除了有姓名、工号和薪水还有奖金和公司的股票分红,也为公司进行工作。现要求根据给出的需求进行公司人员管理。2.关联知识:讲授或者在线学习抽象方法:抽象方法必须用abstract关键字进行修饰,且不能同时使用final或static进行修饰。如果一个类含有抽象方法,则这个类也必须定义为抽象类,抽象类必须在类前用abstract关键字修饰。抽象方法目的就是为了实现一个接口多种方法的原理,即所有的子类对外都呈现一个相同名字的方法,抽象方法必须被重写,且构造方法、类方法不能声明为抽象方法。抽象类:抽象类在类层次结构中代表一般性概念,规定必须实现方法的统一接口,子类将基于此概念来定义方法,定义方法如下:abstractclass类名{数据成员;//定义抽象方法,没有方法体实现abstract返回值数据类型抽象方法名();访问权限返回值数据类型成员方法名(形式参数列表){…方法实现}}引入了抽象类和接口等增加了编程的灵活性,引申出友善,人与人之间的相互关心,相互帮助以及和睦共处。抽象类中可以有抽象方法,也可以有非抽象方法;抽象类必须被继承;抽象类本身不能实例化,即不能使用new运算创建对象。只有它的非抽象子类可以创建对象,而抽象类定义的对象可以用于指向子类对象。例如,Petp=newPet("小白","白色",2,12,2000);//错误,抽象类不能实例化Petp=newCat("咪咪","灰色",1,8,3000,"波斯猫");//正确,可以指向子类对象由抽象类派生的子类必须实现所有父类的抽象方法,否则,该子类仍然是抽象类。3.案例分析:课堂讨论开发人员——静态属性为姓名、工号、薪水,动态行为为工作;项目经理——静态属性为姓名、工号、薪水,奖金;行为为工作;地区经理——静态属性为姓名、工号、薪水,奖金、股票分红;行为为工作;父类——共性内容;抽象方法——定义工作行为4.案例实现:课堂翻转,老师演示或者学生展示5.案例小结:1、抽象类的定义;2、子类抽象方法实现6.案例拓展:通过学习本案例,大家应该对如何定义抽象类,如何建立抽象类的实现子类有了一定认识,可以在本案例的基础上思考如果要另外增加一个工种系统分析师,那么如何在已有的案例来拓展实现。三、案例5-2家电产品设计1.案例描述:现有手机、电视、洗衣机等数码家电产品若干,有些家电产品实现了USB接口和屏幕播放接口,有些家电产品则没有实现,请根据需求进行数据模型设计。2.关联知识:讲授或者在线学习接口:泛指供别人调用的方法或者函数;在接口中所有的方法都只有声明没有方法体,是抽象方法和常量值的定义的集合。[public]interface接口名{//定义常量(常量名Java的命名规则要求尽量全部字母大写)publicstaticfinal数据类型常量名=值; //定义抽象方法publicabstract返回值类型方法名(数据类型参数名,…);}允许一个类实现多个特定的接口。如果一个非抽象类要实现某个接口,就必须实现该接口中的所有方法。定义了实现某个接口的抽象类,可以不实现该接口中的抽象方法。如果定义的类同时继承类和实现接口,那么extends要放在implements的前面。3.案例分析:课堂讨论家电产品若干,可以从中抽取出家电产品的共同特性,定义电子产品类。分析家电可能实现的接口USB,可以进行充电和数据传送功能。分析家电可能实现的接口Video,可以实现视频的播放、暂停、快进、慢放的功能。定义手机Phone类,隶属于数码家电,并实现了USB和Video接口。定义TV类,隶属于家电,并实现了Video接口。定义洗衣机WashingMachine类,隶属于家电,未实现任何接口。4.案例实现:课堂翻转,老师演示或者学生展示packageeproductpg;publicinterfaceUSB{voidcharging();voidtransferdata();}packageeproductpg;publicinterfaceVideo{voidplay();voidfast();voidpause();voidslow();}//数码电子产品父类packageeproductpg;abstractpublicclassElecticProduct{Stringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}abstractvoidshowInfo();}importeproductpg.*;//纳入电子产品包的所有类publicclassDemo5_6{publicstaticvoidmain(String[]args){Phonep=newPhone();p.setName("华为");p.showInfo();p.play();p.charging();TVt=newTV();t.setName("海信");t.showInfo();t.fast();WashingMachinew=newWashingMachine();w.setName("海尔");w.showInfo();}}程序设计过程中的练习以及纠错,让同学们养成一丝不苟的好习惯5.案例小结:1、多个无关的类可以实现同一接口2、一个类可以实现多个无关的接口3、与继承类似,接口与实现类之间也具有多态性4、接口可以继承其它接口,并添加新的属性和抽象方法6.案例拓展:我们可在本案例的基础上进行案例扩展,如增加新的接口或新的家电产品类别,进一步加深对本案例所学知识的认识。四、课程思政面向对象程序设计过程中,引入了抽象类和接口等增加了编程的灵活性,引申出友善,人与人之间的相互关心,相互帮助以及和睦共处作业布置1.完成实验指导五的作业和上传2.平台第七周测试作业课后反思抽象类和抽象方法的语法也比较复杂,同学们课后进行了练习,但是不少同学理解不是特别到位,也帮助大家进行了答疑

教案编号:08教学单元第五章Java抽象类和接口5.2课时数4教学单元性质理论授课方式讲授+案例+实践支撑的课程目标1.课程目标1(支撑毕业要求2.1):能用面向对象程序设计的基本原理对软件开发过程中的关键环节进行识别,并对模块或者系统进行分析和评价。2.课程目标3(支撑毕业要求3.2):使学生能够应用面向对象程序设计的语法知识和基本方法,根据需求完成功能模块或者系统的设计和开发,培养学生设计解决方案的能力,锻炼程序设计能力。教学目标1.熟悉抽象类的基本含义以及Java中的语法规则2.熟悉接口基本含义以及实现规则3.掌握抽象类定义方法,并能根据需要进行抽象类设计4.掌握接口定义以及实现方法5.引入了抽象类和接口等增加了编程的灵活性,引申出友善,人与人之间的相互关心,相互帮助以及和睦共处教学重点1.抽象类的语法规则2.接口类的定义及实现规则3.使用接口实现多态教学难点1.抽象类和抽象方法的使用2.接口的使用时间分配教学过程MIN5104520302545同学们在平台上查询本周的学习和任务安排案例5-2传统美德的继承1.案例描述:如何继承中华民族的传统美德2.关联知识:讲授或者在线学习接口:泛指供别人调用的方法或者函数;在接口中所有的方法都只有声明没有方法体,是抽象方法和常量值的定义的集合。[public]interface接口名{//定义常量(常量名Java的命名规则要求尽量全部字母大写)publicstaticfinal数据类型常量名=值; //定义抽象方法publicabstract返回值类型方法名(数据类型参数名,…);}允许一个类实现多个特定的接口。如果一个非抽象类要实现某个接口,就必须实现该接口中的所有方法。定义了实现某个接口的抽象类,可以不实现该接口中的抽象方法。如果定义的类同时继承类和实现接口,那么extends要放在implements的前面。3.案例分析:课堂讨论设计2个接口,中华美德1尊老爱幼的接口,//中华美德2精忠报国的接口Person实现2个接口,既具备该接口的能力主类再实现4.案例实现:课堂翻转,老师演示或者学生展示publicinterfaceVirtue1{ //中华美德1尊老爱幼 publicabstractvoidPrint1();}publicinterfaceVirtue2{ //中华美德2精忠报国 publicabstractvoidPrint2();}publicclassPersonimplementsVirtue1,Virtue2{ @Override publicvoidPrint2() { //TODOAuto-generatedmethodstub System.out.println("具有了尊老爱幼的中华传统美德"); } @Override publicvoidPrint1() { //TODOAuto-generatedmethodstub System.out.println("具有了精忠报国的中华传统美德"); }}publicclassClass{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Personmyperson=newPerson(); myperson.Print1(); myperson.Print2(); }}//具有了精忠报国的中华传统美德//具有了尊老爱幼的中华传统美德5.案例小结:(1)多个无关的类可以实现同一接口(2)一个类可以实现多个无关的接口(3)与继承类似,接口与实现类之间也具有多态性(4)接口可以继承其它接口,并添加新的属性和抽象方法6.案例拓展:程序设计还有哪些优良的传统美德。课程思政面向对象程序设计过程中,引入了抽象类和接口等增加了编程的灵活性,引申出友善,人与人之间的相互关心,相互帮助以及和睦共处作业布置1.完成实验指导五的作业和上传2.平台第八周测试作业课后反思接口这部分有了前面抽象类和抽象方法的基础,就不难理解,案例演示同学们学习都掌握到位,实验的时候缺有问题,没有设计的思路,进行了课后的答疑

教案编号:09教学单元第六章Java数组和常用类6.16.26.3课时数4教学单元性质理论+实践授课方式讲授+案例+实践支撑的课程目标1.课程目标1(支撑毕业要求2.1):能用面向对象程序设计的基本原理对软件开发过程中的关键环节进行识别,并对模块或者系统进行分析和评价。2.课程目标2(支撑毕业要求2.2):能应用程序设计的基本原理和数学模型方法,对软件功能模块或者系统设计开发过程中的复杂问题进行表达。3.课程目标3(支撑毕业要求3.2):使学生能够应用面向对象程序设计的语法知识和基本方法,根据需求完成功能模块或者系统的设计和开发,培养学生设计解决方案的能力,锻炼程序设计能力。教学目标1.同学们应具备数组的基本概念以及相关知识,培养抽象思维的能力2.同学们应该掌握数组的使用,包括数组的申明,赋值,引用等,培养动手能力3.同学们应该掌握冒泡排序法的程序设计与实现,培养逻辑思维能力4.同学们具备Java的常用类的相关知识,锻炼程序设计能力5.同学们能够利用API文档来查询Java中的常用类的使用方法,培养自学能力6.通过数组的定义,告诫学生物以类聚,人以群分,近朱者赤近墨者黑,多和具有正能量的朋友交往教学重点1.数组的基本用法和相关语法规则2.冒泡排序和算法流程和程序设计实现教学难点1.数组的基本用法和相关语法规则2.冒泡排序和算法流程和程序设计实现时间分配教学过程MIN5104510204545一、同学们在平台上查询本周的学习和任务安排二、案例6-1冒泡排序1.案例描述:给定一个无序数组,通过冒泡排序算法将数组变为由小到大排列的有序数组。案例项目学习冒泡排序算法流程和程序设计实现,通过此案例项目对数组的基础进行了解和学习,对数组的基本概念、一维数组的定义(申明、赋值、引用、配合循环等)进行学习,并了解数组的内存分配。2.关联知识:讲授或者在线学习Java数组的基本概念数组是有序数据的集合,数组中的每个元素具有相同的数组名,根据数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组,使用时要先声明后创建。Java数组的使用,包括了数组的申明,赋值,以及引用等数组的申明:数组是Java语言中的特殊数据类型,它们保存着能通过下标索引来引用的一组同类数据。一维数组是指一个线性数据序列,声明格式为:数据类型数组名[];或数据类型[]数组名;数组的赋值和创建:用运算符new分配内存再赋值,格式如下:数组名=new数据类型[size];直接赋初值并定义数组的大小;第二种方法是直接赋初值并定义数组的大小。初值必须用大括号括起,用逗号作分隔符,初值的个数表示数组的大小。数组的引用多维数组:Java将多维数组看作数组的数组。例如二维数组就是一个特殊的一维数组,它的每个元素是一个一维数组。二维数组的声明与一维数组基本相同,只是后面再加上一对“[]”。创建二维数组时,可指定各维的长度或至少指定第一维的长度,也可采用直接赋值的方法确定二维数组的长度。此时,按照给定的值序依次填满数组每一行中的元素。更高维的情况是类似的。下面以二维数组为例来进行说明。晋·傅玄《太子少傅箴》:“故近朱者赤,近墨者黑;声和则响清,形正则影直。”告诫学生物以类聚,人以群分,近朱者赤近墨者黑,多和具

温馨提示

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

评论

0/150

提交评论