JAVA面向对象程序设计教案 - 图文

更新时间:2024-01-16 21:41:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西南财经大学天府学院

教 案

任课教师: 贾砚池

课程名称:面向对象程序设计(Java) 任课班级: 13级专科计算机01班、01班、13级专科软件01班

授课时间: 2013-2014-2学期

西南财经大学天府学院教务处制

级专科网络

13

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:1

章节 Java SE程序设计与实践的考核方式和Java简介 授课方式 讲授+讨论+上机 教 学 目 的 (1) 掌握本课程的考核方式、即将要学习的内容以及相关的课堂纪律。 (2) 了解课程整体目标。 (3) 了解Java语言。 (4) 了解Java程序的类型。 (5) 理解Java虚拟机(JVM)。 (6) 掌握Java程序运行环境的配置,能够独立完成。 (7) 培养学生实际动手能力(自主安装JDK以及配置环境变量)。 (8) 培养学生自主解决问题的能力。 教 学 重 点 教 学 难 点 时间 分配 Min 10 5 (1) 环境变量的配置和编译源文件以及Java程序打包。 (1) 环境变量的配置和编译源文件以及Java程序打包。 教 学 过 程 一、 考核方式(讲授) (1) 考核分为两部分: a) 第一部分:平时,占60%;其中,考勤:10%;平时作业或项目:40%,包括2次大型的作业任务,每次任务各占15%,2次及以上小型作业任务,占10%。根据项完成的程度和质量,由老师评分,未交者得零分;平时表现分:10%,包括课堂纪律、上课积极的参与讨论、主动回答问题及上台演示和讲解程序的编写、小组作业时候的团队协作能力(由组长评分)。 b) 第二部分:期末项目,占40%;一次大型项目,由小组完成。 (2) 旷课3次取消考试资格,迟到3次算一次旷课。每迟到一次扣1分,旷课一次扣5分,期末全勤可加2分。 (3) 课堂内看视频、玩游戏,第一次扣5分,第二次扣10分,第三次扣20分,如果超过4次者,直接取消该科的考试资格。 二、 课堂纪律(讲授) (1) 上课不准吃零食、嗑瓜子等。 (2) 下课后带走自己桌上的垃圾,让课桌上保持整洁。 (3) 下课后关电脑(主机和显示器)。 (4) 上课不准大声喧哗、玩手机、pad、睡觉等与学习无关的事情。 三、 教师信息及答疑时间设定(讲授) 四、 学习小组的成立以及成员之间讨论(讨论) (1) 自由分组,每个组4-6人,并选定组长,然后为每个组安排好上机位置(小组成员必须坐在一起),以后就固定座位。 (2) 小组讨论: 第1页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

15 5 10 10 15 25 a) 互相认识,加深了解,了解各自的兴趣和长项。 b) 选取一个同学为小组长。 c) 探讨学习本课程的方法,并由小组长向老师汇报本次讨论的结果。 五、 Java语言简介 (1) Java是一种程序设计语言,由Sun Microsystem公司于1995年推出; (2) 早在1991年,Sun公司的James Gosling等人开始开发名为Oak的程序设计语言,希望用来控制嵌入在有线电视机顶盒和PDA等设备中的微处理器; (3) 1994年,Oak语言正式更名为Java; (4) Java语言凭借其独有的安全性、可移植性和平台无关性,迅速走红。 六、 Java可以做什么?(学生查询资料) 由学生自助通过各种方式查询资料,然后老师随机抽取1-3名同学回答。 七、 Java虚拟机(讲授) (1) Java虚拟机(Java Virtual Machine)是可运行Java字节码的虚拟计算机系统。 (2) 使用Java语言编写的程序,实际上是运行在JVM之上,而不是运行在操作系统上。 (3) 它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。 八、 开发Java程序的步骤(讲授) (1) 创建Java源程序 Java源程序可以使用任何文本编辑器创建与编辑,一般用.java作为扩展名,其实就是一个使用Java语言编写的文本文件; (2) 编译源程序 Java编译器读取Java源程序并翻译成Java虚拟机能够明白的指令集合,并以字节码的形式保存在文件中,通常,字节码文件以.class作为扩展名; (3) 运行class(字节码)文件 Java解释器读取字节码文件,取出指令并翻译成计算机能够执行的机器代码,完成运行过程。 九、 编写第一个Java程序(讲授+演示) (1) 打开记事本,新建一个文本文件,将文件名改为Hello.java,在文件中键入如下内容并保存: class Hello { public static void main(String[] args) { System.out.println(\ } } 第2页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

30 60 作 业 布 置 (2) 使用javac编译器编译源文件。 (3) .class(字节码)文件。 (4) 使用java解释器运行字节码文件。 十、 分析程序( 讨论+讲授) 分组讨论,然后由每个组轮流发言;最后由老师总结。 (1) 关键字class用来定义一个类,Hello是类的名称; (2) 在Java程序中,所有的语句都必须放在某个类中; (3) 整个类及其所有成员都包含在一对花括号中(即{和}之间),它们标志着类定义块的开始和结束。 (4) 定义类的一般语法: class 类名 { …… } (5) 程序必须从main函数开始执行; (6) 关键字public是访问修饰符,用来控制类成员的可见范围及作用域; (7) 关键字static允许在不创建类的实例的情况下,调用main函数; (8) 关键字void用来说明main函数是没有返回值的; (9) args是字符串数组,用来从命令行接收参数; (10) String[]是字符串类型的数组; (11) 在Java中,类名称一般首字母大写; (12) 使用System.out.println()将信息输出到控制台上,即打印出来。 十一、 上机实验 (1) 安装JDK。 (2) 进行环境变量的配置。 (3) 安装Eclipse。 (4) 熟悉Eclipse开发环境。 (1) 编程输出以下信息 ********************************************* 欢迎进入Java编程世界 ********************************************* (2) 课后预习Java语言基础(Java的基本数据类型、操作符、关键字、流程控制)。 (1) 所有的同学都掌握了本门课程的考核方式。 (2) 通过分组学习,同学之间有问题可以互相帮助,学生学习积极性很高,并且通过小组组长的汇报,一部分学习方法较好的同学的经验,得以在全班同学之间共同分享,效果很好。 (3) 80%的同学都能够独立完成Java开发环境的搭建以及配置。 (4) 由于前面有C语言的学习基础,70%以上同学对Java程序结构的理解都不存在问题。整体来说,效果良好。 课 后 总 结

第3页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:2

章节 Java语言基础 流程控制 — 分支语句 授课方式 讲授+学生实验+讨论 教 学 目 的 (1) 掌握Java中的变量和数据类型。 (2) 掌握Java中变量的作用域规则。 (3) 掌握数据类型转换。 (4) 掌握Java中的运算符和表达式。 (5) 掌握选择结构的几种实现方式;并能够独立的应用它们来编写程序。 (6) 培养学生主动思考问题的能力。 (7) 培养学生表达能力。 (8) 培养学生实际动手操作能力。 (1) Java的基本数据类型、引用类型以及变量的作用域。 (2) 分支语句。 教 学 重 点 教 学 难 点 时间 分配 Min 10 80 (1) 引用类型以及变量的作用域。 (2) 分支语句。 教 学 过 程 一、 作业点评(学生阐述+老师总结) 方式:由出现程序问题的同学讲出自己出现的问题以及解决方式,最后由老师总结。 (1) 类名不规范、代码排版不规范。 (2) public中的p出现大写情况;static关键字丢失;main出现mian;String中的S未大写;System中的s出现了小写。 (3) printf以及println,print输出格式混淆. (4) {}不匹配或者丢失。 二、 抽查上周布置的课后作业,抽查2-5个同学来阐述Java的基本数据类型、操作符、关键字。(学生阐述+老师讲授) (1) 标识符命名规则 a) 变量、函数、数组、对象、类和接口等等都需要命名,这些名称统称为标识符; b) Java中对于标识符的命名规则作了如下限制: i. 只能由英文字母、数字、下划线“_”和“$”符号组成。 ii. 必须以英文字母、“_”或“$”开头,即不能以数字开头。 iii. 除“_”和“$”以外,不能包含其它任何特殊字符。 iv. 不能与关键字冲突。 v. 严格区分大小写。 (2) Java中的关键字: abstract、boolean、break、byte、case、catch、char、 class、continue、do、double、else、enum、 extends、false、find、finally、float、for、implements、 import、instanceof、int、interface、long、native、 第4页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

