《Java程序设计案例教程(微课版)(第2版)》-教案汇 (含课程思政)胡运玲 18-31 类与对象 -其它常用集合类_第1页
《Java程序设计案例教程(微课版)(第2版)》-教案汇 (含课程思政)胡运玲 18-31 类与对象 -其它常用集合类_第2页
《Java程序设计案例教程(微课版)(第2版)》-教案汇 (含课程思政)胡运玲 18-31 类与对象 -其它常用集合类_第3页
《Java程序设计案例教程(微课版)(第2版)》-教案汇 (含课程思政)胡运玲 18-31 类与对象 -其它常用集合类_第4页
《Java程序设计案例教程(微课版)(第2版)》-教案汇 (含课程思政)胡运玲 18-31 类与对象 -其它常用集合类_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

课程名称《Java程序设计》课次18,19任务、项目、课题名称类与对象课时4学时教学内容1、类与对象的概念2、类的创建、对象的声明与创建3、构造方法、静态成员。教学目标1、了解类与对象的概念2、掌握类的创建、对象的声明与创建;3、掌握构造方法、静态成员的使用。教学重点类与对象的使用教学难点静态成员教学活动及主要环节学生活动课程思政复习1、二维数组的定义(声明+创建)2、初始化3、应用实验中出现的问题讲解:二、创设意境,导入新课导入:把大象放进冰箱分几步?洗衣服:面向过程:面向对象:--》面向对象的主要特征引出新内容:类与对象三、新授内容及时间分配1、类与对象1)定义类的语法:(重点也是难点)[修饰符]class类名[extends父类名][implements接口名]{ 类的成员变量声明; 类的方法声明;}举例一:Person.java举例二:课本例题7.3.(Book.java)2)创建对象:创建对象包括对象的声明和为对象分配内存两个步骤。(1)声明对象:类名对象名;例如:PersonJack;(2)分配内存:对象名=new类名();例如:Jack=newPerson();也可以利用下面的语法把声明和实例化用一条语句完成:类名对象名=new类名();重点讲解:(1)理解引用类型;(2)会画内存分布示意图。3)同步练习:补充2、类与对象高级1)成员变量与局部变量2)构造方法:构造方法是一种特殊的方法,方法的名字必须和类的名字相同,方法无返回值类型。用于用类创建对象是为对象的各成员变量提供初值。重点讲解:构造方法于一般方法的不同之处。3)类的静态成员注意:抽象难懂,课通过“一家人银行存钱采用的是同一账户还是不同意账户进行讲解”四、小结1、类与对象的概念2、类的创建、对象的声明与创建3、构造方法、静态成员五、作业:补充六、预习实验类与对象列举学生所做题目及过程等1、编写一个类,描述学生的学号、姓名、成绩。学号用整型,成绩用浮点型,姓名用String类型。编写一个测试类,输入学生的学号和成绩,并显示该学号的学生姓名,以及成绩。2.编写一个类,描述汽车,其中用字符型描述车的牌号,用浮点型描述车的价格。编写一个测试类,其中有一个修改价格方法,对汽车对象进行操作,根据折扣数修改汽车的价格,最后在main方法中输出修改过后的汽车信息。思政案例:案例1:唯物辩证法--人类认识世界的规律(类与对象)案例2:垃圾分类(类的封装与继承)案例3:嫦娥一号到五号介绍,嫦娥五号的“五项中国首次”(类的封装与继承)培养目标:(1)唯物辩证法的应用,人类认识世界的规律,马克思主义的应用;(2)引导学生在生活中做好垃圾分类、保护环境,树立环保意识;(3)嫦娥卫星蕴含的科学精神、爱国精神,实现科技自信;课程名称《程序设计基础》课次20任务、项目、课题名称修饰符与继承课时2学时教学内容1、类的权限修饰符;2、类的继承。教学目标掌握类的三个权限修饰符;掌握类的继承、super的用法。教学重点类的继承教学难点super的用法教学活动及主要环节学生活动课程思政复习1、类与对象的概念2、类的创建、对象的声明与创建3、构造方法、静态成员。实验中出现的问题讲解:二、创设意境,导入新课导入:减少代码的重复,提高代码的复用性。引出新内容:权限修饰符与继承新授内容1、类的权限修饰符2、子类的定义class子类名extends父类名[implements接口名]{//类体}例题一课本例题8.3Pigeon.java例题二:TestInh.java创建子类对象解析:画出内存分布示意图。3、super关键字1)调用父类的实例方法。2)调用父类被隐藏的成员变量。3)调用父类的构造方法。super():调用父类的默认构造方法.没有显示调用时也自动调用父类的无参构造方法。super(参数):调用与参数匹配的父类构造方法(难点)选取多个有代表性的例题源码进行分析讲解四、小结1、权限控制—封装性。2、继承:子类的定义方法;创建子类对象的过程;3)关键字this,super的用法。(继承中的构造方法)五、作业:补充六、预习实验列举学生所做题目及过程等super使用情况的例题分析思政案例:案例1:嫦娥一号到五号介绍,嫦娥五号的“五项中国首次”(类的封装与继承)案例2:嫦娥五号总设计师--杨孟飞院士介绍培养目标:1)嫦娥卫星蕴含的科学精神、爱国精神,实现科技自信;2)通过榜样的力量引导学生科学规划学习和职业生涯,通过中国精神激发学生们的理想信念;课程名称《程序设计基础》课次21任务、项目、课题名称多态课时2学时教学内容多态的概念;方法的重载;方法的重写;4、运行时多态。教学目标了解多态的概念;掌握方法的重载;掌握方法的重写;4、掌握运行时多态。教学重点方法的重载与重写教学难点运行时多态教学活动及主要环节学生活动课程思政复习1、权限控制—封装性。2、继承:子类的定义方法;创建子类对象的过程;3、关键字this,super的用法。二、创设意境,导入新课导入:如何提高程序的可扩展性?引出新内容:多态新授内容1、方法重载OverLoad(1)构造方法重载。例一、TestCircle.java(2)实例方法重载。例二、TestArea.java综合例题:TestOverload.java(3)在构造方法中使用this调用类中的另一个构造方法。提示:汇总this在Java语言中的三个使用地方,明确这一特殊引用的特点。2、方法覆盖OverRide在类层次结构中,如果子类中的一个方法与父类中的方法有相同的方法名,并具有相同数量和类型的参数列表,这种情况称为方法覆盖。重点:讲解方法覆盖的要求,特别说明对于访问权限的要求—权限不能降低。3、上转型:上转型对象是指有父类A与子类B,当用子类B创建一个对象,并把这个对象的引用赋给A类对象时,则把父类对象称为B类对象的上转型对象。例题三:Example.java例题四:Example2.java(难点,可反复讲解,通过画内存分布示意图等帮助学生分析理解)四、小结多态的概念;方法的重载;方法的重写;4、运行时多态。五、作业:补充六、预习实验七列举学生所做题目及过程等分析下面程序的输出结果:classA{voidcallme(){System.out.println("InsideA'scallme()method");}}classBextendsA{voidcallme(){System.out.println("InsideB'scallme()Method");}}publicclassDispatch{publicstaticvoidmain(Stringargs[]){Aa=newB();a.callme();}}思政案例:文化的多样性(多态)培养目标:认识世界的多样性,人类命运共同体的理念,弘扬和平、民主、自由的全人类共同价值,促进人类文明发展。课程名称《Java程序设计》课次22,23任务、项目、课题名称抽象类与接口课时4学时教学内容抽象类的定义与使用;抽象类的多态;接口的定义与使用;4、接口的多态。教学目标掌握抽象类的定义与使用;掌握抽象类的多态;掌握接口的定义与使用;4、掌握接口的多态。教学重点抽象类与接口的定义与使用教学难点接口的多态教学活动及主要环节学生活动课程思政复习1、多态的概念;2、方法的重载;3、方法的重写;4、运行时多态。二、创设意境,导入新课导入:减少冗余的代码。引出新内容:抽象类与接口新授内容及时间分配1、抽象类(P190)用abstract关键字来修饰一个类时,这个类叫做抽象类,用abstract关键字来修饰一个方法时,这个方法叫做抽象方法。格式如下:abstractclassabstractClass{…}//抽象类abstractreturnTypeabstractMethod([paramlist])//抽象方法例题一:TestAbstract.java例题二:TestAbstract1.java例题二:TestEmploee.java注意:(重点讲解抽象类与一般类的区别)(1)抽象方法不能有主体。(2)构造方法不能定义成抽象的。(3)抽象类的多态性。二.接口(P172)1、接口的定义[public]interfaceinterfaceName[extendslistOfSuperInterface]{[修饰符]类型属性名=值;返回值类型方法名(参数列表);}说明:(1)修饰接口的修饰符只能有public和默认两种。(2)属性定义时必须赋值,是常量。属性前默认修饰符有final,static。(3)接口中的方法必须是抽象方法,默认修饰符是public,abstract。难点:记住接口两类成员前面默认的修饰符2、接口的实现在类的声明中用implements子句来表示一个类使用某个接口。课堂练习:定义一个接口CanFly,描述会飞的方法publicvoidfly();分别定义类飞机和鸟,实现CanFly接口。定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,让飞机和鸟起飞。四、小结抽象类的定义与使用;抽象类的多态;接口的定义与使用;4、接口的多态。五、作业:六、预习列举学生所做题目及过程等编写接口实现以下应用:定义一个接口CanFly,描述会飞的方法publicvoidfly();分别定义类飞机和鸟,实现CanFly接口。定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,让飞机和鸟起飞。思政案例:案例1:招聘网站中Java开发工程师的招聘条件;案例2:互联网+创新创业等比赛获奖案例3:“组装”一台计算机,我国自主可控的电脑芯片的研发。培养目标:(1)了解Java程序开发规范的重要性,培养学生的职业素质和道德规范;(2)提高学生自我学习和创新意识和能力;(3)技术自信,激发学生科技报国的决心。课程名称《Java程序设计》课次24任务、项目、课题名称异常的捕获与处理课时2学时教学内容异常处理机制;异常的抛出与捕获;异常的手工抛出;异常的声明抛出。教学目标理解异常处理机制;掌握异常的抛出与捕获;掌握异常的手工抛出;4、掌握异常的声明抛出。教学重点异常的抛出与捕获教学难点异常的抛出与捕获教学活动及主要环节学生活动课程思政复习抽象类的定义与使用;抽象类的多态;接口的定义与使用;4、接口的多态。二、创设意境,导入新课导入:如何让我们编写的程序更健壮。引出新内容:异常处理机制新授内容及时间分配1、异常处理的概念异常的处理机制,分为两个阶段:一是异常抛出;二是异常捕获。2、异常的捕获与处理语句(重点亦难点)在Java中,采用try-catch-finally语句来捕获异常,格式如下。try{可能产生异常的语句块}catch(异常类1对象){异常处理语句块}catch(异常类2对象){异常处理语句块}……[finally{无条件执行语句块}]当出现系统可识别的错误时,系统会自动抛出系统异常的一个对象,该对象内含有异常的信息。重点讲解:catch()的作用、个数要求、顺序。例题一、Example21.java例题二、Example22.java例题三、多个catch的情况TestArray.java3、人工使用throw语句抛出异常(重点)实现方法为:首先人工生成异常对象,然后通过throw关键字将其抛出。例题三、Factorial.java4、使用throws声明抛出异常(重点)把产生的异常对象抛到上层方法中进行处理。1)方法的调用栈例题二、TestThrows.java2)用throws声明抛出异常声明抛出异常表示该方法不能或者不确定如何处理异常,它把异常抛回该方法的调用方法处理。理解:方法的调用栈,明确异常的抛出、声明抛出的区别四、小结异常处理机制;异常的抛出与捕获;异常的手工抛出;4、异常的声明抛出。五、作业:六、预习Eclipse的使用列举学生所做题目及过程等借助于异常处理,实现求用户输入的多个数据的阶乘和。思政案例:在校大学生利用肯德基APP漏洞,骗取兑换券或取餐码,获刑两年半的案例培养目标:(1)对学生进行法律意识的培养;(2)培养学生诚实、守信、坚忍不拔的性格;(3)树立正确的技能观,锐意进取,努力提高自己的专业技能,为科技强国的目标而努力课程名称《Java程序设计》课次25任务、项目、课题名称String类课时2学时教学内容1、String类的常用方法;2、String类的应用。教学目标1、掌握String类的常用方法;2、掌握String类的应用。教学重点String类的应用教学难点String类的应用教学活动及主要环节学生活动课程思政复习异常处理机制;异常的抛出与捕获;异常的手工抛出;异常的声明抛出。二、创设意境,导入新课导入:登录控制中如何实现用户名密码的比较。引出新内容:String类新授内容及时间分配一)创建String字符串(TestString.java)声明一个字符串变量:Strings;创建一个字符串变量:Strings=newString("wearestudents");或者通过初始化的方式:Strings="wearestudents";重点:理解两种赋值方式的本质区别。二)String字符串的连接例:Strings1="wearestudents"; Strings2="我们是学生"; Strings3=s1+s2; s3+="现在开始学习";三)String字符串常用方法(重点)方法的使用:字符串变量.方法名(方法参数)1、length():可以获取一个字符串的长度,也就是字符串的字符个数。例如(TestLength.java):Strings="我们是学生";inti=s.length();i的值为5。2、equals(Strings):判断两个字符串是否相等。 例:Strings1=newString("wearefriends");Strings2=newString("Wearefriends");Strings3=newString("wearestudents");这时: s1.equals(s2)的值是false s1.equals(s3)的值是true。结合各班掌握情况,选择性的扩展:equalsIgnoreCase()方法,其也是字符串比较,但不考虑字母的大小写。所以:tom.equalsIgnoreCase(boy)的值是true。例题一、密码验证。(TestPass1.java)3、其他常用方法四、小结1、String类型变量的赋值;2、字符串的连接;3、String常用的方法:length();equals();五、作业:六、预习实验十一列举学生所做题目及过程等扩展的密码验证程序:最多给用户三次密码输入的机会,如果验证成功则给出相应的提示,三次验证失败后也给出对应的提示。思政案例:案例1:红楼梦段落分析案例2:验证码应用案例案例3:以破解算法为矛,为密码世界铸盾—王小云教授培养目标:(1)弘扬传承中华优秀传统文化,增强文化自信;(2)培养学生诚实、守信、坚忍不拔的性格;(3)树立正确的技能观,锐意进取,努力提高自己的专业技能,为科技强国的目标而努力;(4)树立正确的时间观念,科学规划。课程名称Java程序设计课次26任务、项目、课题名称Math类、Random类课时2学时教学内容Math类及其常用方法;Random类及其常用方法教学目标掌握Math类的常用方法;掌握Random类的常用方法教学重点验证码的生成教学难点验证码的生成教学活动及主要环节学生活动课程思政设计一、实验中出现的问题讲解:二、创设意境,导入新课导入:登录网站时验证码是如何生成的?三、新授内容1、Math类Math类是数学操作类,提供了一系列用于数学运算的静态方法,包括求绝对值、三角函数、求最值等。Math类中还有两个静态常量PI和E,分别代表数学常量π和e。【例题7-9】Math常用方法举例。【例题7-10】使用Math类的random()方法生成四位数字组成的验证码。2、Random类Random类中有更多的实现随机数的形式doublenextDouble() 随机生成double类型的随机数floatnextFloat() 随机生成float类型的随机数intnextInt() 随机生成int类型的随机数intnextInt(n) 随机生成0~nint类型的随机数【例题7-11】生成15个0~100的随机数。四、小结1. Math类及其常用方法;2. Random类及其常用方法五、课后反思列举学生所做题目及过程等随机生成四位英文字符作为验证码1.实验问题讲解引出编码的规范性,形成良好的职业素养;2.通过验证码防止恶意破解密码、刷票、论坛灌水等,进行人机区分,保证系统的安全课程名称Java程序设计课次27任务、项目、课题名称日期时间类课时2学时教学内容常用的时间表示形式;java.util.Date;java.util.Calendar类教学目标了解常用的时间表示形式;掌握java.tuil.Date及其方法;掌握java.util.Calendar类及其方法。教学重点java.util.Calendar类及其方法教学难点时间的计算教学活动及主要环节学生活动课程思政设计一、实验中出现的问题讲解:二、创设意境,导入新课导入:如何获取当前的系统时间。三、新授内容常用的日期时间类有:Calendar、Date和SimpleDateFormat。例:Dated1=newDate(); //创建日期对象 Calendard2=Calendar.getInstance();//获取日历对象。说明:讲解时分别演示利用两个类来获取相对时间、绝对时间点的方法,查看帮助文档中所列方法。1、Calendar类常用的静态常量表示:staticintYEAR:指示当前年份。staticintMONTH:指示当前月份。0表示1月份,1表示2月份,类推。staticintDATE:指示当前是一个月中的某天。2、get()方法:(重点掌握)返回给定日历字段的值。返回值为int类型。例:Calendarcal=Calendar.getInstance();//获取日历对象。intyear=cal.get(Calendar.YEAR); //年intmonth=cal.get(Calendar.MONTH)+1; //月intday=cal.get(Calendar.DATE); //日3、set()方法:将给定的日历字段设置为给定值。例:charw[]={'日','一','二','三','四','五','六'};Calendarcal=Calendar.getInstance();//使用默认时区获得一个日历。cal.set(Calendar.YEAR,2008); //2008年cal.set(Calendar.MONTH,9); //10月cal.set(Calendar.DATE,1); //1日4、日期格式定义类SimpleDateFormat(属于知识的扩展,可分层次要求)SimpleDateFormat类用于指定日期输出的格式。如,创建一个中文的日期表示格式对象sf1:SimpleDateFormatsf1=newSimpleDateFormat("yyyy年MM月dd日");5、 日期类的应用课堂练习显示如图所示信息:四、小结1、常用的时间表示形式;2、java.tuil.Date;3、java.util.Calendar类五、课后反思列举学生所做题目及过程等元旦倒计时,计算现在距离元旦的天数。1.实验问题讲解引出编码的规范性,形成良好的职业素养;2.“珍惜当下,不负韶华”一定要好好珍惜时间,去学习更多的东西课程名称《Java程序设计》课次28,29任务、项目、课题名称常用的集合框架类课时4学时教学内容List及其子类的应用教学目标掌握Java集合框架类的体系结构;掌握List及其子类的应用。教学重点List及其子类的应用教学难点自定义类时重写equals()方法的重要性教学活动及主要环节学生活动课程思政设计复习掌握Java绘图的机制;2、掌握Java常用的绘图方法;3、掌握验证码的使用。二、创设意境,导入新课批量数据的保存及处理。新授内容及时间分配Object类及其常用方法equals()方法;hascode()方法。自定义类重写上述方法的原理以Student类为例。测试例题一、TestStudent.java重点讲解:Student类中equals()方法的逻辑结构。Java的集合框架类4、Collection类提供的常用方法booleanadd(Objectelement);booleanremove(Objectelement);booleancontains(Objectelement);intsize();测试例题二、TestStudent.java迭代器Iterator常用方法booleanhasNext();//判断是否有元素没有被遍历Objectnext();测试例题三、TestStudent.java重点讲解:add()、remove()后,使用迭代器操作中的异常解决策略。List接口voidadd(intindex,Objectelement);Objectget(intindex);Objectset(intindex,Objectelement);//修改某一位的元素Objectremove(intindex);测试例题四:TestList.java(1)重点介绍List有序列表的特点;(2)列表中添加自定义对象时,自定义类重写equals()方法。单个商品的封装类的讲解publicclassSingleGoods{ privateStringname; privatedoubleprice; privateintnum;……}注意事项:让学生学会集成开发环境的高级使用,自动生成构造方法、getter等,提高代码开发效率。购物车封装类publicclassShopCar{private ArrayList<SingleGoods>basket=newArrayList<SingleGoods>();publicArrayList<SingleGoods>getBasket(){ returnbasket;}publicvoidaddItem(SingleGoodssingle){//添加商品 ……(重点讲解添加商品的逻辑处理) }publicvoidremoveItem(SingleGoodssingle){//一处商品 ……(重点讲解移除商品的逻辑处理)}}注意事项:重点培养学生严密的逻辑思维,并提高程

温馨提示

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

评论

0/150

提交评论