还剩6页未读,继续阅读
文本内容:
泛型和集合一课题课时2课时90min知识技能目标i了解定义泛型类的语法格式2掌握泛型的接口、方法的语法格式3掌握泛型的高级用法的语法格式教学目标思政育人目标1引导学生通过对泛型的学习,使用同一算法操作不同数据类型的对象,培养学生的拓展思维,独立思考和深度思考的良好习惯2引导学生运用所学知识揭示生活中的奥秘,在实践中深化认识,达到学以致用的目的教学重难点教学重点掌握声明泛型方法应注意的事项教学难点泛型的两种高级用法教学方法情景模拟法、问答法、讨论法教学用具电脑、投影仪、多媒体课件、教材第1节课课前任务—考勤2min->问题导入5min一传授新知33min一知识拓展5min教学设计第2节课上机实操120min一课堂演示20min一课堂小结3min一作业布置2min教学过程主要教学内容及步骤设计意图第一节课■【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过其他学习软件,了解《从泛型方法探究泛型的起源》不管是方法还是类,都支持输入指定类型的参数,其中方法的输入参数在调用方法时填写,而类的输入参数可通过构造方法传递在通过课前的预这两种参数输入的情况中,参数类型是早就确定好的,只有参数值才热,让学生了解所学会动态变化,那要是连参数类型都不确定,得等到方法调用或者创建课前任务课程的大概内容,实例的时候才能确定参数类型,这可如何是好?为解决此种需求,各激发学生的学习欲类编程语言纷纷祭出泛型的绝招,所谓泛型它的表面意思是空泛的望类型,也就是不明确的类型,既然类型在方法定义或者类定义时仍不明确,只好留待要用的时候再指定了■【学生】提前上网观看相关资料,熟悉教材培养学生的组织考勤■【学生】按照老师要求签到纪律性,掌握学生2min的出勤情况【教师】创设情景,提出问题泛型就是参数化类型,即我们在定义的时候,将具体的类型进行参数化,在调用或者使用的时候,再传入具体的参数类型,我们可以将泛型用在类、接口和方法中,分别被称为泛型类、泛型接口、通过互动导入,问题导入泛型方法那么我们为什么要使用泛型呢?引导学生思考,调动5min■【学生】思考、讨论学生的主观能动性■【教师】组织发言请小组组长总结全组结论,派代表进行发言■【学生】发言■【教师】通过大家的发言,弓1人新的知识点,讲解泛型
7.1泛型
1.泛型的核心是参数化类型
2.泛型不能是基本数据类型,须使用其对应的包装类
3.
1.1泛型类在类的声明中使用了泛型的类,称为泛型类通过泛型可以完成一组类的操作对外开放相同的接口语法格式class类名T通过讲解,让学T表示传入参数的数据类型,在创建对象时指定,可以为多个参生了解泛型的类和传授新知数,中间使用逗号隔开其他语法格式,通33min过讲解和对案例的【教师】演示例题7-1分析,掌握其运用【学生】观看程序运行结果方法【教师】对程序进行分析创建对象时为类型形参指定不同的数据类型,传入参数的类型必须与指定的数据类型一致【学生】聆听、理解、记录
4.
1.2口语法格式interface接口名TT表示传入参数的数据类型,可以为多个参数,中间使用逗号隔开在实现接口时指定数据类型例//定义泛型接口interface NumberT{}//定义类,实现泛型接口classIntNumberimplementsNumberInteger{}
7.13泛型方法
1.如果在调用方法时参数类型不确定,或者方法的返回值类型不确定,那么可以将这个方法定义为泛型方法语法格式[修饰符]T返回值类型方法名T参数
2.声明泛型方法应注意事项1在修饰符和返回值类型之间必须有一个类型声明由尖括号分隔,表示该方法为泛型方法返回值类型和参数的类型必须是声明的类型,可以声明多个类型,中间用逗号隔开2参数可以是一个或多个,中间用逗号隔开3返回值类型可以使用类型参数声明,如TTesTparam【教师】演示例题7-2,并对重要语句进行分析//调用middle方法,并将返回值赋给middle1Stringmiddle1=middles;System.out.printInmiddlel;//thmlddlel//定义外型表姐.每个元案都为Integer类的对象//数姐中元素自动状成工nteger对象Integer[]i={1,2,3Z4};//谓用middle方法,并将返回值陆给middle2Integermiddle2=middle1;System.out.printinmiddle2;//喻出middle2【学生】聆听、理解、记录泛型的高级用法
1.限制泛型可用类型1Java还可以对泛型的类型参数进行限制3吉,去格式class类名T extends anyClassanyQass表示类或接口,exlends表示类型限制,参数类型必须实现或继承anyClass类2创建一个ListClass类,并将该类的类型限制为实现List接口的类,可以用以下代码实现//限创Listclass的泛型矣里必须实现List接口publ1cclassListClassTextendsList{publicstaticvoidmainString1]args{//稳定泛型矣LisBlass的矣型为Arra£,sj并实例化LxstClassArrayListlei=newListClassArrayList;//楮定泛型关Listclass的矣型为LinkedLi3t.并实例化LlstClas3LlnkedLlstlc2=newLlstClassLlnkedLlst;
2.使用类型通配符1当具体类型不确定时,可以使用通配符,类型通配符一般使用“”代替具体的类型实参语法格式泛型类名称extends anyClass”extendsanyClass”表示通配符”的上界为anyClass.2泛型内不存在继承关系,但是使用通配符可以产生类似的效果■【学生】聆听、思考、理解、记忆■【教师】讲解指定泛型类类型常用字母学生可进一步巩知识拓展5min固知识■【学生】聆听、记录、思考第二节课■【教师】组织学生在机房使用文本编辑编写程序,运用课堂所学知识和基础在Java运行环境中编写程序,实现以下目的通过上机实操,创建一个可以获取宠物信息的小程序上机实操使学生熟练掌握使20min■【学生】上机实操用关键字编写程序的方法■【教师】巡视机房,及时解决学生遇到的问题■【教师】带领学生分析上机操作中出现的问题,并作出分析【问题分析】通过演示让学生课堂演示定义一个带泛型的宠物类PetT,包含成员变量petlnfor宠物找出自己的不足,20min信息、构造方法初始化宠物信息和成员方法getlnfor获取宠物从而牢固的掌握知信息,定义时都使用类型形参T表示数据类型,然后在main方法中识点创建3个对象,分别为String类型的名字对象和种类对象、Integer类型的年龄对象,再分别调用getlnfor方法输出宠物信息■【教师】利用多媒体演示具体操作过程【参考代码】/*Pet.^ava*/packagechapter.example7_1;publicclassPetT{//定义泛曳夷privateTpetlnfor;//定义定物信息pet工n£orpublicPetTpetInfor{//定义带矣型册系的构造方法thls.petinfor=petInfor;//将叁会赋给peclnfor}publicTgetInfor{//定义方法菽取petlnforreturnpetl^nfor;//^et^InforpublicstaticvoidmainString[]既般{//创建参数为String亮型的名字可象“PetStringgetName=newPetStringR;//创建参我为s二;怒溪型的种卖对象PetStringpetType=newPetString;//创建参4t为Integer美量的年龄财泉PetIntegerpetAge=newPetInteger13;//调用gfEJn经E方法,蛤出名字Systern.out.printIn♦petName.getlnfor;//调用变5期身
2.方法,珀出件臭System.out.printInMjl w+petType.getlnfor;//调用getlnfor0方法.检出年龄System.out.四3世49“宠物年龄+petAge.c^etlnfor;}【运行结果】宠物名花花宠物种类猫宠物年龄13个月■【学生】上机实操,根据老师的演示上机实操总结自己的不足■【教师】简要总结本节课的要点本节课学习了泛型的核心,在类、接口、方法的定义中使用的并课堂小结总结知识点,巩通过上机实操让大家熟练掌握了怎样定义泛型的类希望大家课下多3min固印象加练习,巩固所学知识■【学生】总结回顾知识点■【教师】布置课后作业延展知识面,多作业布置2min学科交叉学习本章“知识考核”中的填空题【第1题】■【学生】完成课后任务本节课以理论和实践相结合的方式,通过丰富的课堂内容在教学中要激发学生学习兴教学反思趣和好奇心,不断追求新知鼓励学生质疑问难,启发学生发现问题和提出问题,善于独立思考,使学习成为再创造、再发现的过程。