90 new、null、package、private、protected、public、 return、short、static、super、switch、synchronized、 this、throw、throws、true、try、void、while (3) 数据类型 (4) 变量的作用域和生命周期 a) 变量 的作用域指变量起作用的范围,说明变量在什么部分可以被访问; b) 变量的生命周期是指变量在内存中存在的周期,即什么时候分配空间,什么时候销毁; (5) 运算符和表达式 a) 算术运算符 b) 关系运算符 c) 逻辑运算符 d) 条件运算符 e) 赋值运算符 (6) 选择结构 a) if语句 b) if?else语句 c) if?else if语句 d) switch?case语句 三、 学生实验(上机+老师指导) (1) 输入一个“男”或者“女”,对应输出“M”和“F”。 (2) 写程序,若星期一到星期五,则打印出“工作快乐”,若星期六、星期天则输出“周末更快乐”。 (3) 输入一个分数,输出对应的等级: 60以下 E 60-70 D 70-80 C 80-90 B 90 – 100 A (1) 输入三个数字,最后从小到大输出排序。 (2) 课后预习循环结构的几种语句以及数组的定义。 作 业 布 置 第5页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

课 后 总 结 (1) 通过学生自己对出现问题的总结和老师的总结,80%以上的同学对常见问题的解决方法有了一个深刻的认识。 (2) 通过三个上机程序,加深了对循环结构的认识。但是依然有约20%的同学对if和switch的用法还不能掌握,需加强程序上机的编写。 第6页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:3

章节 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 10 60 流程控制 — 循环语句 数组 (1) 掌握循环语句的使用。 (2) 掌握数组的声明以及运用。 (3) 培养学生主动性和积极性。 (4) 培养学生的逻辑思维能力。 (1) 循环语句。 (2) 数组、哈希表。 授课方式 讲授+上机 (1) 循环语句。 (2) 数组、哈希表。 教 学 过 程 一、 作业点评(学生阐述+老师总结) 方式:由3-5个同学来讲述上周作业的实现思路,最后由老师总结出现的一些问题。 (1) 类名不规范 (2) 运算符的运用 (3) 部分算法的不科学性 二、 抽查上周布置的课后作业,抽查1-3个同学来阐述循环结构的几种语句以及数组的声明。(学生阐述+老师讲授) (1) 循环语句 a) While int i=0; while(i++<3) System.out.println(i); b) Do……while语句 int i=1; do { System.out.println(i); }while(i++<3); c) For 语句 for(int i=1;i<=3;i++) System.out.println(i); (2) 流程控制语句 a) break:从switch语句、循环语句或标号标识的代码块中退出。以下while循环用于把1加到100: int a=1,result=0; one: while(true){ result+=a++; 第7页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

110 if(a==101)break one; //终止循环 } System.out.println(result); //打印5050 b) continue:跳过本次循环,执行下一次循环,或执行标号标识的循环体。以下for循环用于对1到100之内的奇数求和: int result=0; for(int a=1;a<=100;a++){ if(a%2==0)continue; //如果a是偶数,就跳出本次循环,继续执行下次循环 else result+=a; } System.out.println(result); //打印2500 (3) 讨论:判断下面程序执行了多少次? class Test { public static void main(String[] args){ int i=0; while(i<10){ if(i<10){ i++; continue; } if(i==5) { break; } } System.out.println(i); } } (4) Java中声明数组的几种方式 //仅声明数组的引用,但没有分配内存空间 float[] fAry; //声明数组的同时,根据指定的长度分配内存,但数组中没有值 char[] chAry = new char[10]; //声明数组并分配内存,同时将其初始化 int[] ary1 = new int[]{1, 2, 3, 4, 5}; //与前一种方式相同,仅仅只是语法相对简略 int[] ary2 = {1, 2, 3, 4, 5}; 三、 学生实验(上机) (1) 【练习题一】 编写Java程序,计算100~999之间的全部“水仙花数”的平均值。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153=1^3+5^3+3^3,故153是水仙花数。 (2) 【练习题二】 编写一个Java程序,要求在控制台上打印出九九乘法表,效果应如下所示: 1*1=1, 1*2=2, 2*2=4, 第8页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

1*3=3, 2*3=6, 3*3=9, 1*4=4, 2*4=8, 3*4=12, 4*4=16, 1*5=5, 2*5=10, 3*5=15, 4*5=20, 5*5=25, 1*6=6, 2*6=12, 3*6=18, 4*6=24, 5*6=30, 6*6=36, 1*7=7, 2*7=14, 3*7=21, 4*7=28, 5*7=35, 6*7=42, 7*7=49, 1*8=8, 2*8=16, 3*8=24, 4*8=32, 5*8=40, 6*8=48, 7*8=56, 8*8=64, 1*9=9, 2*9=18, 3*9=27, 4*9=36, 5*9=45, 6*9=54, 7*9=63, 8*9=72, 9*9=81, (3) 【练习三】 1.打印如下图型: * *** ***** *** * 2. * * * * * * * * * * * * 作 业 布 置 课 后 总 结 (1) 一个小球从100米处落下,每次弹起是原来的一半,问弹起第二十次落下后所经过的米数。 (1) 通过这三周的程序编写和讲解,发现50%的同学对选择结构和循环结构的熟练程序还不够,对一些算法的实现还存在很大的问题,逻辑思维能力较弱。因此接下来的1-2周,决定采用大量的例子程序进行上机练习,然后由老师以及学得比较好的同学进行辅导,为后面的面向对象编程的一些概念打下基础。

第9页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:4

章节 教 学 目 的 教学 重点 教学 难点 时间 分配 Min 20 160 作 业 布 置 课 后 总 结 程序上机练习 授课方式 讲授+上机 (1) 掌握分支语句、循环语句、数组的用法;加深对变量以及数组声明等用法的理解和使用。 (2) 培养学生的逻辑思维能力。 (3) 培养学生的实际动手能力。 (4) 培养学生分析问题的能力。 (1) 分支语句、循环语句。 (1) 分支语句、循环语句。 教 学 过 程 一、 作业点评(学生阐述+老师总结) 方式:由3-5个同学来讲述上周作业的实现思路,最后由老师总结出现的一些问题。 (1) 类名不规范 (2) 运算符的运用 (3) 部分算法的不科学性 二、 上机实验 实现方式: (一)由老师给出程序片段,由学生完成关键部分的填写,最后让学生独立运行程序。 (二)让个别同学来讲解整个程序的实现思路,最后由老师总结。 (1) 求1000以内的素数(素数:只能除开1和本身的数) (2) 已知某年某月某日,从该年的1月1日开始3天打渔2天晒网,求该日是打渔还是晒网(思路,先求出该天是该年的第几天) (3) 编写一个程序实现将任意一个十进制数转换成二进制形式输出 如10输出形式为 0000000000...00000001010 (4) 一个小球从100米处落下,每次弹起是原来的一半,问弹起第二十次落下后所经过的米数。 (5) 求任意两个整数的最大公约数和最小公倍数 (6) 输出九九乘法表(两层for循环) (7) 求1000以内的水仙花数(如 153 = 1^3+5^3+3^3) (8) 已知一个正整数,输出它的所有质数因子(如180的质数因子为2、2、3、3、5)。 (1) 求1!+3!+5!+…+9!的值 (2) 求1+1/2+1/6+1/12+1/20+….前10项的和 (1) 通过程序片段的方式,80%以上的同学都能够很好的完成最后的关键部分填写;这样的方式对于程序的初学者来说是一个很好的入门方式;在降低难度的同时还促进了学生的主动思考和分析问题的能力。

第10页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:5

章节 教 学 目 的 教学 重点 教学 难点 时间 分配 作 业 布 置 课 后 总 结 授课方式 教 学 过 程 国庆放假 第11页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:6

章节 教 学 目 的 教学 重点 教学 难点 时间 分配 Min 30 150 程序上机练习 授课方式 讲授+上机 (1) 掌握循环结构、选择结构的用法;加深对变量以及数组声明等用法的理解和使用。 (2) 培养学生的逻辑思维能力。 (3) 培养学生的实际动手能力。 (4) 培养学生的团队意思。 (1) 分支语句、循环语句。 (1) 分支语句、循环语句。 教 学 过 程 一、 作业点评(学生阐述+老师总结) 方式:由3-5个同学来讲述上周作业的实现思路,最后由老师总结出现的一些问题。 二、 上机实验(上机+指导) 实现方式:由学生独立完成,老师从旁指导。对于复杂的程序由小组讨论:如第六个小题。在写程序的同时也增加了趣味性。 (1) 万年历(周几的判断规则是 (年+年/4+年/400-年/100)%7) (2) 求1!+2!+3!+4!+...+9!的值 (3) 求1+1/2+2/3+3/5+5/8+....前10项的和 (4) 求Fibonacci数列:1,1,2,3,5,8,....的前40项并输出 (5) 编写一个程序,打印出 1 2 3 3 4 5 5 6 7 6 7 8 9 (6) 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 问海滩上原来最少有多少个桃子? 桃子的个数有多少种可能? (7) 写一段程序,定义int型变量代表month 月份,并赋给初值,根据月份判断出这个月是四季中的哪个季节?不是一年12个月份的月份,输出“错误月份”; (8) 给一个不多于5位的正整数,要求:一、输出它是几位数,二、逆序打印出各位数字。 (1) 编写程序,打印出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (2) 课后预习面向对象编程的概念。 作 业 布 置 第12页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

课 后 总 结 通过两周的课堂编程练习以及老师的指导和讲解,80%的同学对Java语言基础、循环结构、选择结构以及数组的应用基本熟练,达到了Java编程的入门级水平(能够编写一些简单的应用程序,如:打印图案,数字排序,平年与闰年的判断等);在逻辑思考上也有了一些进步,但是程序的训练还需进一步的加强。

第13页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:7

章节 面向对象开发方法概述 授课方式 讲授+上机 教 学 目 的 (1) 了解什么是面向对象。 (2) 掌握面向对象的基本概念(类、对象、属性、封装、继承、多态)。 (3) 掌握如何定义类,如何创建对象。 (4) 掌握成员运算符的使用。 (5) 掌握访问控制权限:public和private。 (6) 培养学生抽象客观世界成主观世界的能力。 (7) 培养学生初步的设计软件系统的能力。 (8) 培养学生的团队意识。 教 学 重 点 教 学 难 点 时间 分配 Min 15 15 10 10 (1) 面向对象的核心思想和概念 (1) 面向对象的核心思想和概念 教 学 过 程 一、 作业点评(学生阐述+老师总结) 方式:由1-3个同学来讲述上周作业第六题的实现思路以及展示具体实现,最后由老师总结出现的一些问题。 二、 上周课后作业检查 方式:抽查2-5名同学谈谈对面向对象编程的认识以及对基本概念的描述。 三、 面向对象的编程思想 四、 对象 (1) 现实世界中的实体是实际存在的某种物体,用OOP的术语就称为对象。 (2) 在Java中我们通过对象对现实世界中的实体进行一个模拟和映射。 第14页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

20 20 10 10 (3) 对象是面向对象编程的核心部分,和现实世界一样,需要具有明确定义的状态和行为。 (4) 对象的特征——属性 a) 属性——对象具有的各种特征 b) 每个对象的每个属性都拥有特定值 (5) 对象的特征——方法 a) 方法——对象执行的操作 五、 类 (1) 人们为了更好地认识世界,将现实生活中的事物(对象)划分成类; (2) 同一类中的事物总是具有一些共性; (3) 类以共同的特性和行为定义实体; (4) 类是具有相同属性和行为的一组对象的集合。 (5) 类和对象的区别 a) 类是用来描述实体的“模板”或“原型”; b) 对象是实际的实体,每一个对象都是类的一个具体实例; c) 类用来定义对象所有的属性和方法,同一类的所有对象都拥有相同的特征和操作; d) 可以将类理解成生产产品的模具,而对象则是根据此模具生产的一个个产品。 六、 在Java中定义类 七、 创建对象的语法 (1) 和数组相似,对象也是引用数据类型,只能使用new运算符从堆中分配内存; (2) 创建对象的一般语法: (3) 类名 引用名 = new 类名(); (4) 使用已经定义好的类,创建该类对象的过程称为“实例化”。 八、 访问权限:public和private (1) C语言中结构体的成员可以从任何地方进行访问,这将给数据的安全留下极大的隐患; (2) 为了避免从类外部直接访问类成员而造成的数据损坏,Java对类成员的访问制定了约束; (3) 关键字public和private是访问修饰符,用来说明某个成员是否可以从类外部进行访问; (4) public修饰的成员可以在任何地方进行访问,不受任何约束; (5) private修饰的成员只能够被本类中的其它成员访问,而不能从类的外部进行访问。 第15页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

