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

下载本文档

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

文档简介

实用标准文档实用标准文档精彩文案精彩文案西南财经大学天府学院教案任课教师:贾砚池课程名称:面向对象程序设计(Java)任课班级:13级专科计算机01班、13级专科网络01班、13级专科软件01班授课时间:2013-2014-2学期西南财经大学天府学院教务处制

教案编号:1章节章节JavaSE程序设计与实践的考核方式和Java简介授课方式讲授+讨论+上机教学目的(1)掌握本课程的考核方式、即将要学习的内容以及相关的课堂纪律。(2)了解课程整体目标。(3)了解Java语言。(4)了解Java程序的类型。(5)理解Java虚拟机(JVM)。(6)掌握Java程序运行环境的配置,能够独立完成。(7)培养学生实际动手能力(自主安装JDK以及配置环境变量)。(8)培养学生自主解决问题的能力。教学重点(1)环境变量的配置和编译源文件以及Java程序打包。教学难点(1)环境变量的配置和编译源文件以及Java程序打包。时间分配教学过程1525Java源程序可以使用任何文本编辑器创建与编辑,一般用.java作为扩展名,其实就是一个使用Java语言编写的文本文件;(2)编译源程序Java编译器读取Java源程序并翻译成Java虚拟机能够明白的指令集合,并以字节码的形式保存在文件中,通常,字节码文件以.class作为扩展名;(3)运行class(字节码)文件Java解释器读取字节码文件,取出指令并翻译成计算机能够执行的机器代码,完成运行过程。九、编写第一个Java程序(讲授+演示)(1)打开记事本,新建一个文本文件,将文件名改为Hello.java,在文件中键入如下内容并保存:classHello{publicstaticvoidmain(String[]args){System.out.println("Helloworld!");}}(2)使用javac编译器编译源文件。(3).class(字节码)文件。(4)使用java解释器运行字节码文件。十、分析程序(讨论+讲授)分组讨论,然后由每个组轮流发言;最后由老师总结。实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案30(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开发环境。60作业布置(1)编程输出以下信息*********************************************欢迎进入Java编程世界*********************************************(2)课后预习Java语言基础(Java的基本数据类型、操作符、关键字、流程控制)。课后总结(1)所有的同学都掌握了本门课程的考核方式。(2)通过分组学习,同学之间有问题可以互相帮助,学生学习积极性很高,并且通过小组组长的汇报,一部分学习方法较好的同学的经验,得以在全班同学之间共同分享,效果很好。(3)80%的同学都能够独立完成Java开发环境的搭建以及配置。(4)由于前面有C语言的学习基础,70%以上同学对Java程序结构的理解都不存在问题。整体来说,效果良好。教案编号:2章节章节Java语言基础流程控制—分支语句授课方式讲授+学生实验+讨论教学目的(1)掌握Java中的变量和数据类型。(2)掌握Java中变量的作用域规则。(3)掌握数据类型转换。(4)掌握Java中的运算符和表达式。(5)掌握选择结构的几种实现方式;并能够独立的应用它们来编写程序。(6)培养学生主动思考问题的能力。(7)培养学生表达能力。(8)培养学生实际动手操作能力。教学重点(1)Java的基本数据类型、引用类型以及变量的作用域。(2)分支语句。教学难点(1)引用类型以及变量的作用域。(2)分支语句。时间分配教学过程实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案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语句90c)if…elseif语句d)switch…case语句三、学生实验(上机+老师指导)(1)输入一个“男”或者“女”,对应输出“M”和“F”。(2)写程序,若星期一到星期五,则打印出“工作快乐”,若星期六、星期天则输出“周末更快乐”。(3)输入一个分数,输出对应的等级:60以下E60-70D70-80C80-90B90–100A作业布置(1)输入三个数字,最后从小到大输出排序。(2)课后预习循环结构的几种语句以及数组的定义。课后总结(1)通过学生自己对出现问题的总结和老师的总结,80%以上的同学对常见问题的解决方法有了一个深刻的认识。(2)通过三个上机程序,加深了对循环结构的认识。但是依然有约20%的同学对if和switch的用法还不能掌握,需加强程序上机的编写。教案编号:3章节章节流程控制—循环语句数组授课方式讲授+上机教学目的(1)掌握循环语句的使用。(2)掌握数组的声明以及运用。(3)培养学生主动性和积极性。(4)培养学生的逻辑思维能力。教学重点(1)循环语句。(2)数组、哈希表。教学难点(1)循环语句。(2)数组、哈希表。时间分配教学过程Min10一、作业点评(学生阐述+老师总结)方式:由3-5个同学来讲述上周作业的实现思路,最后由老师总结出现的一些问题。(1)类名不规范(2)运算符的运用(3)部分算法的不科学性60二、抽查上周布置的课后作业,抽查1-3个同学来阐述循环结构的几种语句以及数组的声明。(学生阐述+老师讲授)(1)循环语句a)Whileinti=0;while(i++<3)System.out.println(i);b)Do……while语句inti=1;do{System.out.println(i);}while(i++<3);c)For语句for(inti=1;i<=3;i++)System.out.println(i);(2)流程控制语句a)break:从switch语句、循环语句或标号标识的代码块中退出。以下while循环用于把1加到100:inta=1,result=0;one:while(true){result+=a++;if(a==101)breakone;//终止循环}System.out.println(result);//打印5050b)continue:跳过本次循环,执行下一次循环,或执行标号标识的循环体。以下for循环用于对1到100之内的奇数求和:intresult=0;for(inta=1;a<=100;a++){if(a%2==0)continue;//如果a是偶数,就跳出本次循环,继续执行下次循环elseresult+=a;}System.out.println(result);//打印2500(3)讨论:判断下面程序执行了多少次?classTest{publicstaticvoidmain(String[]args){inti=0;while(i<10){if(i<10){i++;continue;}if(i==5){break;110}}System.out.println(i);}}(4)Java中声明数组的几种方式//仅声明数组的引用,但没有分配内存空间float[]fAry;//声明数组的同时,根据指定的长度分配内存,但数组中没有值char[]chAry=newchar[10];//声明数组并分配内存,同时将其初始化int[]ary1=newint[]{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,1*3=31*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周,决定采用大量的例子程序进行上机练习,然后由老师以及学得比较好的同学进行辅导,为后面的面向对象编程的一些概念打下基础。实用标准文档实用标准文档教案编号:精彩文案精彩文案实用标准文档教案编号:精彩文案4章节章节程序上机练习授课方式讲授+上机教学目的(1)掌握分支语句、循环语句、数组的用法;加深对变量以及数组声明等用法的理解和使用。(2)培养学生的逻辑思维能力。(3)培养学生的实际动手能力。(4)培养学生分析问题的能力。教学重点(1)分支语句、循环语句。教学难点(1)分支语句、循环语句。时间分配教学过程Min20一、作业点评(学生阐述+老师总结)方式:由3-5个同学来讲述上周作业的实现思路,最后由老师总结出现的一些问题。(1)类名不规范(2)运算符的运用(3)部分算法的不科学性二、上机实验实现方式:(一)由老师给出程序片段,由学生完成关键部分的填写,最后让学生独立运行程序。(二)让个别同学来讲解整个程序的实现思路,最后由老师总结。160(1)求1000以内的素数(素数:只能除开1和本身的数)(2)已知某年某月某日,从该年的1月1日开始3天打渔2天晒网,求该日是打渔还是晒网(思路,先求出该天是该年的第几天)(3)编写一个程序实现将任意一个十进制数转换成二进制形式输出如10输出形式为0000000000...00000001010(4)一个小球从100米处落下,每次弹起是原来的一半,问弹起第二十次落下后所经过的米数。(5)求任意两个整数的最大公约数和最小公倍数(6)输出九九乘法表(两层for循环)(7)求1000以内的水仙花数(如1^3153=+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%以上的同学都能够很好的完成最后的关键部分填写;这样的方式对于程序的初学者来说是一个很好的入门方式;在降低难度的同时还促进了学生的主动思考和分析问题的能力。5章节章节授课方式教学目的教学重点教学难点时间分配教学过程国庆放假作业布置课课后总结6章节章节程序上机练习授课方式讲授+上机教学目的(1)掌握循环结构、选择结构的用法;加深对变量以及数组声明等用法的理解和使用。(2)培养学生的逻辑思维能力。(3)培养学生的实际动手能力。(4)培养学生的团队意思。教学重点(1)分支语句、循环语句。教学难点(1)分支语句、循环语句。时间分配教学过程Min30一、作业点评(学生阐述+老师总结)方式:由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)编写一个程序,打印出实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案

教案编号:7章节章节面向对象开发方法概述授课方式讲授+上机教学目的(1)了解什么是面向对象。(2)掌握面向对象的基本概念(类、对象、属性、封装、继承、多态)。(3)掌握如何定义类,如何创建对象。(4)掌握成员运算符的使用。(5)掌握访问控制权限:public和private。(6)培养学生抽象客观世界成主观世界的能力。(7)培养学生初步的设计软件系统的能力。(8)培养学生的团队意识。教学重点(1)面向对象的核心思想和概念教学难点(1)面向对象的核心思想和概念时间分配教学过程MinMin15151010一、作业点评(学生阐述+老师总结)方式:由1-3个同学来讲述上周作业第六题的实现思路以及展示具体实现,最后由老师总结出现的一些问题。二、上周课后作业检查方式:抽查2-5名同学谈谈对面向对象编程的认识以及对基本概念的描述。三、面向对象的编程思想四、对象(1)现实世界中的实体是实际存在的某种物体,用OOP的术语就称为对象。(2)在Java中我们通过对象对现实世界中的实体进行一个模拟和映射。(3)对象是面向对象编程的核心部分,和现实世界一样,需要具有明确定义的状态和行为。(4)对象的特征——属性a)属性——对象具有的各种特征b)每个对象的每个属性都拥有特定值(5)对象的特征——方法a)方法——对象执行的操作五、类实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案2020(1)人们为了更好地认识世界,将现实生活中的事物(对象)划分成类;(2)同一类中的事物总是具有一些共性;(3)类以共同的特性和行为定义实体;(4)类是具有相同属性和行为的一组对象的集合。(5)类和对象的区别a)类是用来描述实体的“模板”或“原型”;b)对象是实际的实体,每一个对象都是类的一个具体实例;c)类用来定义对象所有的属性和方法,同一类的所有对象都拥有相同的特征和操作;d)可以将类理解成生产产品的模具,而对象则是根据此模具生产的一个个产品。六、在Java中定义类七、创建对象的语法(1)和数组相似,对象也是引用数据类型,只能使用new运算符从堆中分配内存;(2)创建对象的一般语法:1555a)要求学生类有姓名、性别、年龄、体重等属性,并且全部属性都要使用private修饰。b)提供public的set和get方法来设置和获取属性的值。c)提供dining()吃饭和walk走路()。(2)编写测试类Teststudent进行测试:为Student对象的属性赋予初始值,并调用Student对象的dining(),walk()方法,看看输出是否正确?作业布置(1)教材P42第八题。课后总结(1)只有40%的同学对面向对象的基本概念的理解和掌握;余下的大部分同学都属于一知半解;在这方面还需进一步加强练习。教案编号:8章节章节面向对象开发方法概述—类和对象的Java实现授课方式讲授+学生操作教学目的(1)掌握类和对象的基本概念以及核心思想。(2)掌握构造方法的写法以及重载。(3)掌握对象在内存中的存放形式。(4)培养学生对客观事物的抽象能力。(5)培养学生系统分析的能力。(6)培养学生的项目展示能力。教学重点(1)构造方法。(2)方法重载。教学难点(1)方法重载。时间分配教学过程Min一、作业点评(学生阐述+老师总结)方式:由2-4个同学来讲述上周实验的实现思路以及具体实现,最后由老师总结出现的一些问题。(1)一个Java文件中出现多个class,需文件名的类修饰成public即主类。2020(2)建立测试类后,创建对象后访问对象的属性时未通过对象进行引用而直接访问属性。(3)setter方法传参数出现问题,如obj.setTitle="天龙八部";(4)char型出现charch="男"!!!(5)类中定义方法(行为)出现问题,即停留在C语言;()丢失。(6)setter和getter方法命名不规范以及方法返回类型和方法体出现问题。二、构造方法(1)正是由于在实例化对象的同时会自动调用构造方法,所以构造方法一般用来给数据成员分配资源或初始化数据成员;(2)构造方法的一般形式:访问权限类名(形参列表){方法体}(3)因为是由虚拟机来调用构造方法,所以构造方法一般应定义成public。/*定义ConstructorDemo类,对构造方法进行测试*/classConstructorDemo{/*构造方法,方法名与类名完全一致无需指定返回值类型,也不能有返回值*/publicConstructorDemo(){System.out.println("这是构造方法");}202020}/*Test类,用来容纳main方法一般将包含有main方法的类声明为public*/publicclassTest{/*main方法,程序入口*/publicstaticvoidmain(String[]args){/*实例化ConstructorDemo类的对象*/ConstructorDemocd=newConstructorDemo();}}三、方法重载(1)用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不同的参数列表;(2)编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法,如:/*abs方法的重载*/intabs(intx){……}floatabs(floatx){……}doubleabs(doublex){……}longabs(longx){……}(3)方法重载的三大原则a)方法名相同120b)参数不同(可以有三方面的不同)数量不同类型不同顺序不同c)同一作用域d)温馨提示:方法重载跟方法的返回值类型没有任何关系。也就是说,只有返回值不同的方法不能构成重载。/*错误的方法重载*/voidfun(intx){……;}intfun(intx){……};四、上机实验(1)定义一个学生类,具有属性:姓名(name)、性别(sex)、年龄(age)、体重(weight)、银行帐户余额(money)!给每个属性提供set以及get方法。(2)为该学生提供学习方法(learn)、休息方法(rest)、显示信息方法(display)。在学习方法中,体重减一;在休息方法中,体重加一。(3)为学生类提供方法重载对成员变量进行灵活初始化。要求(a、无参的构造方法;b、只有姓名一个参数的构造方法;c、有姓名、性别两个参数的构造方法;d、有姓名、性别、年龄三个参数的构造方法;e、有姓名、性别、年龄、体重四个参数的构造方法;f、有姓名、性别、年龄、体重、银行帐户五个参数的构造方法。(4)在测试类中,实例化学生类,要求:通过6种不同的初始化方法,实现6个对象的创建,并显示具体学生的相关信息。实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案(5)(5)定义一个类AbsoluteValue(求绝对值),要求使用方法重载实现不同类型数值的取绝对值方法:abs。作业布置(1)P19311、12、13。课后总结(1)80%以上的同学掌握了windows应用程序的安装、卸载以及软件的注册。(2)9%0以上的同学掌握了windows的基本快捷操作。教案编号:9章节章节Java语言中的修饰符授课方式讲授+学生实验教学目的(1)掌握this、static、package、import它们的含义以及用法。(2)掌握对象数组的声明及用法。(3)培养学生实际动手能力。(4)培养学生面向对象的编程能力。教学重点(1)对象数组。(2)this、static、package、import。教学难点(1)对象数组。(2)this、static。时间分配教学过程Min15一、作业点评及检查(学生阐述+老师总结)(1)由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。二、对象数组(讲授)(1)在Java中不但可以声明由原始数据组成的数组,还可以声明由对象组成的数组;声明对象数组的方式如://假设已经定义了一个Student类151515/*声明由5个Student对象组成的数组*/Student[]stdAry=newStudent[5];(2)上述方式类似于C语言中的:structStudent**p=NULL;p=(structStudent**)malloc(5*sizeof(structStudent*));(3)对象数组==引用数组三、this关键字(1)既然所有的对象都共用相同的成员方法,那么在不同的对象都调用同一方法时,它是怎么确定要使用哪个对象的数据成员呢?(2)每个成员方法都有一个隐含的this引用,它总是指向调用它的对象;(3)This为调用成员方法的对象的地址;(4)可以像使用任何引用那样使用this。四、静态成员变量(1)在成员变量前加static关键字,可以将其声明为静态成员变量;(2)静态成员变量只有一份内存拷贝,即所有对象共享该成员变量;(3)静态成员变量的作用域只在类内部,但其生命周期却贯穿整个程序。实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案1025100五、包(1)有时候,类和类的名称可能发生冲突;(2)Java提供了把类名空间划分为更容易管理的块的机制,这就是包;(3)包类似于文件夹;(4)分属不同包的类名相同也不会引起冲突;(5)能在包与包之间对于类的访问权限提供更有力的约束。(6)使用package关键字打包(7)使用import关键字导入包六、上机实验(1)编写一个学生类,学生类里有标示姓名的属性和标示年龄的属性,写一个构造方法,在构造方法里为属性赋值时,必须用到this关键字。写一个输出函数,输出学生的姓名和其年龄。写一个测试类,在测试类里定义一个长度为3的学生类的对象数组,为数组里的每一个元素实例化一个学生对象,并调用其输出函数,程序运行结果如下:(2)编写一个学生类,类里有一个标示姓名的属性和一个静态的标示总学生个数的属性,写一个构造方法,使每创建一个学生对象时学生个数自加,写一个输出结果的方法,程序运行的结果如下:(3)随便写一个JAVA程序,在程序的最前面写下面这条语句:packagenewer.java;编绎运行,并到原程序所在目录下查看生成的包结构。(4)编写下面的程序,编译后分析报错的原因publicclassTest{publicstaticvoidmain(String[]args){JFramef=newJFrame("我的窗口");f.setSize(400,300);f.setVisible(true);}}然后在程序的最前面写上以下语句,再次编绎、运行,并分析这条语句的作用。importjavax.swing.JFrame;作作业布置(1)P216-21710、11、12、13。课后总结(1)对static的理解还需多加强程序编写的练习。实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案教案编号:10章节章节继承—基本概念及基本用法授课方式讲授+上机教学目的(1)理解什么是继承。(2)掌握在Java中实现继承,extends关键字。(3)掌握继承中的构造方法的用法。(4)掌握super关键字的含义及用法。(5)培养学生项目展示能力。(6)培养学生主动思考问题的能力。(7)培养学生实际动手能力。教学重点(1)继承的基本概念以及Java实现。教学难点(1)继承的基本概念以及Java实现。时间分配教学过程1510派生类(子类)。(4)最高层是最普遍的、最一般的情况,往下每一层都比上一层更具体,并包含有高层的特征,通过这样的层次结构使下层的类能自动享用上层类的特点和性质;(5)继承其实就是自动地共享基类中成员属性和成员方法的机制。四、在Java中实现继承在Java中实现继承需要使用到extends关键字;实现继承的一般语法是:[访问修饰符]class派生类名extends基类名{成员列表}如:classStudentextendsPerson{……}五、类成员的访问控制权限(1)信息隐藏是面向对象程序设计的重要特点之一,它可以:a)防止类的使用者意外损坏数据;b)对任何实现细节所作的修改不会影响到使用该类的其它代码;c)使类更易于使用。(2)在Java中实现信息隐藏的是访问控制权限机制;(3)访问控制权限包括4个访问修饰符:public、protected、private和缺省;120(4)可以使用上述访问修饰符修饰类的成员。六、上机实验(1)[练习一]医生有姓名(name),编号(idNumber),地址(address)等基本信息,都有display()显示信息的方法。医生又分专业医生和非专业医生,非专业医生所具有的信息与上述的一样。但专业医生出了具有上述的基本信息之外还有特有的信息:专业(speciality)。请根据他们之间的关系,创建一个医生类(Doctor),包含医生的基本信息。再利用继承创建一个非专业医生类(NonSpecialist)和一个专业医生类(Specialist),专业医生类包含一个显示其专业的方法publicvoidshowSpwciality()。利用这些类的对象显示他们各自的信息。/*提示1.医生类构造方法中可以加入一条显示代码System.out.println("这是父类构造方法");2.非专业医生类只需继承医生类无需编写任何属性,方法。3.专业医生类继承医生类,并添加属性:专业,构造方法需使用super调用父类构造方法,添加获得专业信的方法和显示专业信息的方法。所有的类都是用构造方法初始化对象,在test类中编写main方法测试。classDoctor{.....privatename;......publicvoiddisplay(){System.out.println("姓名"+getName()。。。。);//其他属性类似姓名的处理方式}.....}(以下练习都应采用上述构造函数/getXXXX()/display()的编码形式)(2)【练习题二】定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性brand(商标)和color(颜色),还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),并编写构造方法。编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法。在main方法中测试以上各类。作业布置(1)P1928、9。(2)预习多态的基本概念以及具体实现。课课后总结(1)由于对继承属于面向对象的三大特征之一,所以本章节的速度放得很慢,但是即使这样依然有30%的人对继承的基本概念和实现仍然存在很大的问题。解决办法就是系能能够通过更多的练习来达到对理论的理解。教案编号:11章节章节继承—多态授课方式讲授+上机教学目的(1)掌握方法覆盖的基本概念机Java实现。(2)掌握多态,在Java中实现多态。(3)掌握final关键字的用法。(4)培养学生的表达能力、项目展示能力。(5)培养学生的团队意识。(6)培养学生的实际动手能力。教学重点(1)方法覆盖、多态。教学难点(1)方法覆盖、多态。时间分配教学过程20publicvoidfun(){//子类覆盖父类中的方法System.out.println("这是子类中的方法。");}}classOverriddenTest{//用于容纳main方法publicstaticvoidmain(String[]args){ParentClassparObj=newParentClass();parObj.fun();//父类的实例调用此方法ChildClasschiObj=newChildClass();chiObj.fun();//子类的实例调用此方法}}(4)区分方法覆盖和方法重载a)方法覆盖(重写)和方法重载是两个极易混淆的概念,必须严格区分;b)方法覆盖出现的前提条件之一是必须有继承发生的情况下,而且要求父类和子类中的方法必须同原型;c)方法重载时,继承并不是必需的,它只要求方法名称相同,而参数列表则必须不同,换言之,各方法的原型其实是不同的。四、多态(1)简单来说,多态是具有表现多种形态的能力的特征(2)属于同一种类型,使用不同的实例而执行不同操作(3)静态多态(4)动态多态实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案1530五、final关键字(1)在Java中,final关键字有最终的,不可修改的含义;(2)final关键字有三种用途,可以分别应用于变量、成员方法和类。(3)如果将某个变量修饰为final,那么该变量就成为常量,一般语法:[访问权限]final数据类型常量名=值;如:finaldoublePI=3.14159;PI成为常量,其后任何试图对PI进行赋值的语句都将报错;(4)常量在声明时必须初始化六、代码阅读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进行类型判断)(3)修改Test类,添加喂养宠物feedPet(Petpet)的方法,在feedPet中调cry(),eat()方法,实例化Test类,再实例化狗Dogdog=newDog(),猫Petcat=newCat(),Test分别调feedPet()方法分别传参数cat,dog,思考这两种方式的异同,深入理解引入转型和多态作业布置(1)预习异常处理,并完成P279课后作业1、2、3。实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案课课后总结(1)对方法覆盖和多态的理解难度较大,约一半的人都停留在记住概念上面,在实际的运用中存在问题,解决办法就是由老师给出作业的源代码,先个人看,然后小组讨论,最后由小组代表上台来给大家讲解实现的思路。

教案编号:12章节章节异常处理授课方式讲授+讨论+上机教学目的(1)掌握异常的概念。(2)具备运用try块、catch块和finally块处理异常的能力。(3)掌握Java中异常类的继承体系结构。(4)运用关键字throw和throws处理异常。(5)掌握自定义异常。(6)培养学生程序的阅读能力。(7)培养学生自助学习的能力。(8)培养学生实际的动手能力。(9)培养学生团队意识。教学重点(1)try块、catch块和finally块。教学难点(1)finally语句。时间分配教学过程Min一、作业点评及检查(学生阐述+老师总结)151560作业讲解及点评:由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。预习检查:由1-2个人回答上周布置的思考题作业。由此引出本次课新内容。二、异常(1)什么是异常?a)程序中出现的错误被称为异常;b)异常可分为两大类:编译时异常和运行时异常;c)编译时异常一般是指语法错误,可以通过编译器的提示加以修正,这里我们不予讨论;d)运行时异常包括:运行错误:如数组下标越界,除数为0等;逻辑错误:如年龄超过200岁等。(2)try块和catch块a)try块:一般用来监视有可能产生异常的代码部分;b)catch块:当异常产生后,catch块捕捉异常,并在其中对异常进行处理。……try{……//监视有可能发生异常的代码段}catch(异常类型)//捕获发生的异常{……//对异常进行处理}……c)finally块无论try/catch块中发生了什么,finally块都一定会执行;当异常发生时,程序可能会意外中断,有些被占用的资源就得不到清理。finally块可以确保执行所有的清理工作;无论是否发生异常,finally块都将执行;finally块是可选的,可视具体情况决定是否添加;finally块必须和try块一起使用,不能单独存在。d)try/catch/finally执行流程(3)throw关键字a)throw语句用于手工抛出异常;b)执行流程将在throw语句后立即停止,转而寻找与之类型相匹配的catch块;c)throw语句的语法是:throw(异常类型的实例)。105(4)用户自定义异常a)Exception类和其子类都是系统内置的异常,这些异常不一定总能捕获程序中发生的所有异常;b)有时候,我们可能要创建用户自定义的异常类;c)用户自定义异常类应该是Exception类的子类;d)类似于:classMyExceptionextendsException{……}三、上机实验1、编写程序ArrayDivide,在其中同时给出两个不同大小的整型数组。利用循环,将第一个数组包含的整型数作为被除数,第二个数组包含的整型数作为除数。用第一个数组中的整型数除以第二个数组中相应位置的元素。考虑各种可能产生的异常,并设计程序捕获和处理这些异常。提示:当第一个数组的长度大于第二个数组的长度时,可能产生的ArrayIndex-OutOfBoundsException异常;当被除数为0时,可能产生ArithmeticException的异常2、编写程序,实现从命令行输入三个数值参数作为三角形的三条边,以此构造一个三角形。程序应该实现如下功能:-->检查用户输入的命令行参数是否足够,如果不够三个参数,则程序可能产生ArrayIndexOutOfBoundsException异常-->检查输入的命令行参数是否为数值格式,如果输入的数值参数格式错误,则实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案程序可能产生程序可能产生NumberFormatException异常-->检查输入的命令行参数中是否有负值,如果有负值,则程序可能产生ArgumentException异常(ArgumentException为自定义异常)-->检查输入的命令行参数的三个数值是否能够构造一个三角形,如果不能构造一个三角形,则程序可能产生InvailEdgesException异常(InvailEdgesException为自定义异常)提示:三角形任意两边之和必须大于第三边。作业布置(1)P280-2827、8、9。课后总结(1)90%的人都理解了异常处理,并且能够在程序中熟练的运用。但是在对finally块的掌握程度上还不够。教案编号:13章节章节Java基本语法、流程控制、面向对象编程、异常处理做一次全面的复习授课方式讲授+上机教学目的(1)巩固学生对前面章节内容的学习。(2)帮助学生将前面的内容串联起来,能够熟练的运用前面的内容来完成应用程序的编写。(3)培养学生自主学习的能力。(4)培养学生系统分析问题的能力。(5)培养学生的实际动手能力。教学重点教学难点时间分配教学过程Min25一、作业点评及检查(学生阐述+老师总结)作业讲解及点评:由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。作业检查:由3-5个同学给出作业的答案以及讲解实现思路,老师从旁补充和总结。1555二、上机实验(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)classBase{inti=99;publicvoidamethod(){System.out.println("Base.amethod()");}Base(){amethod();}}publicclassDerivedextendsBase{inti=-1;publicstaticvoidmain(Stringargv[]){Baseb=newDerived();System.out.println(b.i);b.amethod();}publicvoidamethod(){System.out.println("Derived.amethod()");}}b)publicclassAccpTeacher{publicvoidgiveLesson(){System.out.println("知识点讲解");}}}publicclassAccpDBTeacherextendsAccpTeacher{publicvoidgiveLesson(){System.out.println("启动SqlServer");}}publicclassTest{publicstaticvoidmain(String[]args){AccpTeachert=newAccpDBTeacher();t.giveLesson();}}c)classBase{publicStringname;publicBase(){name="Base";}publicBase(StringpName){name=pName;}publicvoidmethod(){System.out.println(name);}实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案}classChildextendsBase{}classChildextendsBase{publicChild(){super("Child1");name="Child2";}}publicclassSample{publicstaticvoidmain(String[]args){Childc=newChild();c.method();}}(12)题目:品尝饮料一、语言和环境1.实现语言:Java2.环境要求:JDK1.4或以上版本及其联机帮助文档二、要求1、使用命令行参数(饮料类型),输出该饮料类型的味道,如:当命令行参数为1时,结果见图1:cc、实现taste()方法,要求在控制台打印各自的味道特征。3、建立异常类DrinkNotFoundExceptiona、继承Exceptionb、在Drink的方法getDrink(intdrinkType)中声明引发DrinkNotFoundException异常,当传入的参数没有相对应的饮料类型时,抛出异常。c、在使用getDrink方法的类中捕捉该异常。4、建立Test测试类,测试以上内容的正确性a、编写main方法,通过命令行传参的方式传入某种饮料的类型。b、在main方法中,调用Drink类的getDrink方法,获得相应的饮料对象。注意捕获DrinkNotFoundException。c、然后调用该饮料对象的taste()方法,输出该饮料的味道。5、编译程序,并运行。四、注意事项1、仔细审题,把题目要求理解准确;2、请注意多态性的运用;请注意代码的书写、命名符合规范,应有适当的注释。作业布置(1)预习java.lang包。实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案课课后总结通过本次的练习,至少让80%的同学巩固了前面所学的内容,并且将前面的内容页进行了一次很好的融合。

教案编号:14章节章节java.lang包授课方式讲授+上机教学目的(1)了解java.lang包。(2)掌握包装类。(3)掌握String类。(4)培养学生的个人表达能力、项目展示能力。(5)培养学生的团队意识。(6)培养学生的主动积极性。教学重点(1)String类。教学难点时间分配教学过程3010105(6)包装类的valueOf方法(7)包装类的parseXxx方法(8)Character类中的常用方法(9)Character类常用方法示例五、String类(1)Java中,字符串是String类的对象;(2)可以通过使用String类提供的方法来完成对字符串的操作;(3)创建一个字符串对象之后,将不能更改构成字符串的字符;(4)每当更改了字符串版本时,就创建了一个新的字符串对象,并在其内包含所做的修改,原始字符串保持不变。六、上机实验(1)练习一:编写一个Java程序,完成以下功能:声明一个名为s的String对象,并使它的内容是"CallmeAccp";打印整个字符串。使用length()方法打印字符串的长度使用charAt()方法打印字符串的第一个字符使用charAt()方法和length()打印字符串的最后一个字符使用indexOf()方法和substring()方法打印字符串的第一个单词。(2)练习二:编写一个Java程序,用于测试两个字符串StringfirstString="Thisis"和StringsecondString="Thisis";是否相等。将"hisfather"与其中的firstString字符串连接。用z替换新字符串中的i。(3)(3)练习三:编写一个ExtractString程序,从字符串"SeizetheDay"中提取单词"the"和"Day".(4)练习四:使用toCharArray()判断一个字符串是否为回文。//回文:asdsa(5)练习五:判断电子邮件1.必须包含@和.而且@只能有一个2.不能以@或.开头以及结尾3.@必须出现在.之前indexOflastIndexOf作业布置(1)P624-6251-9。课后总结对于系统包,只需要多写多练就能够完全的掌握,从整体上来是说,约85%的人都掌握了这堂课的内容。教案编号:15章节章节Java常用类授课方式讲授+上机教学目的(1)掌握StringBuffer类。(2)熟练运用Math类中的方法。(3)熟练运用Object类中的方法。(4)熟练运用Class类中的方法。(5)培养学生的项目展示能力。(6)培养学生的实际动手能力。(7)培养学生的自主学习能力。教学重点(1)Object、StringBuilder、Math。教学难点(1)Object、StringBuilder、Math。时间分配教学过程Min15一、作业点评及检查(学生阐述+老师总结)作业讲解及点评:由3-6个学生分别讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案1010二、回顾(1)Lang包是我们常用的工具包(2)包装类以及包装类的构造方法、valueOf()方法、parseXxx()方法;(3)Character类常用静态方法:isLetter(charch)、isDigit(charch)、isUpperCase(charch)、isLowerCase(charch)、isWhitespace(charch)(4)String类的常用操作:a)字符串长度;b)字符串比较;c)字符串搜索;d)提取字符串;e)更改字符串大小写;(5)数据格式转化。三、StringBuffer类(1)StringBuffer类用于表示可以修改的字符串;(2)使用+运算符的字符串将自动创建字符串缓冲对象;(3)以下是StringBuffer类的构造方法有4种重载方式,以下是常用的几个:10四、Math类(1)Math类中提供了一系列基本数学运算和几何运算的方法;(2)该类的构造方法被修饰为private,因此不能实例化;(3)该类中的所有方法都是静态的,可以通过类名直接调用;(4)该类被修饰为final,因此没有子类。五、Object类的常用方法六、Class类(1)Java应用程序实际上都是由一个个对象组成,这些对象分别属于什么类,是从哪个类继承而来,这一系列的信息都是由Class类的实例来记录的;(2)Class类的实例用于记录对象的类描述信息;(3)如果在程序运行时,需要检索某个对象的相关类信息,可以调用该对象的getClass方法来获得记录其描述信息的Class类实例;(4)Class类没有公共的构造方法,无法通过new运算符实例化,只能通过对象的getClass方法,或是通过Class的静态方法forName来获得实例。七、上机实验151515105(1)练习一:回文串编写程序CheckPalindrome,从命令行参数中读入一个字符串,检查该字符串是否为回文串,回文串的特点是顺序读和倒序读都是一样。例如,mom、dad和atoyota都是回文串。(2)练习二:猜数字编写程序Guess,随机地产生一个整数,表示从A到Z的字母。之后,通过命令行参数读入一个字母,试图猜出随机产生的字母。无论猜得是否正确,都打印出相应的信息。另外,如果猜对了,程序退出。实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案作作业布置(1)预习java.util包。课后总结通过一系列的案例加课后练习,来让同学掌握课堂上所学的内容;整体效果良好。

教案编号:16章节章节java.util包授课方式讲授+上机教学目的(1)了解java.util包。(2)能够熟练运用如下类进行Java编程(Date类、Calendar类、Random类)(3)掌握集合类(List、Map)的使用。(4)能够熟练使用Collection接口及其实现类(ArrayList类、LinkedList类、Vector类)。(5)掌握HashMap类(6)培养学生的个人表达能力、项目展示能力。(7)培养学生的个人动手能力。(8)培养学生的逻辑思维能力。教学重点(1)List、Map、Vector。教学难点(1)List、Map、Vector。时间分配教学过程MinMin1545一、作业点评及检查(学生阐述+老师总结)作业讲解及点评:由2-4个学生分别讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。二、Java.util包(1)java.util包简介。a)java.util包是Java内置的一个工具包,其中包含一系列常用的工具类;b)如处理日期和日历的类以及一些集合类;c)java.util包不会默认导入,如果要使用到该包中的类,则必须在程序的开始部分显式地声明如下语句:importjava.util.*;(2)Date类a)Date类对象用来表示时间和日期;b)该类提供一系列操纵日期和时间各组成部分的方法;c)Date类最多的用途是获取系统当前的日期和时间。(3)Calendar类a)Calendar类也是用来操作日期和时间的类,但它可以以整数形式检索类似于年、月、日之类的信息;b)Calendar类是抽象类,无法实例化,要得到该类对象只能通过调用getInstance方法来获得;c)Calendar对象提供为特定语言或日历样式实现日期格式化所需的所有时间字段。(4)Random类a)Random类专门用来生成随机数;b)该类的构造方法有2种重载方式。实用标准文档实用标准文档精彩文案精彩文案实用标准文档精彩文案120(5)集合a)集合是将多个元素组成一个单元的对象;b)类似于数组,但数组最大的缺点是:长度受到限制(一经创建,就不可再改变),并且只能存放相同数据类型的元素;c)集合的长度没有限制,可以存放任意多的元素,而且元素的数据类型也可以不同;d)集合还提供一系列操纵数据的方法,如存储、检索等等。三、上机实验(一).使用Date类求获取当前日期,分别使用下以下格式打印:1)按日期的原格式打印.2)"当前时间是:xxxx年xx月xx日星期X北京时间"3)"当前时间是:xxxx年xx月xx日时:分:秒"4)按欧美日期习惯输出当前日期("月-日-年时:分:秒")(二)使用Date的Date(intyear,intmonth,intdate)构造方法,构造当前日期,打印输出.求出当前日期自1970年1月1日起的已经有多少天了.(三).使用Calendar类,编写程序求出你的出生的那一天是星期几.并求出你出生到今天一共有多少天,打印输出.(四).使用Calendar类,打印出当前月的日历表,效果图如下:(五(五).利用Random类,随机生成一个int随机数,long随机数,float随机数,double随机数,高斯随机数,并在屏幕上随机打印.(六).使用Random类模拟摇色子游戏.共5粒色子,分别显示出5粒色子的点数,和加起来一共是多少点.打印输出.作业布置(1)编写程序,依次应用ArrayList和LinkedList实现栈和队列的功能。提示:(a)使用ArrayList和LinkedList模拟栈和队列。(b)使用push和pop方法模拟进栈和出栈操作。(2)编写一个程序,读入一系列名字并将它们存储在LinkedList和ArrayList中,并实现以下功能:(a)允许用户通过名字进行查找。(b)允许用户将姓名进行排序。(c)允许用户删除指定姓名。课后总结通过案例的讲解和项目的练习,让80%以上的同学对java.util包的常用类都能够熟练的运用。教案编号:17章章节JavaI/O系统授课方式讲授+上机教学目的(1)了解File类。(2)了解FileInputStream文件输入流。(3)了解FileOutputS

温馨提示

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

评论

0/150

提交评论