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

下载本文档

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

文档简介

西南财经大学天府学院教 案任课教师: 贾砚池课程名称:面向对象程序设计(Java) 任课班级: 13级专科计算机01班、13级专科网络01班、13级专科软件01班授课时间: 2013-2014-2学期西南财经大学天府学院教务处制教 案编号:1章节Java SE程序设计与实践的考核方式和Java简介授课方式讲授+讨论+上机教学目的(1) 掌握本课程的考核方式、即将要学习的内容以及相关的课堂纪律。(2) 了解课程整体目标。(3) 了解Java语言。(4) 了解Java程序的类型。(5) 理解Java虚拟机(JVM)。(6) 掌握Java程序运行环境的配置,能够独立完成。(7) 培养学生实际动手能力(自主安装JDK以及配置环境变量)。(8) 培养学生自主解决问题的能力。教学重点(1) 环境变量的配置和编译源文件以及Java程序打包。教学难点(1) 环境变量的配置和编译源文件以及Java程序打包。时间分配教 学 过 程Min105155101015253060一、 考核方式(讲授)(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) 小组讨论: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(Hello world!); (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程序结构的理解都不存在问题。整体来说,效果良好。教 案编号:2章节Java语言基础流程控制 分支语句授课方式讲授+学生实验+讨论教学目的(1) 掌握Java中的变量和数据类型。(2) 掌握Java中变量的作用域规则。(3) 掌握数据类型转换。(4) 掌握Java中的运算符和表达式。(5) 掌握选择结构的几种实现方式;并能够独立的应用它们来编写程序。(6) 培养学生主动思考问题的能力。(7) 培养学生表达能力。(8) 培养学生实际动手操作能力。教学重点(1) Java的基本数据类型、引用类型以及变量的作用域。(2) 分支语句。教学难点(1) 引用类型以及变量的作用域。(2) 分支语句。时间分配教 学 过 程Min108090一、 作业点评(学生阐述+老师总结)方式:由出现程序问题的同学讲出自己出现的问题以及解决方式,最后由老师总结。(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、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) ifelse语句c) ifelse if语句d) switchcase语句三、 学生实验(上机+老师指导)(1) 输入一个“男”或者“女”,对应输出“M”和“F”。(2) 写程序,若星期一到星期五,则打印出“工作快乐”,若星期六、星期天则输出“周末更快乐”。(3) 输入一个分数,输出对应的等级: 60以下 E 60-70 D 70-80 C 80-90 B 90 100 A作业布置(1) 输入三个数字,最后从小到大输出排序。(2) 课后预习循环结构的几种语句以及数组的定义。课后总结(1) 通过学生自己对出现问题的总结和老师的总结,80%以上的同学对常见问题的解决方法有了一个深刻的认识。(2) 通过三个上机程序,加深了对循环结构的认识。但是依然有约20%的同学对if和switch的用法还不能掌握,需加强程序上机的编写。教 案编号:3章节流程控制 循环语句数组授课方式讲授+上机教学目的(1) 掌握循环语句的使用。(2) 掌握数组的声明以及运用。(3) 培养学生主动性和积极性。(4) 培养学生的逻辑思维能力。教学重点(1) 循环语句。(2) 数组、哈希表。教学难点(1) 循环语句。(2) 数组、哈希表。时间分配教 学 过 程Min1060110一、 作业点评(学生阐述+老师总结)方式:由3-5个同学来讲述上周作业的实现思路,最后由老师总结出现的一些问题。(1) 类名不规范(2) 运算符的运用(3) 部分算法的不科学性二、 抽查上周布置的课后作业,抽查1-3个同学来阐述循环结构的几种语句以及数组的声明。(学生阐述+老师讲授)(1) 循环语句a) Whileint i=0; while(i+3) System.out.println(i);b) Dowhile语句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+;if(a=101)break one; /终止循环System.out.println(result); /打印5050b) 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(i10)if(i10) i+; continue;if(i=5) break;System.out.println(i);(4) Java中声明数组的几种方式/仅声明数组的引用,但没有分配内存空间float fAry;/声明数组的同时,根据指定的长度分配内存,但数组中没有值char chAry = new char10;/声明数组并分配内存,同时将其初始化int ary1 = new int1, 2, 3, 4, 5;/与前一种方式相同,仅仅只是语法相对简略int ary2 = 1, 2, 3, 4, 5;三、 学生实验(上机)(1) 【练习题一】编写Java程序,计算100999之间的全部“水仙花数”的平均值。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153=13+53+33,故153是水仙花数。(2) 【练习题二】编写一个Java程序,要求在控制台上打印出九九乘法表,效果应如下所示:1*1=1,1*2=2, 2*2=4,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周,决定采用大量的例子程序进行上机练习,然后由老师以及学得比较好的同学进行辅导,为后面的面向对象编程的一些概念打下基础。教 案编号:4章节程序上机练习授课方式讲授+上机教学目的(1) 掌握分支语句、循环语句、数组的用法;加深对变量以及数组声明等用法的理解和使用。(2) 培养学生的逻辑思维能力。(3) 培养学生的实际动手能力。(4) 培养学生分析问题的能力。教学重点(1) 分支语句、循环语句。教学难点(1) 分支语句、循环语句。时间分配教 学 过 程Min 20160一、 作业点评(学生阐述+老师总结)方式:由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 = 135333)(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) 分支语句、循环语句。时间分配教 学 过 程Min30150一、 作业点评(学生阐述+老师总结)方式:由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) 课后预习面向对象编程的概念。课后总结 通过两周的课堂编程练习以及老师的指导和讲解,80%的同学对Java语言基础、循环结构、选择结构以及数组的应用基本熟练,达到了Java编程的入门级水平(能够编写一些简单的应用程序,如:打印图案,数字排序,平年与闰年的判断等);在逻辑思考上也有了一些进步,但是程序的训练还需进一步的加强。教 案编号:7章节 面向对象开发方法概述授课方式讲授+上机教学目的(1) 了解什么是面向对象。(2) 掌握面向对象的基本概念(类、对象、属性、封装、继承、多态)。(3) 掌握如何定义类,如何创建对象。(4) 掌握成员运算符的使用。(5) 掌握访问控制权限:public和private。(6) 培养学生抽象客观世界成主观世界的能力。(7) 培养学生初步的设计软件系统的能力。(8) 培养学生的团队意识。教学重点(1) 面向对象的核心思想和概念教学难点(1) 面向对象的核心思想和概念时间分配教 学 过 程Min15151010202010101555一、 作业点评(学生阐述+老师总结)方式:由1-3个同学来讲述上周作业第六题的实现思路以及展示具体实现,最后由老师总结出现的一些问题。二、 上周课后作业检查方式:抽查2-5名同学谈谈对面向对象编程的认识以及对基本概念的描述。三、 面向对象的编程思想四、 对象(1) 现实世界中的实体是实际存在的某种物体,用OOP的术语就称为对象。(2) 在Java中我们通过对象对现实世界中的实体进行一个模拟和映射。(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修饰的成员只能够被本类中的其它成员访问,而不能从类的外部进行访问。九、 讨论:列举出生活中常见的类以及它们的对象。由每个组一个代表发言,说出讨论结果。十、 上机实验(一) 练习一(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%的同学对面向对象的基本概念的理解和掌握;余下的大部分同学都属于一知半解;在这方面还需进一步加强练习。教 案编号:8章节 面向对象开发方法概述 类和对象的Java实现授课方式讲授+学生操作教学目的(1) 掌握类和对象的基本概念以及核心思想。(2) 掌握构造方法的写法以及重载。(3) 掌握对象在内存中的存放形式。(4) 培养学生对客观事物的抽象能力。(5) 培养学生系统分析的能力。(6) 培养学生的项目展示能力。教学重点(1) 构造方法。(2) 方法重载。教学难点(1) 方法重载。时间分配教 学 过 程Min202020120一、 作业点评(学生阐述+老师总结)方式:由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() 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个对象的创建,并显示具体学生的相关信息。(5) 定义一个类AbsoluteValue(求绝对值),要求使用方法重载实现不同类型数值的取绝对值方法:abs。作业布置(1) P193 11、12、13。课后总结(1) 80%以上的同学掌握了windows应用程序的安装、卸载以及软件的注册。(2) 90%以上的同学掌握了windows的基本快捷操作。教 案编号:9章节Java语言中的修饰符授课方式讲授+学生实验教学目的(1) 掌握this、static、package、import它们的含义以及用法。(2) 掌握对象数组的声明及用法。(3) 培养学生实际动手能力。(4) 培养学生面向对象的编程能力。教学重点(1) 对象数组。(2) this、static、package、import。教学难点(1) 对象数组。(2) this、static。时间分配教 学 过 程Min1515151025100一、 作业点评及检查(学生阐述+老师总结)(1) 由1-2个学生讲述上周作业的实现思路以及展示程序实现;过程中由老师补充和总结。二、 对象数组(讲授)(1) 在Java中不但可以声明由原始数据组成的数组,还可以声明由对象组成的数组;声明对象数组的方式如:/假设已经定义了一个Student类/*声明由5个Student对象组成的数组*/Student stdAry = new Student5;(2) 上述方式类似于C语言中的:struct Student *p = NULL;p = (struct Student*)malloc(5 * sizeof(struct Student*);(3) 对象数组=引用数组三、 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) 编写一个学生类,类里有一个标示姓名的属性和一个静态的标示总学生个数的属性,写一个构造方法,使每创建一个学生对象时学生个数自加,写一个输出结果的方法,程序运行的结果如下:(3) 随便写一个JAVA程序,在程序的最前面写下面这条语句:package newer.java;编绎运行,并到原程序所在目录下查看生成的包结构。(4) 编写下面的程序,编译后分析报错的原因public class Testpublic 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的理解还需多加强程序编写的练习。教 案编号:10章节 继承 基本概念及基本用法授课方式讲授+上机教学目的(1) 理解什么是继承。(2) 掌握在Java中实现继承,extends关键字。(3) 掌握继承中的构造方法的用法。(4) 掌握super关键字的含义及用法。(5) 培养学生项目展示能力。(6) 培养学生主动思考问题的能力。(7) 培养学生实际动手能力。教学重点(1) 继承的基本概念以及Java实现。教学难点(1) 继承的基本概念以及Java实现。时间分配教 学 过 程Min205101510120一、 作业点评及检查(学生阐述+老师总结)由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) 继承是利用现有的类创建新类的过程,现有的类称作基类(或父类),创建的新类称作派生类(子类)。(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()显示信息的方法。医生又分专业医生

温馨提示

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

最新文档

评论

0/150

提交评论