15 55 九、 讨论:列举出生活中常见的类以及它们的对象。 由每个组一个代表发言,说出讨论结果。 十、 上机实验 (一) 练习一 (1) 请通过代码封装,实现如下需求: 编写一个类Book,代表教材: 1、具有属性:名称(title)、页数(pageNum)、出版社(publisher) 2. 为各属性设置赋值和取值方法 3、编写一个判断页数的方法judgePage(),其中判断输入的页数不能少于200页,否则输出错误信息,并赋予默认值200 4、具有方法:detail(),用来在控制台输出每本教材的名称和页数 (2) 编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确? (二)练习二 (1) 使用JAVA定义学生类Student! a) 要求学生类有姓名、性别、年龄、体重等属性,并且全部属性都要使用private修饰。 b) 提供public的set和get方法来设置和获取属性的值。 c) 提供dining() 吃饭 和walk 走路 ()。 (2) 编写测试类Teststudent进行测试:为Student对象的属性赋予初始值,并调用Student对象的dining(),walk()方法,看看输出是否正确? 作 业 布 置 课 后 总 结 (1) 教材P42 第八题。 (1) 只有40%的同学对面向对象的基本概念的理解和掌握;余下的大部分同学都属于一知半解;在这方面还需进一步加强练习。

第16页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:8

章节 面向对象开发方法概述 — 类和对象的Java实现 (1) 掌握类和对象的基本概念以及核心思想。 (2) 掌握构造方法的写法以及重载。 (3) 掌握对象在内存中的存放形式。 (4) 培养学生对客观事物的抽象能力。 (5) 培养学生系统分析的能力。 (6) 培养学生的项目展示能力。 (1) 构造方法。 (2) 方法重载。 授课方式 讲授+学生操作 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 20 (1) 方法重载。 教 学 过 程 一、 作业点评(学生阐述+老师总结) 方式:由2-4个同学来讲述上周实验的实现思路以及具体实现,最后由老师总结出现的一些问题。 (1) 一个Java文件中出现多个class,需文件名的类修饰成public即主类。 (2) 建立测试类后,创建对象后访问对象的属性时未通过对象进行引用而直接访问属性。 (3) setter方法传参数出现问题,如obj.setTitle=\天龙八部\(4) char型出现char ch=\男\(5) 类中定义方法(行为)出现问题,即停留在C语言;()丢失。 (6) setter和getter方法命名不规范以及方法返回类型和方法体出现问题。 二、 构造方法 (1) 正是由于在实例化对象的同时会自动调用构造方法,所以构造方法一般用来给数据成员分配资源或初始化数据成员; (2) 构造方法的一般形式: 访问权限 类名(形参列表) { 方法体 } (3) 因为是由虚拟机来调用构造方法,所以构造方法一般应定义成public。 /*定义ConstructorDemo类,对构造方法进行测试*/ class ConstructorDemo { /*构造方法,方法名与类名完全一致 无需指定返回值类型,也不能有返回值*/ public ConstructorDemo() 第17页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

20 20 120 { System.out.println(\这是构造方法\ } } /*Test类,用来容纳main方法 一般将包含有main方法的类声明为public*/ public class Test { /*main方法,程序入口*/ public static void main(String[] args) { /*实例化ConstructorDemo类的对象*/ ConstructorDemo cd = new ConstructorDemo(); } } 三、 方法重载 (1) 用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不同的参数列表; (2) 编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法,如: /*abs方法的重载*/ int abs(int x) {……} float abs(float x) {……} double abs(double x) {……} long abs(long x) {……} (3) 方法重载的三大原则 a) 方法名相同 b) 参数不同(可以有三方面的不同) 数量不同 类型不同 顺序不同 c) 同一作用域 d) 温馨提示:方法重载跟方法的返回值类型没有任何关系。也就是说,只有返回值不同的方法不能构成重载。 /*错误的方法重载*/ void fun(int x) {……}; int fun(int x) {……}; 四、 上机实验 (1) 定义一个学生类,具有属性:姓名(name)、性别(sex)、年龄(age)、体重(weight)、银行帐户余额(money)!给每个属性提供set以及get方法。 (2) 为该学生提供学习方法(learn)、休息方法(rest)、显示信息方法(display)。在学习方法中,体重减一;在休息方法中,体重加一。 (3) 为学生类提供方法重载对成员变量进行灵活初始化。要求(a、无参的构造方法;b、只有姓名一个参数的构造方法;c、有姓名、性别两个参数的构造方法;d、有姓名、性别、年龄三个参数的构造方法;e、有姓名、性别、年龄、体重四个参数的构造方法;f、有姓名、性别、年龄、体重、银行帐户五个参数的构造方法。 (4) 在测试类中,实例化学生类,要求:通过6种不同的初始化方法,实现6个对象的创建,并显示具体学生的相关信息。 第18页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

(5) 定义一个类AbsoluteValue(求绝对值),要求使用方法重载实现不同类型数值的取绝对值方法:abs。 作 业 布 置 课 后 总 结 (1) P193 11、12、13。 (1) 80%以上的同学掌握了windows应用程序的安装、卸载以及软件的注册。 (2) 90%以上的同学掌握了windows的基本快捷操作。 第19页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:9

章节 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 15 15 Java语言中的修饰符 授课方式 讲授+学生实验 (1) 掌握this、static、package、import它们的含义以及用法。 (2) 掌握对象数组的声明及用法。 (3) 培养学生实际动手能力。 (4) 培养学生面向对象的编程能力。 (1) 对象数组。 (2) this、static、package、import。 (1) 对象数组。 (2) this、static。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) (1) 由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。 二、 对象数组(讲授) (1) 在Java中不但可以声明由原始数据组成的数组,还可以声明由对象组成的数组; 声明对象数组的方式如: //假设已经定义了一个Student类 /*声明由5个Student对象组成的数组*/ Student[] stdAry = new Student[5]; (2) 上述方式类似于C语言中的: struct Student **p = NULL; p = (struct Student**)malloc(5 * sizeof(struct Student*)); (3) 对象数组==引用数组 第20页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

15 10 25 100 三、 this关键字 (1) 既然所有的对象都共用相同的成员方法,那么在不同的对象都调用同一方法时,它是怎么确定要使用哪个对象的数据成员呢? (2) 每个成员方法都有一个隐含的this引用,它总是指向调用它的对象; (3) This为调用成员方法的对象的地址; (4) 可以像使用任何引用那样使用this。 四、 静态成员变量 (1) 在成员变量前加static关键字,可以将其声明为静态成员变量; (2) 静态成员变量只有一份内存拷贝,即所有对象共享该成员变量; (3) 静态成员变量的作用域只在类内部,但其生命周期却贯穿整个程序。 五、 包 (1) 有时候,类和类的名称可能发生冲突; (2) Java提供了把类名空间划分为更容易管理的块的机制,这就是包; (3) 包类似于文件夹; (4) 分属不同包的类名相同也不会引起冲突; (5) 能在包与包之间对于类的访问权限提供更有力的约束。 (6) 使用package关键字打包 (7) 使用import关键字导入包 六、 上机实验 (1) 编写一个学生类,学生类里有标示姓名的属性和标示年龄的属性,写一个构造方法,在构造方法里为属性赋值时,必须用到this关键字。写一个输出函数,输出学生的姓名和其年龄。写一个测试类,在测试类里定义一个长度为3的学生类的对象数组,为数组里的每一个元素实例化一个学生对象,并调用其输出函数,程序运行结果如下: (2) 编写一个学生类,类里有一个标示姓名的属性和一个静态的标示总学生个数的属性,写一个构造方法,使每创建一个学生对象时学生个数自加,写一个输出结果的方法,程序运行的结果如下: 第21页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

(3) 随便写一个JAVA程序,在程序的最前面写下面这条语句: package newer.java; 编绎运行,并到原程序所在目录下查看生成的包结构。 (4) 编写下面的程序,编译后分析报错的原因 public class Test { public static void main(String [] args) { JFrame f=new JFrame(\我的窗口\ f.setSize(400,300); f.setVisible(true); } } 然后在程序的最前面写上以下语句,再次编绎、运行,并分析这条语句的作用。 import javax.swing.JFrame; 作 业 布 置 课 后 总 结 (1) P216-217 10、11、12、13。 (1) 对static的理解还需多加强程序编写的练习。 第22页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:10

章节 继承 — 基本概念及基本用法 (1) 理解什么是继承。 (2) 掌握在Java中实现继承,extends关键字。 (3) 掌握继承中的构造方法的用法。 (4) 掌握super关键字的含义及用法。 (5) 培养学生项目展示能力。 (6) 培养学生主动思考问题的能力。 (7) 培养学生实际动手能力。 授课方式 讲授+上机 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 20 5 10 (1) 继承的基本概念以及Java实现。 (1) 继承的基本概念以及Java实现。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) 由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。 问题描述: (1) 方法重载的不理解(同类同名不同参) (2) 错误重犯率较高;如构造函数无返回类型、构造函数名与类名不一致、类名不规范、带有main方法的class名与物理文件名不一致、没有通过对象调用方法(非静态方法)、方法名后不带();甚至出现类名后加()现象。 (3) 只要与类名不一致的方法都视为成员方法,需返回类型。 (4) Dog类带有static的count成员,创建dog1...dog5对象后,最后用for循环遍历后,调用方法后结果一致。(应在各自对象后调用方法) (5) 静态变量以及静态成员可以直接通过类名.出来。 二、 回顾 (1) 方法重载应遵循三大原则; (2) 适当地重载构造方法,可以使初始化对象的方式更为灵活; (3) this引用总是指向调用成员方法的对象本身; (4) 静态成员(包括静态成员属性和静态成员方法)属于类而不是属于某个对象,可以在实例化对象之前通过类名访问; (5) 使用package关键字打包; (6) 使用import关键字导入包或类。 三、 继承的概念 (1) 在现实生活中的继承,可以理解为儿子继承了父亲的财产,即财产重用; (2) 面向对象程序设计中的继承,则是代码重用; (3) 继承是利用现有的类创建新类的过程,现有的类称作基类(或父类),创建的新类称作派生类(子类)。 第23页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

15 10 120 (4) 最高层是最普遍的、最一般的情况,往下每一层都比上一层更具体,并包含有高层的特征,通过这样的层次结构使下层的类能自动享用上层类的特点和性质; (5) 继承其实就是自动地共享基类中成员属性和成员方法的机制。 四、 在Java中实现继承 在Java中实现继承需要使用到extends关键字; 实现继承的一般语法是: [访问修饰符] class 派生类名 extends 基类名 { 成员列表 } 如: class Student extends Person { …… } 五、 类成员的访问控制权限 (1) 信息隐藏是面向对象程序设计的重要特点之一,它可以: a) 防止类的使用者意外损坏数据; b) 对任何实现细节所作的修改不会影响到使用该类的其它代码; c) 使类更易于使用。 (2) 在Java中实现信息隐藏的是访问控制权限机制; (3) 访问控制权限包括4个访问修饰符:public、protected、private和缺省; (4) 可以使用上述访问修饰符修饰类的成员。 六、 上机实验 (1) [练习一] 医生有姓名(name),编号(idNumber),地址(address)等基本信息,都有display()显示信息的方法。医生又分专业医生和非专业医生,非专业医生所具有的信息与上述的一样。但专业医生出了具有上述的基本信息之外还有特有的信息:专业(speciality)。请根据他们之间的关系,创建一个医生类(Doctor),包含医生的基本信息。再利用继承创建一个非专业医生类(NonSpecialist )和一个专业医生类(Specialist),专业医生类包含一个显示其专业的方法public void showSpwciality()。利用这些类的对象显示他们各自的信息。 / *提示 1.医生类构造方法中可以加入一条显示代码 System.out.println(\这是父类构造方法\); 2.非专业医生类只需继承医生类无需编写任何属性,方法。 3.专业医生类继承医生类,并添加属性:专业,构造方法需使用super调用父类构造方法,添加获得专业信的方法和显示专业信息的方法。 所有的类都是用构造方法初始化对象,在test类中编写main方法测试。 class Doctor{ ..... private name; ...... public void display(){ System.out.println(\姓名\。。。。);//其他属性类似姓名

第24页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

的处理方式 } ..... } (以下练习都应采用上述构造函数/getXXXX()/display()的编码形式) (2) 【练习题二】 定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性brand(商标)和color(颜色),还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。 编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),并编写构造方法。 编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法。 在main方法中测试以上各类。 作 业 布 置 课 后 总 结 (1) P192 8、9。 (2) 预习多态的基本概念以及具体实现。 (1) 由于对继承属于面向对象的三大特征之一,所以本章节的速度放得很慢,但是即使这样依然有30%的人对继承的基本概念和实现仍然存在很大的问题。解决办法就是系能能够通过更多的练习来达到对理论的理解。 第25页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:11

章节 继承 — 多态 (1) 掌握方法覆盖的基本概念机Java实现。 (2) 掌握多态,在Java中实现多态。 (3) 掌握final关键字的用法。 (4) 培养学生的表达能力、项目展示能力。 (5) 培养学生的团队意识。 (6) 培养学生的实际动手能力。 授课方式 讲授+上机 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 15 10 25 (1) 方法覆盖、多态。 (1) 方法覆盖、多态。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) 作业讲解及点评:由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。 预习检查:在Java程序中,多态性带给我们的好处是什么? 方法覆盖与方法重载有区别吗? 抽2-4个人来回答上述两个问题。然后引入此堂课新内容。 二、 上周回顾(学生阐述+老师总结) (1) 继承是指从一个基类(父类)派生出派生类(子类)的过程; (2) 继承使用关键字extends; (3) 对于类成员,可以使用public、protected、缺省和private这4种访问权限修饰符; (4) 创建子类实例时,必须先执行父类的构造方法,然后再执行子类的构造方法; (5) super关键字有两种主要用途,都与父类有关。 三、 方法覆盖 (1) 在类的继承体系结构中,如果子类中出现了与父类中有同原型的方法,那么认为子类中的方法覆盖了父类中的方法(也称为方法重写); (2) 通过子类的实例调用被覆盖的方法时,将总是调用子类中的方法,而父类中的方法将被隐藏。 (3) 方法覆盖的Java实现。 class ParentClass { //定义父类 public void fun() { System.out.println(\这是父类中的方法。\ } } class ChildClass extends ParentClass {//子类继承于父类 public void fun() { //子类覆盖父类中的方法 第26页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

20 15 30 System.out.println(\这是子类中的方法。\ } } class OverriddenTest { //用于容纳main方法 public static void main(String[] args) { ParentClass parObj = new ParentClass(); parObj.fun(); //父类的实例调用此方法 ChildClass chiObj = new ChildClass(); chiObj.fun(); //子类的实例调用此方法 } } (4) 区分方法覆盖和方法重载 a) 方法覆盖(重写)和方法重载是两个极易混淆的概念,必须严格区分; b) 方法覆盖出现的前提条件之一是必须有继承发生的情况下,而且要求父类和子类中的方法必须同原型; c) 方法重载时,继承并不是必需的,它只要求方法名称相同,而参数列表则必须不同,换言之,各方法的原型其实是不同的。 四、 多态 (1) 简单来说,多态是具有表现多种形态的能力的特征 (2) 属于同一种类型,使用不同的实例而执行不同操作 (3) 静态多态 (4) 动态多态 五、 final关键字 (1) 在Java中,final关键字有最终的,不可修改的含义; (2) final关键字有三种用途,可以分别应用于变量、成员方法和类。 (3) 如果将某个变量修饰为final,那么该变量就成为常量,一般语法: [访问权限] final 数据类型 常量名 = 值; 如: final double PI = 3.14159; PI成为常量,其后任何试图对PI进行赋值的语句都将报错; (4) 常量在声明时必须初始化 六、 代码阅读 第27页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

70 七、 上机实验 定义一个宠物类(Pet),它有两个方法:叫cry(),吃东西eat(),定义宠物的子类狗(Dog),猫(Cat),覆盖父类的cry(),eat()方法,里面写System.out.println(\猫吃了鱼\这样的打印语句,另外狗有自己的方法看门guardEntrance(),猫自己独有的方法捉老鼠huntMice() (1)定义一个Test类,在main中定义两个Pet变量,pet1,pet2,采用引用转型实例化Dog,Cat,分别调用Pet的cry(),eat(); (2)将Pet引强制转换为具体的Dog,Cat,在调Dog的guardEntrance(),Cat的huntMice()(提示:先用instanceof进行类型判断) 第28页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

(3)修改Test类,添加喂养宠物feedPet(Pet pet)的方法,在feedPet中调cry(),eat()方法,实例化Test类,再实例化狗 Dog dog = new Dog(), 猫 Pet cat = new Cat(),Test分别调feedPet()方法分别传参数cat,dog,思考这两种方式的异同,深入理解引入转型和多态 作 业 布 置 课 后 总 结 (1) 预习异常处理,并完成P279 课后作业1、2、3。 (1) 对方法覆盖和多态的理解难度较大,约一半的人都停留在记住概念上面,在实际的运用中存在问题,解决办法就是由老师给出作业的源代码,先个人看,然后小组讨论,最后由小组代表上台来给大家讲解实现的思路。 第29页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:12

章节 异常处理 授课方式 讲授+讨论+上机 教 学 目 的 (1) 掌握异常的概念。 (2) 具备运用try块、catch块和finally块处理异常的能力。 (3) 掌握Java中异常类的继承体系结构。 (4) 运用关键字throw和throws处理异常。 (5) 掌握自定义异常。 (6) 培养学生程序的阅读能力。 (7) 培养学生自助学习的能力。 (8) 培养学生实际的动手能力。 (9) 培养学生团队意识。 教 学 重 点 教 学 难 点 时间 分配 Min 15 60 (1) try块、catch块和finally块。 (1) finally语句。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) 作业讲解及点评:由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。 预习检查:由1-2个人回答上周布置的思考题作业。由此引出本次课新内容。 二、 异常 (1) 什么是异常? a) 程序中出现的错误被称为异常; b) 异常可分为两大类:编译时异常和运行时异常; c) 编译时异常一般是指语法错误,可以通过编译器的提示加以修正,这里我们不予讨论; d) 运行时异常包括: 运行错误:如数组下标越界,除数为0等; 逻辑错误:如年龄超过200岁等。 (2) try块和catch块 a) try块:一般用来监视有可能产生异常的代码部分; b) catch块:当异常产生后,catch块捕捉异常,并在其中对异常进行处理。 …… try { …… //监视有可能发生异常的代码段 } catch (异常类型) //捕获发生的异常 第30页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

105 { …… //对异常进行处理 } …… c) finally块 ? 无论try/catch块中发生了什么,finally块都一定会执行; ? 当异常发生时,程序可能会意外中断,有些被占用的资源就得不到清理。finally块可以确保执行所有的清理工作; ? 无论是否发生异常,finally块都将执行; ? finally块是可选的,可视具体情况决定是否添加; ? finally块必须和try块一起使用,不能单独存在。 d) try/catch/finally执行流程 (3) throw关键字 a) throw语句用于手工抛出异常; b) 执行流程将在throw语句后立即停止,转而寻找与之类型相匹配的catch块; c) throw语句的语法是: throw (异常类型的实例)。 (4) 用户自定义异常 a) Exception类和其子类都是系统内置的异常,这些异常不一定总能捕获程序中发生的所有异常; b) 有时候,我们可能要创建用户自定义的异常类; c) 用户自定义异常类应该是Exception类的子类; d) 类似于: class MyException extends Exception { …… } 三、 上机实验 1、编写程序ArrayDivide,在其中同时给出两个不同大小的整型数组。利用循环,将第一个数组包含的整型数作为被除数,第二个数组包含的整型数作为除数。用第一个数组中的整型数除以第二个数组中相应位置的元素。考虑各种可能产生的异常,并设计程第31页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

序捕获和处理这些异常。 提示:当第一个数组的长度大于第二个数组的长度时,可能产生的ArrayIndex -OutOfBoundsException异常;当被除数为0时,可能产生ArithmeticException的异常 2、编写程序,实现从命令行输入三个数值参数作为三角形的三条边,以此构造一个三角形。程序应该实现如下功能: -->检查用户输入的命令行参数是否足够,如果不够三个参数,则程序可能产生ArrayIndexOutOfBoundsException异常 -->检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则程序可能产生NumberFormatException异常 -->检查输入的命令行参数中是否有负值,如果有负值,则程序可能产生 ArgumentException异常( ArgumentException为自定义异常) -->检查输入的命令行参数的三个数值是否能够构造一个三角形,如果不能构造一个三角形,则程序可能产生InvailEdgesException异常(InvailEdgesException为自定义异常) 提示:三角形任意两边之和必须大于第三边。 作 业 布 置 课 后 总 结 (1) P280-282 7、8、9。 (1) 90%的人都理解了异常处理,并且能够在程序中熟练的运用。但是在对finally块的掌握程度上还不够。 第32页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:13

章节 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 25 155 Java基本语法、流程控制、面向对象编程、异常处理做一次全面的复习 授课方式 讲授+上机 (1) 巩固学生对前面章节内容的学习。 (2) 帮助学生将前面的内容串联起来,能够熟练的运用前面的内容来完成应用程序的编写。 (3) 培养学生自主学习的能力。 (4) 培养学生系统分析问题的能力。 (5) 培养学生的实际动手能力。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) 作业讲解及点评:由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。 作业检查:由3-5个同学给出作业的答案以及讲解实现思路,老师从旁补充和总结。 二、 上机实验 (1) Java有那些基本数据类型,String是不是基本数据类型? (2) char型变量中能不能存贮一个中文汉字?为什么? (3) 访问权限修饰符public,private,protected的区别,默认不写是? (4) error和exception有什么区别?请列举出常见的异常类。 (5) 用关键字final分别修饰类、方法、变量时,有何意义? (6) 运行时异常与编译时异常有何异同? (7) 什么是方法重载?什么是方法重写?它们有什么区别? (8) 多态的几种形式和各自的特点。 (9) JAVA语言如何进行异常处理?关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? (10) 如果try {}里有一个return语句,那么紧跟在这个try后的finally {}里的代码会不会被执行,什么时候被执行,在return前还是后? (11) 请写出下列程序结果 a)class Base { int i = 99; public void amethod() { System.out.println(\ } 第33页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

5 Base() { amethod(); } } public class Derived extends Base { int i = -1; public static void main(String argv[]) { Base b = new Derived(); System.out.println(b.i); b.amethod(); } public void amethod() { System.out.println(\ } } b) public class AccpTeacher { public void giveLesson(){ System.out.println(\知识点讲解\} } public class AccpDBTeacher extends AccpTeacher { public void giveLesson(){ System.out.println(\启动 SqlServer\} } public class Test { public static void main(String[] args) { AccpTeacher t = new AccpDBTeacher (); t.giveLesson(); } } c) class Base { public String name; public Base(){ name = \} public Base(String pName){ name = pName; } public void method(){ System.out.println(name); } 第34页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

} class Child extends Base{ public Child(){ super(\name=\} } public class Sample { public static void main(String[ ] args) { Child c = new Child(); c.method(); } } (12) 题目:品尝饮料 一、 语言和环境 1. 实现语言:Java 2. 环境要求:JDK1.4或以上版本及其联机帮助文档 二、 要求 1、 使用命令行参数(饮料类型),输出该饮料类型的味道,如:当命令行参数为1时,结果见图1: 图一 2、 如果没有该种饮料,结果见如图2: 图二 三、 推荐实现步骤 1、 建立一个Java抽象类Drink,应当: a、 声明一个抽象方法taste(),该方法负责输出饮料的味道; b、 声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如: c、 声明静态方法getDrink(int drinkType),根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句。该方法要求声明DrinkNotFoundException,当没有相对应的饮料类型时,抛出该异常。 2、 建立Drink的具体子类: a、 分别建立Drink的子类:Coffee(代表咖啡),Beer(代表啤酒),Milk(代表牛奶); b、 子类分别要求: 1. Coffee类 私有属性品牌(brand),带有此属性参数的构造方法;并提供相应的setter和getter方法; 2. Beer类 私有属性颜色(color),带有此属性参数的构造方第35页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

法;并提供相应的setter和getter方法; 3. Milk类 私有属性状态(state),带有此属性参数的构造方法;并提供相应的setter和getter方法; c、 实现taste()方法,要求在控制台打印各自的味道特征。 3、 建立异常类DrinkNotFoundException a、 继承Exception b、 在Drink的方法getDrink(int drinkType)中声明引发DrinkNotFoundException异常,当传入的参数没有相对应的饮料类型时,抛出异常。 c、 在使用getDrink方法的类中捕捉该异常。 4、 建立Test测试类,测试以上内容的正确性 a、 编写main方法,通过命令行传参的方式传入某种饮料的类型。 b、 在main方法中,调用Drink类的getDrink方法,获得相应的饮料对象。注意捕获DrinkNotFoundException。 c、 然后调用该饮料对象的taste()方法,输出该饮料的味道。 5、 编译程序,并运行。 四、 注意事项 1、 仔细审题,把题目要求理解准确; 2、 请注意多态性的运用; 请注意代码的书写、命名符合规范,应有适当的注释。 作 业 布 置 课 后 总 结

(1) 预习java.lang包。 通过本次的练习,至少让80%的同学巩固了前面所学的内容,并且将前面的内容页进行了一次很好的融合。 第36页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:14

章节 java.lang包 (1) 了解java.lang包。 (2) 掌握包装类。 (3) 掌握String类。 (4) 培养学生的个人表达能力、项目展示能力。 (5) 培养学生的团队意识。 (6) 培养学生的主动积极性。 授课方式 讲授+上机 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 15 15 5 30 (1) String类。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) 作业讲解及点评:由1-2个学生讲述上周作业(品尝饮料)的实现思路以及展示程序实现;过程中由老师补充和总结。 二、 回顾(由学生主动起来回答,老师补充) (1) Java有那些基本数据类型,String是不是基本数据类型? (2) char型变量中能不能存贮一个中文汉字?为什么? (3) 访问权限修饰符public,private,protected的区别,默认不写是? (4) error和exception有什么区别?请列举出常见的异常类。 (5) 用关键字final分别修饰类、方法、变量时,有何意义? (6) 运行时异常与编译时异常有何异同? (7) 什么是方法重载?什么是方法重写?它们有什么区别? (8) 多态的几种形式和各自的特点。 三、 java.lang包简介 (1) java.lang包是java内置的一个基础包,其中包含了一系列程序中经常要用到的类; (2) 在默认情况下,每个java程序都会自动导入该包,因此无需在程序中显式地声明。 四、 包装类 (1) 使用原始数据类型声明的变量,如: int num = 10; 这里的num只是一个变量,而不是对象; (2) 在某些必须操作对象的场合,这样的变量就不能使用了; (3) Java提供一系列包装类,以便将原始数据类型当作对象进行操作; (4) 在java.lang包中,对于每个原始数据类型都有一个相应的包装类。 (5) 包装类的构造方法 (6) 包装类的valueOf方法 (7) 包装类的parseXxx方法 第37页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

10 105 (8) Character类中的常用方法 (9) Character类常用方法示例 五、 String类 (1) Java中,字符串是String类的对象; (2) 可以通过使用String类提供的方法来完成对字符串的操作; (3) 创建一个字符串对象之后,将不能更改构成字符串的字符; (4) 每当更改了字符串版本时,就创建了一个新的字符串对象,并在其内包含所做的修改,原始字符串保持不变。 六、 上机实验 (1) 练习一:编写一个Java程序,完成以下功能: 声明一个名为s的String对象,并使它的内容是\ 打印整个字符串。 使用length()方法打印字符串的长度 使用charAt()方法打印字符串的第一个字符 使用charAt()方法和length()打印字符串的最后一个字符 使用indexOf()方法和substring()方法打印字符串的第一个单词。 (2) 练习二:编写一个Java程序,用于 测试两个字符串String firstString=\和String secondString=\是否相等。 将\与其中的firstString字符串连接。 用z替换新字符串中的i。 (3) 练习三:编写一个ExtractString程序,从字符串\中提取单词\和\(4) 练习四:使用toCharArray() 判断一个字符串是否为回文。//回文 :asdsa (5) 练习五:判断电子邮件 1.必须包含@和. 而且@只能有一个 2.不能以@或.开头以及结尾 3.@必须出现在.之前 indexOf lastIndexOf 作 业 布 置 课 后 总 结

(1) P624-625 1-9。 对于系统包,只需要多写多练就能够完全的掌握,从整体上来是说,约85%的人都掌握了这堂课的内容。 第38页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:15

章节 Java常用类 (1) 掌握StringBuffer类。 (2) 熟练运用Math类中的方法。 (3) 熟练运用Object类中的方法。 (4) 熟练运用Class类中的方法。 (5) 培养学生的项目展示能力。 (6) 培养学生的实际动手能力。 (7) 培养学生的自主学习能力。 授课方式 讲授+上机 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 15 10 10 (1) Object 、StringBuilder、Math。 (1) Object 、StringBuilder、Math。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) 作业讲解及点评:由3-6个学生分别讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。 二、 回顾 (1) Lang包是我们常用的工具包 (2) 包装类以及包装类的构造方法、valueOf()方法、parseXxx()方法; (3) Character类常用静态方法: isLetter(char ch)、 isDigit(char ch)、isUpperCase(char ch)、isLowerCase(char ch)、 isWhitespace(char ch) (4) String类的常用操作: a) 字符串长度; b) 字符串比较; c) 字符串搜索; d) 提取字符串; e) 更改字符串大小写; (5) 数据格式转化。 三、 StringBuffer类 (1) StringBuffer类用于表示可以修改的字符串; (2) 使用+运算符的字符串将自动创建字符串缓冲对象; (3) 以下是StringBuffer类的构造方法有4种重载方式,以下是常用的几个: 第39页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

10 15 15 四、 Math类 (1) Math类中提供了一系列基本数学运算和几何运算的方法; (2) 该类的构造方法被修饰为private,因此不能实例化; (3) 该类中的所有方法都是静态的,可以通过类名直接调用; (4) 该类被修饰为final,因此没有子类。 五、 Object类的常用方法 六、 Class类 (1) Java应用程序实际上都是由一个个对象组成,这些对象分别属于什么类,是从哪个类继承而来,这一系列的信息都是由Class类的实例来记录的; (2) Class类的实例用于记录对象的类描述信息; (3) 如果在程序运行时,需要检索某个对象的相关类信息,可以调用该对象的getClass方法来获得记录其描述信息的Class类实例; (4) Class类没有公共的构造方法,无法通过new运算符实例化,只能通过对象的getClass方法,或是通过Class的静态方法forName来获得实例。 七、 上机实验 (1) 练习一:回文串 编写程序CheckPalindrome,从命令行参数中读入一个字符串,检查该字符串是否为回文串,回文串的特点是顺序读和倒序读都是一样。例如,mom、dad和atoyota都是回文串。 第40页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

105 (2) 练习二:猜数字 编写程序Guess,随机地产生一个整数,表示从A到Z的字母。之后,通过命令行参数读入一个字母,试图猜出随机产生的字母。无论猜得是否正确,都打印出相应的信息。另外,如果猜对了,程序退出。 作 业 布 置 课 后 总 结

(1) 预习java.util包。 通过一系列的案例加课后练习,来让同学掌握课堂上所学的内容;整体效果良好。 第41页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:16

章节 java.util包 授课方式 讲授+上机 教 学 目 的 (1) 了解java.util包。 (2) 能够熟练运用如下类进行Java编程(Date类、Calendar类、Random类) (3) 掌握集合类(List、Map)的使用。 (4) 能够熟练使用Collection接口及其实现类(ArrayList类、LinkedList类、Vector类)。 (5) 掌握HashMap类 (6) 培养学生的个人表达能力、项目展示能力。 (7) 培养学生的个人动手能力。 (8) 培养学生的逻辑思维能力。 教 学 重 点 教 学 难 点 时间 分配 Min 15 45 (1) List、Map、Vector。 (1) List、Map、Vector。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) 作业讲解及点评:由2-4个学生分别讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。 二、 Java.util包 (1) java.util包简介。 a) java.util包是Java内置的一个工具包,其中包含一系列常用的工具类; b) 如处理日期和日历的类以及一些集合类; c) java.util包不会默认导入,如果要使用到该包中的类,则必须在程序的开始部分显式地声明如下语句: import java.util.*; (2) Date类 a) Date类对象用来表示时间和日期; b) 该类提供一系列操纵日期和时间各组成部分的方法; c) Date类最多的用途是获取系统当前的日期和时间。 (3) Calendar类 a) Calendar类也是用来操作日期和时间的类,但它可以以整数形式检索类似于年、月、日之类的信息; b) Calendar类是抽象类,无法实例化,要得到该类对象只能通过调用getInstance方法来获得; c) Calendar对象提供为特定语言或日历样式实现日期格式化所需的所有时间字段。 (4) Random类 a) Random类专门用来生成随机数; 第42页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

120 b) 该类的构造方法有2种重载方式。 (5) 集合 a) 集合是将多个元素组成一个单元的对象; b) 类似于数组,但数组最大的缺点是:长度受到限制(一经创建,就不可再改变),并且只能存放相同数据类型的元素; c) 集合的长度没有限制,可以存放任意多的元素,而且元素的数据类型也可以不同; d) 集合还提供一系列操纵数据的方法,如存储、检索等等。 三、 上机实验 (一).使用Date类求获取当前日期,分别使用下以下格式打印: 1)按日期的原格式打印. 2)\当前时间是: xxxx年xx月xx日 星期X 北京时间\ 3)\当前时间是: xxxx年xx月xx日 时:分:秒\ 4)按欧美日期习惯输出当前日期 (\月-日-年 时:分:秒\ (二)使用Date的Date(int year, int month, int date) 构造方法,构造当前日期,打印输出.求出当前日期自1970年1月1日起的已经有多少天了. (三).使用Calendar类,编写程序求出你的出生的那一天是星期几.并求出你出生到今天一共有多少天,打印输出. (四). 使用Calendar类,打印出当前月的日历表,效果图如下: (五).利用Random类,随机生成一个int 随机数,long随机数,float随机数,double随机数,高斯随机数, 并在屏幕上随机打印. (六).使用Random类模拟摇色子游戏.共5粒色子,分别显示出5粒色子的点数,和加起来一共是多少点.打印输出. 第43页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

作 业 布 置 (1) 编写程序,依次应用ArrayList和LinkedList实现栈和队列的功能。 提示: (a)使用ArrayList和LinkedList模拟栈和队列。 (b)使用push和pop方法模拟进栈和出栈操作。 (2) 编写一个程序,读入一系列名字并将它们存储在LinkedList和ArrayList中,并实现以下功能: (a)允许用户通过名字进行查找。 (b)允许用户将姓名进行排序。 (c)允许用户删除指定姓名。 通过案例的讲解和项目的练习,让80%以上的同学对java.util包的常用类都能够熟练的运用。 课 后 总 结

第44页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:17

章节 Java I/O系统 授课方式 讲授+上机 教 学 目 的 (1) 了解File类。 (2) 了解FileInputStream文件输入流。 (3) 了解FileOutputStream文件输出流。 (4) 熟练运用FileReader类和FileWriter类配合BufferedReader类和BufferedWriter类读/写字符文件。 (5) 熟练使用BufferedReader类从控制台接受输入。 (6) 熟练运用DataInputStream类和DataOutputStream类读写数据文件。 (7) 培养学生的软件的整体设计能力。 (8) 培养学生的个人表达能力以及项目展示能力。 (9) 培养学生实际动手能力。 教 学 重 点 教 学 难 点 时间 分配 (1) 文件输入流和文件输出流。 (1) 对象的序列化和反序列化。 教 学 过 程 Min 一、 作业点评及检查(学生阐述+老师总结) 作业讲解及点评:由2-4个学生分别讲述上周作业的实现思路以及展示程序实现;过程中由老师补充15 和总结。 10 二、 File类(讲授) 10 三、 FileInputStream文件输入流 10 四、 FileOutputStream文件输出流 五、 字符流 (1) FileInputStram类和FileOutputStream类虽然可以高效率地读/写文件,但对于Unicode编码的10 文件,使用它们有可能出现乱码; (2) 考虑到Java是跨平台的语言,要经常操作Unicode编码的文件,使用字符流操作文件是有必要的; (3) 使用字符流将涉及到以下4个类: d) FileReader类和FileWriter类; e) BufferedReader类和BufferedWriter类。 5 六、 BufferedReader类 5 七、 FileWriter类 5 八、 BufferedWriter类 5 九、 DataInputStream类 十、 上机实验 (1) 练习一:在F盘下建立一个名为“学生成绩单”的目录,在里面新建一个名为“JAVA成绩.txt”第45页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

的txt文件在里面填写以下信息: 105 张三 90 李四 95 王五 88 赵六 75 String str =\张三\\t90\\r\\n李四\\t95\\r\\n王五\\t88\\r\\n赵六\\t75\\r\\n\ (1)编写程序查看此文件或目录是否存在,若存在,判断是目录还是文件, 得到它的名字和绝对路径,以及它的大小。 (2).若此文件存在,编写程序查看此文件的内容(使用FileInputStream)。 (3).若此文件存在,向此文件添加一名学生的成绩(孙七 100)(使用FileOutputStream)。 (4). 复制该文件 内容 java.txt new.txt (2) 接收命令行参数输入用户名/密码,并将用户和密码信息保存到test.txt文件中。 (3) 接收两个命令行参数,用来代表用户名以及密码!判断是否登录成功!假设用户信息存储在test.txt文件中(第一行为用户名,第二行为密码) 作 业 布 置 课 后 总 结

(1) P521-522 1-10。 通过案例的讲解和实际项目的练习,80%的同学掌握了输入流与输出流的应用。 第46页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

教 案

编号:18

章节 GUI (1) 了解GUI。 (2) 了解AWT\\Swing。 (3) 掌握Eclipse的使用。 (4) 熟练使用MyEclipse插件拖控件。 (5) 培养学生的自主学习能力。 (6) 培养学生的实际动手能力。 授课方式 讲授+上机 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 15 5 10 15 10 (1) Swing常用的控件。 (1) Swing常用的控件。 教 学 过 程 一、 作业点评及检查(学生阐述+老师总结) 作业讲解及点评:由2-4个学生分别讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。 二、 GUI的概念 (1) 到目前为止,我们在C和Java中编写的都是基于控制台的程序; (2) GUI(Graphical User Interface)即图形用户界面,它能够使应用程序看上去更加友好; (3) GUI是施乐公司提出,由苹果与微软公司将其发扬光大。 (4) Java的GUI包括AWT\\Swing、SWT\\JFace 三、 AWT简介 (1) 实现GUI编程是由一系列图形化组件来完成的(即一系列定义好的类),这些组件也被称为控件; (2) 在Java的早期版本中,GUI组件由名为AWT(Abstract Window Toolkit,抽象窗口工具包)的标准库来提供; (3) AWT发布过程过于匆忙,据称开发过程仅三个月,bug太多,依赖底层操作系统,是重量级的 四、 常用的基本Swing组件 (1) 在Swing编程中,有一些经常要使用到的组件,其中包括: (2) JFrame(窗体,框架) (3) JButton(按钮) (4) JLabel(标签) (5) JTextField(文本框) 五、 javax.swing.JFrame (1) JFrame组件用于在Swing程序中创建窗体; (2) JFrame类的构造方法有4种重载方式,以下是常用的几种: 第47页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

10 15

六、 JPanel容器 (1) JPanel是最简单的容器类。应用程序可以将其他组件放在面板提供的空间内。 (2) JPanel只能存在于其他的容器(Window或其子类)中,一般被放入Frame中 (3) JFrame可以被划分为若干个JPanel,然后在JPanel上进一步进行组件的布局; (4) 面板的默认布局管理器是FlowLayout布局管理器; (5) 不能为JPanel设置标题。 七、 为容器设置布局 第48页 共51页

西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE

100 八、 上机作业 (一)练习一 1. 解压Eclipse安装包,指定工作空间为f:\\java\\worksapce 2. 建立学生类(MyStudent),申明成员变量name(姓名),密码(password),address(地址),sex(性别 Boolean),classId(班级),用eclipse的getter和setter生成代码 3. 写测试类。 4. 重构MyStudent为Student 5. 用MyEclipse拖出如下界面 (二)练习二 手写实现窗体,大小400*300,点关闭的×可以结束程序 第49页 共51页

本文来源:https://www.bwwdw.com/article/qtfo.html

Top