Java面向对象程序设计课后答案

2024-05-23

Java面向对象程序设计课后答案(精选10篇)

Java面向对象程序设计课后答案 第1篇

Java语言与面向对象程序设计-在线作业_E 用户名:W310201132227最终成绩:100.0 一 单项选择题

1.Java中继承由关键字()实现,用此关键字指出超类。

interface implements class extends

本题分值: 5.0 用户得分: 5.0 用户解答: extends 知识点: 5.1 继承

2.继承是()之间的一种关系,当一个类获取另外一个类中所有非私有数据和操作的定义作为自己的部分或全部成分时,则称这两个类之间具有继承关系。

两个类 多个 集合 层次

本题分值: 5.0 用户得分: 5.0 用户解答: 两个类 知识点: 5.1 继承

3.下面不能用在类声明的修饰是:()。

implements private public 默认

本题分值: 5.0 用户得分: 5.0 用户解答: implements 知识点: 5.1 继承

4.super关键字表示超类的引用,可用super: ()。

 在子类构造方法使用超类构造方法。

访问超类成员 引用类自己 无用 定义父类

本题分值: 5.0 用户得分: 5.0 用户解答: 访问超类成员 知识点: 5.1 继承

5.子类继承父类所有的 public 和()成员,而无论这个类是否与父类在同一个包中。

private protected 公共 所有

本题分值: 5.0 用户得分: 5.0 用户解答: protected 知识点: 5.2 域的继承与隐藏

6.在子类中重新定义一个与从父类那里继承来的()的域,称为域的隐藏。

private protected public 名字完全相同

本题分值: 5.0 用户得分: 5.0 用户解答: 名字完全相同 知识点: 5.2 域的继承与隐藏

7.在子类中不能简单地通过变量名称引用父类中被隐藏的成员变量。要在子类访问被隐藏的父类中的域必须通过关键字()引用。

this super object 变量名

本题分值: 5.0 用户得分: 5.0 用户解答: super 知识点: 5.2 域的继承与隐藏

8.子类继承了父类中所有的非私有方法,允许在子类重新定义父类中的实例方法,()中的类方法。

定义类 对象 引用父类 隐藏父类

本题分值: 5.0 用户得分: 5.0 用户解答: 对象

知识点: 5.3 方法继承、覆盖、隐藏

9.“多态”是指一个程序中同名的不同方法共存。在面向对象程序中,多态的实现方式有:方法覆盖和()。

重载 继承 外联 限制

本题分值: 5.0 用户得分: 5.0 用户解答: 重载

知识点: 5.3 方法继承、覆盖、隐藏

10.在子类中可以通过成员的名称直接引用父类的方法或者用“()”引用父类的方法。

对象.方法名称 this.方法名称 super.方法名称 object.方法名称

本题分值: 5.0 用户得分: 5.0 用户解答: super.方法名称

知识点: 5.3 方法继承、覆盖、隐藏

11.在子类中的实例方法与在父类中的实例方法有相同的()时,称作覆盖父类的方法。

返回值 结构 语句

签名和返回类型

本题分值: 5.0 用户得分: 5.0 用户解答: 签名和返回类型

知识点: 5.3 方法继承、覆盖、隐藏

12.当在子类中的覆盖一个父类的方法时,用()注解符通知编译期在父类你想要覆盖的方法。

@author class @Override public

本题分值: 5.0 用户得分: 5.0 用户解答: @Override 知识点: 5.3 方法继承、覆盖、隐藏

13.在调用覆盖的方法时,被调用的覆盖方法的版本(),就是子类中的覆盖方法。只有一个 有多个 不是唯一的 与重载类似

本题分值: 5.0 用户得分: 5.0 用户解答: 只有一个

知识点: 5.3 方法继承、覆盖、隐藏

14.如果子类没有无参数构造方法,它将继承父类的()作为自己的构造方法。

this()指定方法 任何方法 无参数构造方法

本题分值: 5.0 用户得分: 5.0 用户解答: 无参数构造方法 知识点: 5.4 构造方法继承

15.public abstract class GraphicObject { abstract void draw();„„ } 是()类。

抽象 抽象方法 接口 未完成的类

本题分值: 5.0 用户得分: 5.0 用户解答: 抽象 知识点: 5.5 抽象类

16.声明抽象方法用下面的格式:()类型 方法名([参数表]);

static public final abstract

本题分值: 5.0 用户得分: 5.0 用户解答: abstract 知识点: 5.5 抽象类

17.Java语言中接口是像类一样的引用型类型,仅可包含()、嵌套类型。

private static 实例变量 方法

常量、方法签名

本题分值: 5.0 用户得分: 5.0 用户解答: 常量、方法签名 知识点: 5.6 接口

18.接口声明由修饰、interface、接口名称、()和接口体。

private

逗号隔开的父接口列表

static final 父类列表

本题分值: 5.0 用户得分: 5.0 用户解答: 逗号隔开的父接口列表 知识点: 5.6 接口

19.包(package)由一组()组成,是相关类型的组,提供访问保护和命名空间管理。

类和接口 方法 对象和类 静态变量

本题分值: 5.0 用户得分: 5.0 用户解答: 类和接口

知识点: 5.7 包(Packages)

20.引入整个包中所有成员,即“import 包名字.*”,例如:()

import java.io.*;import *.*;import java;import java.io;

本题分值: 5.0 用户得分: 5.0 用户解答: import java.io.*;知识点: 5.7 包(Packages)

Java面向对象程序设计课后答案 第2篇

Windows应用程序基本的操作单元,系统管理应用程序的基本单位,应用程序与用户之间交互的接口环境

2.事件驱动的特点是什么?

Windows程序设计是针对事件或消息的处理进行。Windows程序的执行顺序取决于事件发生的顺序,程序的执行顺序是由顺序产生的消息驱动的,但是消息的产生往往并不要求有次序之分。事件驱动编程方法对于编写交互式程序很有用处,它避免了死板的操作模式。

4.句柄的作用是什么?请举例说明

句柄是整个windows编程的基础,是一个4字节长的数值,用于标识应用程序中不同的对象和同类对象中不同的实例。应用程序通过句柄访问相应的对象信息。

TypedefstructtagPOINT{LONG X;LONG Y;}POINT

5.一个windows应用程序的最基本构成有哪些部分

(5)部分组成,1).C语言源程序文件c或者cpp2).头文件h

3).模块定义文件def4).资源描述文件rc5).项目文件vcproj

6.应用windows API函数编程有什么特点

1)为应用程序提供Windows系统特殊函数及数据结构 2)Win应用程序可以利用标准大量API函数调用系统功能 3)是Win系统与Win应用程序间的标准程序接口。

功能:窗口管理函数:实现窗口的创建、移动和修改功能,系统服务函数:实现与操作系统有关的多种功能,图形设备(GDI)函数:实现与设备无关的图形操作功能

7.Windows编程中有哪些常用的数据类型

LONG 32 位有符号整数,DWORD 32 位无符号整数,UINT 32 位无符号整数,BOOL布尔值,LPTSTR 指向字符串的 32 位指针,LPCTSTR 指向字符串常量的 32 位指针,LPSTR 指向字符串的 32 位指针,LPCSTR 指向字符串常量的 32 位指针。

9.简述winmain函数和窗口函数的结构及功能

三个基本的组成部分:函数说明、初始化和消息循环,功能:注册窗口类,建立窗口及执行必要的初始化,进入消息循环,根据接受的消息调用相应的处理过程,当消息循环检索到WM_QUIT时终止程序运行。窗口函数定义了应用程序对接收到的不同消息的响应,包含了对各种可能接收到的消息的处理过程。WndProc函数由一系列case语句组成。每一条case语句对应一种消息,当应用程序接收到一个消息时,相应的case语句被激活并执行相应的响应程序模块。

10.初始化

窗口类的定义:定义窗口的形式与功能LoadIcon应用程序中加载一个窗口图标,LoadCursor应用程序中加载一个窗口光标,GetStockObject获取系统提供的背景刷。

窗口类的注册:窗口类必须先注册后使用RegisterClassEx()

创建窗口实例:CreateWindow

Java面向对象程序设计课后答案 第3篇

高职高专院校培养模式:高职高专院校人才培养的基本特征是以适应社会需要为目标,培养高等技术应用型专门人才。其毕业生应具有基础理论适度、技术应用能力强、知识面宽、素质高等特点.因此在高职高专的教学计划中实践教学占较大的比重,在教学过程中应该摆脱本科的那种重理论、重系统的教学模式,而是以学生的技能训练为重点,培养学生的一技之长.高职高专院校还应该以就业为导向,使教学内容和教学方式时刻与社会对人才的需求以及岗位要求相适应,这样才能实现高职高专院校培养人才,服务社会的功能。

1 传统式灌输教学向导向式教学的转变

在传统的教学过程中,大都是以理论知识灌输和教师为主体,学生学习非常被动。这种方式的教学在很大程度上限制了学生主观能动性的发挥,从而使得课堂气氛沉闷,学生上课走神,最终导致教学效果不理想。随着《国务院关于大力推进职业教育改革与发展的决定》,“以学生为主体,以教师为主导”的新型教育模式被提了出来,这种教育模式要求学校和教师把学生放到应有的学习主体的地位上,充分地发挥教师教导与引导的主动性和学生自主学习的主观能动性,真正达到教学相长,师生互动,寓教于乐,学生自悟与自觉的高水平教育境界,培养德、智、体、美全面发展的具有行动能力和创造能力的高层次社会人才。“互动式教学”、“参与式教学”、“研究型学习”等新的教学方法应运而生。为了培养学生学习兴趣和积极性,切实培养学生使用java语言进行程序开发的能力,所以在教学过程必须打破传统教育教学方式,做好导向式教学。为了更好地体现导向式教学,我将整个教学环节进行了调整,授课过程中更多地增加了提问、学生演讲、小组讨论、实训练习等教学方式。例如在讲述Java基础语法知识时,我采用与C++/C#语言进行对比的方式,列出问题,给出测试题目。引导学生带着问题,自己看书,并通过小测验,加强对理论知识的理解和掌握。

2“案例驱动式”方法贯穿整个教学过程

案例驱动教学法作为教育领域中一种比较新的教育教学方法,近年来我国教育界开始吸收并实践这一教学方法。结合职业教育特点和Java语言在软件开发中的广泛应用,在此课程的讲授过程中,案例驱动始终贯穿其中。

2.1 准备阶段

首先参照企业软件开发模式(项目组)将学生划分成小组,确定组长后,由各组组长进行管理。然后根据学生语言基础能力和兴趣,确定企业实际项目。

2.2 实施阶段

根据Java程序设计大纲所规定的能力单元,将项目切分,渗透到各个相关知识点的讲授中。例如在讲授面向对象基础知识时,有了继承、封装、多态的概念继承,讲到类的定义,就可以要求学生将实际项目中所涉及的各个class文件创建出来,为后期开发做准备。后面讲授多线程、I/0流、图形界面、网络编程、数据库操作等,在实践练习环节都引入实际项目的分模块开发,从而提高教学的深度和广度,在一定程度上也激发学生的积极性和知识扩展性,充分调动学生兴趣,提高教学质量。

2.3 检查阶段

在整个教学过程结束后,一个较完整的项目就开发出来了。对此,小组组长要对各组员的项目结果进行检查,教师要对各小组的项目质量进行检查。工作结果要按照预定的目标来进行自我和相互的检查并判断达到的效果如何。此过程锻炼学生的责任心、质量意识及评估方法。同时,教师除对工作计划以内的内容进行检查外,还应对质量保证情况进行检查。

2.4 评估阶段

最后,学生完成工作评定,教师完成最终评估。首先学生自己对所做的工作进行工作评定,包括项目的准备、项目实施过程中解决的各种疑难问题、自己所负模块的效果等各方面进行总结;然后指导教师进行最后的工作总结、成绩评定,并找出差距和改正办法。

3 加强实践教学环节的实施与监控

根据《Java程序设计》课程的特点,在授课过程中,着重突出学生动手能力的培养,因此该门课程的理论和实践课时比为1:1。但通过听取其他同事对java课程的讲授和对学过java课程的学生的调查,发现很多教师在授课过程中,虽然加重了实践课时的比例,由于对实践环节的落实和监控力度不够,最终导致学生的动手能力没有得到很大很好的提高和改善。因此在教学过程中一定要切实落实实践教学环节的展开,并在实践教学环节中加强学生实践练习的过程和结果的监控反馈力度。采取分组管理的方式,由教师对组长,组长对小组成员进行监督、控制的方式,切实保证教学实践环节人人参与的目标。最后组长要根据各组实践练习情况写出书面总结报告,教师根据各组情况针对集中存在的问题进行反馈。

4 总结

《Java语言程序设计》己经成为高职高专院校计算机专业的一门重要的专业基础课,面向对象的编程方法也是目前流行的一种编程思想.如何在高职高专院校开设好这门课,使学生通过这门课的学习,能够掌握当前主流的编程语言和编程方法,使他们真正做到学有所长,学以致用,使我们教学实践的目标。我们应该以就业为向导,以案例为驱动,培养学生的自学能力,锻炼他们解决问题和分析问题的能力,这种教学方式的教学效果很不错。

参考文献

[1]张哲,陈桂生.在Java语言教学中实施“项目驱动”教学法的实践探索[J].教育与职业,2007(18).

[2]李尊朝,苏军.Java语言程序设计[M].北京:中国铁道出版社,2002.

[3]宋平,工振.提高Java语言教学效果的探索与实践[J].沈阳农业大学学报,2006,8(4):693-695.

Java面向对象程序设计课后答案 第4篇

关键字:java 教学方法 问题 适应社会

中图分类号:G71 文献标识码:A 文章编号:1672-3791(2014)11(b)-0150-01

当今信息爆炸的时代,互联网软件的开发市场比较火热,从目前计算机编程开发来看大致可分为Java方向以及.net方向,Java的跨平台及高安全性等优点,使它更多地应用在互联网软件开发应用当中。作为计算机专业本科学生将要步入社会做计算机软件开发工作,但是在学校所学知识在实际的工作中可利用比较少,很多东西没有接触到或不了解,没有系统的掌握一门语言,所学知识片面、断章,导致很多计算机专业毕业生,在很长一段时间不能适应,投入软件开发工作。

该文主要分析Java面向对象程序设计课在学校教学环境中存在的问题,通过改进使计算机专业毕业生能更好地适应社会的需要。

1 《Java面向对象程序设计》教学中存在的问题

《Java面向对象程序设计》教学中出现的主要问题如下。

课堂的主要内容为语法,程序只是某一语句语法的示例或验证,而不是在实际当中的应用体现。教师练习的实例脱离实际,这样的教学结构和实例吸引不了学生的视线。大多数学生对程序设计也就毫无兴趣,上课也只作为任务来完成。学得被动,不知所措。主要是由教师多年在教学第一线工作,教学任务繁重,接触面窄导致的。很多老师每周20多节课,两门甚至三门课,整日忙于备课、上课环节当中。

学生兴趣低、无法调动其学习兴趣。在传统的教学中,教材上的例子基本上是一些常规的数学问题,上课用的也没什么变动,导致学生写程序不知道有什么用,学生书写实例代码一味的抄写,不重视、不注意为什么这样写,如果程序出错了,从老师写的代码中对照着查,不去思考,不看整个程序结构,没有主动可言。

学生上机时间少。没能及时巩固所学知识,理论知识学完,等到上机实践的时候很多程序忘得差不多了。当场再翻书查证,既浪费时间,又没效果。

程序调试能力差。许多学生虽拥有自己的电脑,但多数学生只是比较熟悉图形界面操作环境,不熟悉DOS操作环境,容易反写、少写、错写命令。例如javac classname.Java 写成 javac classname 或 classname.Java javac的情况经常出现。

计算机英语水平低。死记命令,看不懂出错提示信息,出错找老师,不去想出了什么错误,怎么解决。

学生实践环节脱离实际。所有实例问题基本是虚构出来的。大众化的理论问题,不能很好地适应我们的学生,学生没有操作感、参与感,只是一个简单的抄写代码过程。

2 教学改革

为了更好地学习《Java面向对象程序设计》课程,培养适应社会的人才,结合学校的实际情况,呼和浩特民族学院针对以上问题作出教学改革从以下几方面进行。

(1)所有程序设计类课程调到计算机机房上课,保证人手一台计算机。在上课的同时学生就能练习验证所学知识,以提高掌握知识的效率。

(2)从新拟定教学计划,将《Java面向对象程序设计》课分为理论及实践两个大环节,学时数各占一半。具体实现过程是把上课时间分成讲授演示和实践练习部分,老师讲授时使用多媒体教学软件实时播放演示内容,所需时间控制在15~25 min之内,其余时间安排学生练习、巩固过程,此时老师可以针对性地辅导、改正学生错误,发现在该内容中容易出现混淆的概念、出现错误的点,修正教学重点,以便更好地教学。

比如调试程序书写的DOS命令,javac及Java命令的错误使用,类的扩展名写不写等问题,都可以在该环节中得到解决。

(3)专门开设《计算机专业英语》课,呼和浩特民族学院是以蒙古族大学生为主,因为英语在高考中考取普通本科院校才算进总分,参加蒙受院校招生中只是参考分,所以高中时得不到足够重视,学生的英语水平普遍比较低下。要想在大学四年学好英语对我们学生有一定的难度,但是开设《计算机专业英语》可以针对性地着重学习计算机领域使用到的英语,提高阅读程序的能力。开设这门课以后,很多学生能理解程序出错的英文提示,修正代码范围就缩小了,能完成简单错误的查找与修改。

(4)开办校企合作专业,请企业工程师讲课。实例不切实际是教学的很大缺点,因为企业工程师与高校教师相比有丰富的软件开发实战经验,从企业工程的讲课中学生能确切知道在企业项目开发中使用java我们可以解决一些什么问题,具体怎么完成的。我们又让学生去企业实习,亲身体验团队开发环境,能快速适应实际软件开发工作。否则我们学生毕业找不着工作或即使找到工作也不适应企业软件开发环境,不能快速投入工作当中。

(5)考核方式多样化。理论课一闭卷纸质题目,主要考概念、关键知识为主,实验课成绩以项目实战结果来评定,开学初期以3~6人组成一队,布置一个项目,让他们按照软件工程的要求完成整个开发的过程,项目的社会调查、可行性报告、需求分析、详细设计、代码撰写、测试等都要形成规范的文档。学生可以在学习过程中不断完善,期末提交项目结果。这样可以培养学生团队合作精神,并能比较系统地掌握一门程序设计语言。

(6)学校、系范围定期举办程序设计大赛,既增加学生的学习兴趣,又对参加全区、全国程序设计大赛打好基础,锻炼学生的实战能力。

3 结语

《Java面向對象程序设计》课程在高校计算机专业占有重要的地位,又是目前软件开发主流软件之一,我们必须紧跟时代的步伐,不断更新教学观念和教学内容,探索新的教学方法和手段提高教学质量,最终达到综合素质高,适应能力强,够适应社会需求的高标准计算机专业人才。

参考文献

[1]李颖.《Java程序设计语言》教学改革的探索与实践[J].中国新技术新产品,2010(1):238.

[2]向模军,刘松青.Java教学的探讨和实践[J].计算机与信息技术,2008(3).

[3]秦靖伟.JAVA教学方法改革与实践[J].产业与科技论坛,2011(11):139-140.

Java面向对象程序设计课后答案 第5篇

Oriented object Programming in JAVA 编号: 08065121

适用专业:计算机科学与技术、网络工程 学时数:32 学分数:2 执笔者:田小玲 编写日期:2009年11月

一、课程的性质和目的

本课程是为计算机科学与技术以及网络工程专业本科生开设的专业选修课,是一门面向对象的编程语言,通过本课程的学习,培养和提高学生面向对象程序设计的能力和Java语言在web开发中的应用能力。

二、课程教学内容

第一章 面向对象软件开发概述(2学时)1.内容

面向对象问题求解的提出、面向对象问题求解的概述、对象、类与实体、对象的属性与相互关系、面向对象的软件开发过程、面向对象程序设计方法的优点、开发环境设置及开发工具简介。

2.要求

(1)了解:面向对象软件开发概述,面向对象的软件开发过程及面向对象程序设计 方法的优点。

(2)掌握:对象的属性与相互关系,对象、类与实体的基本概念。(3)熟练掌握:开发环境设置及开发工具简介(补充)。3.重点

对象、类与实体的基本概念。

4.难点

面向对象程序设计方法的理解。第二章 Java概述(2学时)1.内容

Java语言的特点、Java虚拟机及垃圾回收机制、JDK目录结构、Java 的API结构及Java程序结构、第一个Java Application程序、第一个Java Applet程序、图形界面的输入输出、字符界面的输入输出。

2.要求

(1)了解:Java语言的发展历史及特点,Java Application程序及Java Applet程 序,图形界面的输入输出,字符界面的输入输出。

(2)掌握:Java语言实现机制(补充),Java体系结构(补充)。(3)熟练掌握:Java Application程序的结构。3.重点

Java Application程序的结构。

4.难点

Java语言实现机制。

第三章 Java语言基础(2学时)1.内容

数据类型、变量与常量、表达式、流程控制语句。2.要求

(1)了解:java语言的发展。

(2)掌握:数据类型、变量与常量的定义及使用。(3)熟练掌握:表达式的使用,流程控制语句。3.重点

表达式的使用,流程控制语句。

4.难点

流程控制语句的运用。

第四章 抽象、封装与类(6学时)

1.内容

抽象与封装、Java的类、类的修饰符、域、方法、访问控制符。2.要求

(1)了解:抽象、封装概念,系统定义的类。

(2)掌握:类的修饰符(abstract和final),域(包括静态域、静态初始化器、最终域和易失域),方法(包括抽象方法、静态方法、最终方法)。

(3)熟练掌握:用户程序自定义类及创建对象与定义构造函数,访问控制符(包括public、缺省访问控制符、private、protected)的运用。

3.重点

自定义类、创建对象与定义构造函数。

4.难点

四种访问控制符的运用。第五章 继承与多态(4学时)1.内容

Java的继承、多态、Java的重载、构造函数的继承与重载、包及接口的概念。2.要求

(1)了解:继承及多态的概念,Java接口的概念。(2)掌握:Java的方法重载,包的创建及引用。(3)熟练掌握:构造函数的继承与重载。

3.重点

方法的重载、类的继承。4.难点

属性的隐藏、方法的覆盖。第六章 工具类与算法(2学时)

1.内容

语言基础类库(包括Object类、数据类型类、Math类及System类)、Applet类与Applet小程序、数组。

2.要求

(1)了解:Applet类与Applet小程序。(2)掌握:Java语言基础类库。(3)熟练掌握:数组的声明及初始化。3.重点

数组的声明及初始化、数组的应用。4.难点

编写Applet小程序。

第七章 图形用户界面的设计与实现(8学时)

1.内容

图形用户界面概述、GUI标准组件概述及布局设计、Java的事件处理机制。2.要求

(1)了解:图形界面组件之间的层次关系、容器的概念和作用。(2)掌握:图形用户界面程序的基本结构。(3)熟练掌握:事件监听机制。3.重点

图形用户界面程序的基本结构。4.难点

Java的事件处理机制。

第八章 Java高级编程(6学时)

1.内容

异常处理、Java多线程机制、Swing GUI 组件、流式输入输出与文件处理、用Java实现底层网络通信、Java程序对网上资源的访问。

2.要求

(1)了解:例外的概念、Java中线程的基本概念、Java的线程类与Runnable接口及如何在程序中实现多线程、Java输入输出类库及文件的处理与随机访问、使用Java实现底层网络通信、Java程序对网上资源的访问。

3(2)掌握:例外处理机制。

(3)熟练掌握:Swing GUI组件的运用。3.重点

例外处理机制、Swing GUI组件的创建。

4.难点

自定义异常类。

三、课程教学的基本要求

课程教学的基本要求包含三项:上机环节、作业要求、考试方式。1.上机环节

根据课堂讲授的理论,并结合上机操作让学生及时掌握每章节所学的知识,通过实操可加深学生对面向对象程序设计的思想及Java程序设计的领会。

2.作业要求

(1)作业要求:独立思考完成、书写工整、按时交(2)作业量:每次课均布置作业,作业量约2~3题(3)总作业量:约30~40道题 3.考试方式

(1)考试方式:闭卷笔试(2)评定成绩要求:

总成绩=平时成绩×30%+考试成绩×70%

四、本课程与其它课程的联系与分工

1.前期课程:

程序设计基础、计算机网络、C语言程序设计、C++程序设计 2.后续课程:

软件工程、Web应用程序开发

五、建议教材与教学参考书

Java面向对象程序设计课后答案 第6篇

《Java面向对象程序设计语言》课程设计(实验)指导书

一、对学生的基本要求:

1、理论联系实际、严肃认真、实事求是的科学态度和勇于探索的创新精神。

2、运用所学基础理论与专业知识分析和解决实际问题,培养独立思考完成任务的能力。

3、运用Java面向对象程序设计方法、标准与规范开发小型应用软件系统。

二、设计的要求及内容及要求:

应用Java面向对象程序设计语言开发小型应用软件系统。可以从给定的选题中选择一个课题或自拟课题(自拟课题需经指导教师批准),完成系统分析、设计和开发。

具体要求如下:

(1)针对你所选择的系统进行需求分析,写出系统的功能要求,设计的应用程序应具有的功能要素。

(2)程序代码应符合教学中应该具有的规范要求,类名、方法名,属性名称应与设计中实际的应用含义相符,程序中具有相应的注释。(3)程序的界面要合理、美观。

(4)每人最终提交一个可行的应用软件程序和规范的课程设计说明书。说明书应严格按照说明书的要求,格式清晰、规整。并提交所设计程序的电子文档。

三、设计进度: 1、17周周一~周二:选题,系统的需求分析。分析并规划你所设计的系统应达到的功能,满足什么样的要求。2、17周周二~周四:系统设计。分析要达到你所要求的功能需要编写什么类,规划类的层次结构,设定好类明、方法名、属性名;规划你所设计的系统应具有什么样的界面布局。查阅资料帮助自己规划好你的系统。3、17周周五~18周周二:程序设计。根据自己所规划的程序进行具体代码设计,代码设计要符合程序设计的规范要求,注意程序的编写格式。4、18周周三:程序测试。对自己所规划的程序进行测试,看是否有异常及程序Bug出现,并进行调试修正程序代码。5、18周周三:编写课程设计说明书。按照本指导书要求格式编写程序设计报告(见附件)。6、18周周四上午交所设计程序的电子文档,和课程设计说明书的电子文档。7、18周周四~周五:成绩评定。等待指导老师提问答辩。

四、选题

根据自己的爱好从以下题目中选择一个题目进行设计。

1、设计题目:学籍管理系统

设计目的:设计一个学籍管理系统,保存所有学生信息。

第1页 设计要求:学籍管理系统一般包括学生的基本信息,如,学号、姓名、班级、籍贯、联系电话、学生成绩等;能够添加、查找、删除学生信息等功能;程序执行时候,需要从文件中导入数据,程序推出后再将数据保存到文件中。

2、设计题目:出版物管理

设计目的:对出版物书籍、CD或者磁带进行管理。

设计要求:使用图形界面的方式,对书籍、CD或者磁带的基本信息进行管理。

书籍界面包括:书籍的名称、书籍的价格、书籍的出版社、书籍的作者、书籍的ISBN、及书籍的出版日期等;可以通过选择菜单来进行书籍信息的添加、修改和删除等,所有的书籍信息会显示在一个列表组件中,当某本书籍的信息改变时,列表中会相应的进行改变。CD界面包括:CD的名称、CD的价格、CD的出版社、CD的演唱者、CD的发行者、CD的ISRC等;可以通过选择菜单进行CD信息的添加、修改和删除,所有CD信息会显示在一个列表组件中,当某张CD的信息改变时,列表中会相应的进行改变。

磁带界面包括:磁带的名称、磁带的价格、磁带的出版社、磁带的演唱者、磁带的ISRC等;可以通过选择菜单进行磁带信息的添加、修改和删除,所有磁带信息会显示在一个列表组件中,某张磁带的信息改变时,列表中信息会相应的进行改变。

3、设计题目:Java程序编辑器

设计目的:设计一个Java程序编辑器,能够进行简单的文字处理。

设计要求:类似一个Windows系统的记事本,能够实现打开、保存文件;查找、替换字符串;定时自动更新文件,并创建备份文件;将Java的关键字以不同颜色或不同字体显示。

4、设计题目:设置日期时间属性

设计目的:设计类似Windows系统中“设置日期时间属性”的窗口及功能,综合运用各种组件、日期类、日历类、线程等内容。

设计要求:设计类似Windows系统中“设置日期时间属性”的窗口及功能,设计相似界面,实现日期和时间的多种运算和显示,保证运算正确性。

5、设计题目:交通信号灯的线程设计

设计目的:使用多线程设计,同步机制设计一个交通信号灯。

设计要求:设计线程;设计路口信号灯示意图界面;进一步将两个方向的信号灯分成3种车道灯:左转、直行和右转;根据车流量进行时间的模糊控制。

6、设计题目:聊天程序

设计目的:图形界面与Socket通信及输入/输出流的综合运用。

设计要求:设计一个图形界面,以Socket通信机制实现类似QQ的网络聊天程序,该聊天程序最少可以达到两个人聊天,并可以保存聊天的内容。

7、银行贷款多种还款方式的计算

设计目的:图形界面与算法设计。

设计要求:设计一个图形界面,在界面上能够实现的实际贷款和还款的一般规则(参照教材P409)。

第2页

8、日历组件

设计目的:图形界面与算法设计。

设计要求:自定义一个日历组件:显示当月日历、当前日期、上/下日历等,界面样子参照教材P409。

9、地址薄管理器

设计目的:图形界面与输入/输出流和文件操作。

设计要求:设计一个存储朋友电子邮件地址及电话号码的地址薄应用程序,界面自行设计(也可参照教材P411)。

(1)设计一个人员类,成员变量包括类别、姓名、电话号码和邮件地址等,成员方法包括插入、移动、删除、更改类别等。所有人员信息保存在以对象为单位的记录文件中,以对象流实现数据读取和保存功能。

(2)设计图形用户界面,在此界面上可实现针对朋友电子邮件和电话号码的各种操作(可参照教材P411)。

(3)添加主菜单和快捷菜单,实现插入、删除、移动等功能,快捷菜单会根据当前组件自动执行不同对象的插入、删除、移动等操作。

10、搜索文件

设计目的:图形界面与输入/输出流和文件操作。

设计要求:参照Window的资源管理器,给特定搜索文件名的部分字符,在制定的范围内搜索文件,显示搜索结果的文件名列表、文件路径及文件属性。

其他选题,需征求指导教师同意,由指导教师根据拟定的题目难度给予相应的评分标准。

五、考核内容及分值分配

1、课程设计说明书。(30分)1)正文:(手写课程设计报告4页以上)(20分)(1)、概述

包括项目背景、编写目的、软件定义、开发环境、所用的知识等内容。

(2)、功能说明

问题陈述、需完成的功能。

(3)、程序类说明

定义的类、接口等的名称,并将其在程序中起到的作用进行简要说明,并根据面向对象程序设计的原则画出类的层次关系图。(4)、软件系统测试说明

对你所设计的软件进行使用测试,列举该软件出现的问题和不完善的地方。

(5)、用户使用说明

将所设计的软件能够达到的功能进行描述。2)结束语:(5分)

第3页 写出完成本课程设计的心得,有哪些收获。软件还需要哪些改进。3)参考文献:按照要求格式写出你所参考的文献资料。(5分)

2、开发的应用软件系统(60分)1)程序代码的格式(10分)

代码格式是否规范,是否有相应的注视,程序类名、方法名、属性名是否具有可读性。2)程序界面设计(10分)

界面设计布局是否合理美观,操作是否简单方便。3)程序功能(40分)

程序功能是否达到了你所选系统的要求。基本满足可得24~28分;完全满足可得28~32分;完全满足并能够进行相应的异常处理可得32~40分;如果在此基础上还能进行相应创新可根据创新的程度进行适当加分。

3、答辩及课程设计说明书资料归档规范性(10分)

注:每个学生都要独立完成一个题目,如发现雷同者,对所有雷同学生按照不及格处理。

附件:说明书(论文)格式(可以参照论文范例)2.说明书(或论文)结构及要求

(1)封面(由商学院统一发课程设计封面纸)(2)任务书(由指导教师填写)(3)目录

以上内容由指导教师统一下发。(4)正文:(4页课程设计报告纸以上)1)、概述

2)、功能说明 3)、程序类说明

4)、软件系统测试说明 5)、用户使用说明(5)结束语

(6)参考文献(资料)

参考文献必须是学生在课程设计中真正阅读过和运用过的,文献按照在正文中的出现顺序排列。各类文献的书写格式如下: a.图书类的参考文献

序号 作者名·书名·(版次)·出版单位,出版年:引用部分起止页码。b.翻译图书类的参考文献

序号 作者名·书名·译者·(版次)出版单位,出版年:引用部分起止页码。c.期刊类的参考文献

序号 作者名·文集名·期刊名·年,卷(期):引用部分起止页码。

第4页

(7)附件

可以根据说明需要将设计界面及相关其他材料附在此处,也可以没有。

Java面向对象程序设计课后答案 第7篇

经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。

在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。

学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。

Java思想:Java是一门面向对向语言,他定义一切都是对象

面向对象,就是面对现实;

现实中的一切都是对象,他们有分类,就产生了“类”;

他们有不同,类和类之间的不同,使用类来区分;

同一个类中不同的对象的区别,使用成员区分。所以,面向对象的内部逻辑是分类。

面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等

原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。

面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。

我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对!

我的理解:

1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),直到无法再细;

2、对每个对象(小问题)进行分析,抽象,提取处共同的内容(数据成员和操作方法),3、有相似的对象的,构造基类;再有基类派生出各个确定的对象(小问题);

4、解决问题的过程就是操作这些对象的过程。

我的理解:

与实际生活联系起来。

将要处理的„问题‟抽象成一个或多个„事件‟

找一个地方使用我的智慧

1。了解系统的功能。列举出它的对外接口,即对于使用者来说它有什么功能。把这整个系统作为一个对象。

2。环境。系统不是运行在真空中的,操作系统等外部环境都可能会影响它。所以把环境也作为一个大的对象。

3。内部。在系统的内部,一般都比较复杂,一般的做法是规定一个粒度,枚举出该粒度上所有的物体。比如说人体,如果在器官的粒度上,就有心,肝,肺。而小于该粒度的物体(或称对象),比如血细胞,就忽略,作为其它物体(或称子系统的内部对象)。

4。子系统。不断缩小粒度,沿用步骤1~3,直到不能再抽象为止。

5。无形的物体。一个完整的互连的系统需要许多无形的物体,比如消息等了,一般这样的对象比较难发现。当你发现各个子系统无法正确合作或理顺关系时,试着加入一些辅助对象。一切都是为了让人明白,有能让机器理解的思想

我想分析和抽象能力的高低是个关键,首先要从问题域分析和抽象出准确的对象模型,再根据这些模型进行处理,当然在过程种少不了楼上前辈们说的一些思想和细节,但是别忘了,我们的目的是解决问题,不要为了面向对象而面向对象!

我想分析和抽象的能力对这个问题是个关键。首先要在问题域仔细分析、抽象得到相关的对象模型,然后才是相应的设计。可是面向对象只是我们解决问题一种思想,切不可忘了问题本身,弄成为了面向对象而面向对象了!当然过程种少不了楼上一些前辈说的思想和细节了。

耕具我多年的实践:面向对象包括两个思想:

从大往小想,从小往大做

从难往易想,从易往难做

同意一下观点-----能深入浅出,真高手也!

真正的面向对象编程思想就是忘掉一切关于计算机的东西,从问题领域考虑问题, :-)把问题从大到小都抽象成对象(指针只是对象的使用形式),在设计和编写程序的时候把你设计的对象合理的编排组合就是面向对象编程了。

面向对象,就是面对现实;

现实中的一切都是对象,他们有分类,就产生了“类”;

他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。

对象:

对象是人们要进行研究的任何事物,从简单的一个小分子到复杂的汽车飞机都可以看做对象,只是有时对象要根据人们研究问题的需要来确定,对象不一定是具体的,有时也可以表示抽象的规则或计划。

类:

Java面向对象程序设计课后答案 第8篇

应用型本科计算机科学与技术专业软件服务外包方向的教学目标之一是培养学生熟练的编程能力, 而这种能力是建立在扎实的专业课学习的基础上的。Java程序设计基础作为该方向的专业基础课, 其作用举足轻重。该课程设置主要是为激发学生编程兴趣, 建立面向对象的程序设计思路和编程思想, 锻炼独立分析问题、解决问题的能力。实践表明, 构建清晰的面向对象程序设计思想是培养专业化编程素质的重要基础。

本文根据软件服务外包专业课程建设现状, 提出以“建立面向对象思想”为中心的Java程序设计基础课程教学改革方案, 对该课程的整个教学过程进行思考和探索。实践表明, 改革对学生建立面向对象思想和掌握扎实的专业基础知识起到了积极作用。

二、目前教学中存在的主要问题

Java程序设计基础作为软件服务外包方向的专业基础课, 已在长期的教学实践中积累了丰富的教学资源, 取得了一定的教学成果。但不可否认, 该课程在内容设置、理论和实践教学过程中存在一些问题, 具体表现如下。

1. 课堂教学多以教师讲授为主, 教学方式单一, 整体授课思路仍为面向过程的思想。

绝大多数Java教材以面向过程的思路编排和组织内容。教师重视学生对语法的理解和掌握, 需要半学期的时间专门讲授语法, 程序的功能主要在主函数中完成, 直到后半学期才开始讲授面向对象思想。这样导致学生在程序设计时重视模块的功能实现、缺乏对类和对象的整体设计思路, 仍是以面向过程的方法解决问题, 不善于运用面向对象的思想思考和分析问题。

2. 课外学习量严重不足。

在以往的教学环节中, 设置了必要的实践课作为提高学生实践能力的手段, 但仅仅完成实践课的任务, 对于学深、学精一门语言来说是远远不够的。在布置和检查学生课外学习任务方面, 缺少必要和有效的方法手段, 学生自主学习能力较弱。

3. Java课程群建设不完善, 专业课之间的衔接不紧密。

在教学过程中发现很多学生能够扎实地掌握单独一门专业课, 但在以后的新开课或综合设计中却力不从心, 原因:一是大部分学生不注重平时知识的积累, 处理问题不能灵活应用。二是在新课开设之前要经过漫长的假期, 而学生对前一课程知识点的遗忘率很高, 后续课程中又无法给予相应的教学安排和时间, 这导致课程之间前后脱节, 影响到学生应用能力的提高。

4. 考核手段单一。

目前对学生的考核主要以期末成绩和平时实践表现为主, 这就使考核的重点集中在检测基础语法知识和简单算法等方面, 忽视学生在自学能力、提出问题、独立分析和解决问题、专业合作精神方面的考核, 而这些综合素质不论对后续课程的学习还是工作岗位实战都是必不可少的, 因此需要建立多层次、多方位的考核评价指标, 从专业技能、综合能力等多维度考核学生。

三、课程教学改革方案

本文从教学内容、教学方式方法、教学运行组织三方面进行教学改革探索。

1. 教学内容。

Java程序设计基础课程教学计划为理论和实践各32课时。在整个教学内容的组织上, 将紧密围绕以“建立面向对象思想”为中心的教学体系, 具体课程教学内容安排如下。

(1) Java工作方式及运行环境。理论和实践各2课时。主要对Java运行环境进行简要介绍, 讲解环境变量的作用并能够正确配置。使学生理解Java“一次编译、到处运行”的工作特点。

(2) 类的结构及特点。理论和实践各4课时。根据现实生活中存在的事物引入对象的概念, 再从具有相同或相似属性的客观对象中抽象出类别的概念, 将其归为一类来研究。使学生沿着从对象到类这样直观的感性认识建立对象和类的基本概念。再引导学生学习和思考Java语言是如何描述对象和类的。这样可以使学生沿着从类到对象的理性分析进行类的设计, 从而为学生搭建好Java编程的基础结构。

(3) 程序的三大结构。理论和实践各20课时。在顺序、选择和循环结构的讲授中, 传统的编程方式是将代码放在主函数中, 其体现的是面向过程的编程思路, 不利于学生面向对象编程思想的培养。因此, 对三大结构的讲授, 在注重语法细节的同时, 重点是将面向对象的思想渗透于三种结构中。针对实际案例, 首先要引导学生进行类的设计, 分析成员变量的构成和方法的功能, 再实现具体的逻辑功能。这样, 通过大量的案例分析、课堂讨论和课下练习, 使学生能够透彻理解并正确运用面向对象思想分析和解决问题。

(4) Java常用类的使用。理论和实践各6课时。介绍简单而实用的常用类。使学生能够使用JDK帮助文件实现较复杂的程序功能, 从中学习和欣赏Java专家设计和编写类的思路和技术, 提高面向对象的编程能力。

2. 教学方式方法。

良好的教学方式方法会强化教学效果, 提高教学质量[1]。因此, 针对不同的教学内容并结合学生实际情况, 所采用的教学方法应丰富多彩, 不拘一格。

在教师讲授环节以案例分析式授课方法为主, 教师要根据授课内容, 精心设计趣味案例, 再根据本堂课知识的特点, 辅助以任务驱动式和实物类比化等授课方法。尽量将抽象的概念转化为易于学生联想和对比的事物, 强化理解。

课堂讨论是对传统理论教学的有效补充, 是促进学生主动学习的有效手段[2,3]。在讨论课上, 以问题导向式和小组讨论式方法为主。教师需要精心设计问题, 确保题目难易适中, 激发学生兴趣。预设的问题深入浅出, 使知识点新颖别致。对于较大的问题, 可以引导学生将其拆分为小问题, 再逐一攻破。课堂上适时将问题抛给学生, 将题目及相关背景描述清楚, 给学生适量的讨论时间。讨论结束后每组提交算法思路或解题方案, 再由教师进行总结, 对积极思考和有创新点的学生给予肯定和鼓励。学生在独立思考问题的基础上获得新知识, 必然会加深理解, 从中体会到解决问题带来的喜悦, 进而提高学习的主动性。

Java程序设计基础课程的实践环节分为两方面:一是课堂实践, 即和每次理论教学相配套的上机训练。目的是通过有针对性的练习, 巩固和加深对所学理论知识的理解。二是项目实践, 是对所学知识的综合训练。目的是通过完成一个完整的小型项目, 使学生全面掌握类的设计, 理清类之间的关系, 能够灵活应用所学知识。

3. 教学运行组织

针对不同特点的教学情景, 采取配套的组织方式, 具体实施办法如下。

(1) 课堂讲授。对于具体的知识点或语法的讲授, 可以采用任务驱动和案例分析方法。由教师提出任务或案例, 可以先采用非编程方式解决, 再引入Java中解决此问题的新知识点, 进行剖析后解决问题, 使学生体会Java语言在解决此类问题中的优势, 这样不仅使学生初步掌握了具体知识, 还对知识的应用环境有所了解。比如讲解静态变量的特点时, 可以提出一个分苹果的游戏, 假设人民公社拥有若干苹果, 个人有一些苹果, 给定苹果的分配规则后, 个人要依据分配规则决定是交出自己的一些苹果给公社或是从公社中获取苹果。在准确描述游戏后, 启发学生思考能否利用已学知识同时表示公社苹果数和个人苹果数, 从而引入静态变量的概念。另外, 在讲授过程中, 教师可故意设置一些错误, 引导学生发现和纠正, 使学生在错误中学习、成长。

对于面向对象思想和应用的讲授, 可以采用实物类比化方法。任何事物都是对象, 面向对象的思想从现实生活中来, 在讲授时要回到现实事物中去, 这样可加深学生的理解。例如在讲授类的设计、对象的创建和对象的使用时, 可以类比汽车图纸 (类的设计) 、宝马汽车 (创建对象) 、宝马加速减速暂停 (对象的使用) , 类比语文中“主、谓、宾”的句子结构。只是在Java中将对象作为主语、函数作为谓语、函数参数作为宾语, 引导学生将日常思维通过编程语言来表达, 比如“宝马要加速”这句话, 用Java编程实现就是宝马对象调用加速方法, 结果是修改宝马的成员变量:速度。这样可以使学生体会到Java的生动性和实用性, 而并非枯燥难懂, 从而提高学习兴趣。

(2) 课堂讨论。在以小组讨论或学生演讲为主的课程教学环节, 主要采用问题导向式方法。一学期安排至少5次的讨论和演讲教学。讨论或演讲内容包括: (1) 现实中的事物到程序中类的转化思路。 (2) 具有选择结构和循环结构的问题特征及相关算法讨论。 (3) 实际问题中的对象状态变化展示 (学生演示为主) 。 (4) 学生成绩管理系统设计思路。 (5) 现实生活中的各种异常和处理方法。所讨论问题没有标准答案, 多以面向对象思想分析问题构成和描述解决思路。比如学生成绩管理系统的设计, 讨论过程中要求学生详细描述需要设计哪些类, 每个类的作用, 具体用到的成员变量和成员方法的解释说明, 讨论或演讲时间控制在20分钟。在讨论过程中, 要求学生及时记录分析思路、过程收获, 最后以报告形式提交。教师要认真批阅学生的过程报告, 对其中独特的解决思路给予表扬, 对分析能力逐渐增强、表达日益通顺的学生给予充分肯定, 开发学生的学习潜能。

(3) 实践环节。CDIO教育理念倡导“做中学”, 让学生以主动的、实践的方式学习工程[4]。本课程在整个实践教学的各个环节以此为导向, 切实提高学生的动手能力和应用能力。

在课堂实践环节中, 教师要选定合适的练习题目, 这些题目不仅要起到巩固、熟练基础知识的作用, 更重要的是要启发学生思考, 使学生通过模拟、类比等多种方式主动学习, 尽量从自己理解的角度说明一些基本概念的作用, 而非只是重复书中给出的定义, 力求使学生给出的答案是经过自身思考并总结的结果。例如定义一个变量存储百分制数学成绩, 要求变量占用尽量少的内存空间, 该变量定义成何种数据类型。列举现实生活中具有选择结构、循环结构特征的问题。对于一些实际问题, 需要逐步引导学生分步解决。例如对于实现“统计一行字符串中有多少个单词, 每个单词之间用空格分隔”这个功能, 需要提示学生设置一个计数器来统计单词个数, 初值为0。遍历该字符串的每个字符, 当遇到新单词的首字母时, 计数器加1。再启发学生将字符串中的所有字符分为三类, 要求学生用自然语言描述出三类字符的各自特征及对每类字符所作的处理, 直到讲授完循环结构, 要求学生编程实现此功能。另外, 教师可鼓励学生自己提出练习题目, 将常见的数学问题通过计算机算法解决, 并将部分优秀的习题提供给其他学生分享。

项目实践在学期末进行。以小组的形式完成整个项目, 每组4人, 项目题目要由所有组员反复讨论, 保证题目的实用性, 确保实践内容能够涵盖所有重要知识点。题目最终要经过指导教师的审核。在实训过程中各位组员合理分工, 分别完成对项目的需求分析、模块功能划分、类的设计及算法实现。指导教师要定期参与其中, 提供必要的指导和交流, 检查项目进度。实训结束后, 要求每组提交项目代码, 个人总结一篇, 小组报告一篇, 并进行小组答辩。由指导教师评定并给出改进意见。

(4) 课外学习。

爱因斯坦说:“人的差异在于业余时间。”强化课外学习是巩固专业知识的必然途径[5]。课堂教学只能使学生对专业知识有基本的了解, 如果想要将编程语言学深、学透, 则大量的工夫要花在课下。针对课程特点和本专业学生的实际情况, 必须增大学生课外学习量。课外学习可以通过课程网站、习题集和项目作业来实施。教师在Java精品课程网站上建立Java学习的相关视频、Java语言发展的历史和逸事、历年Java等级考试的相关资料和学生大作业作品展示, 通过这个平台, 学生既可以及时获得Java学习的相关资料, 又可以共享和学习其他同学的作品成果, 进而提高学习兴趣。在每个学习阶段, 教师需要布置和所学内容相对应的课后习题和项目作业, 要求学生给出项目实现思路、实现过程和收获体会, 记录项目完成时间。在方式上, 可以采用个人独立完成或小组合作的形式。通过学习课程网站和完成项目作业, 并进行有效考核, 必将能够使学生的课外学习量大大增加。

(5) 课程衔接。强化课程之间的链接机制, 进一步改进实践环节。针对学生在跨假期的课程之间知识点容易遗忘的特点, 可以在假期中开展一定的实践项目, 加强课程之间的链接。以Java程序设计基础及其后续课程Java面向对象编程为例, 可以在前序课程结束时布置假期实践作业, 作业内容不仅包括类的设计, 而且包括部分面向对象的高级应用, 这样学生在假期中不仅复习和锻炼了前序课程的重要知识点, 而且预习了后续课程, 对后续课程的基本轮廓有所了解, 更好地学习后续课程。

四、课程考核方案

课程考核成绩=期末成绩 (40%) +平时成绩 (60%) 。期末考试采取闭卷笔试的方式, 主要考查学生对基本知识点的掌握和面向对象编程思想的建立。平时成绩由四部分构成:一是上机课作业完成情况, 体现了学生的基础实践能力, 考核分为优、良、可、差四个等级, 上机课作业完成情况占总考核成绩的20%。二是项目实践完成情况, 体现了学生对Java语言的综合应用能力。首先由教师给出总分, 然后采取小组成员自评或互评的方式, 由组长分配每位成员的具体得分。考核分为优、良、可、差四个等级。项目完成情况占总考核成绩的20%。三是课堂讨论和项目演讲, 考核指标主要分为设计思想、类的描述、编程实现、表达技能、团队合作五大方面, 分为优、良、可、差四个等级。课堂讨论和演讲占总考核成绩的10%。四是课外资源利用率和课外作业完成情况, 反映了学生的自学水平和报告写作能力。需要考核每位学生对精品课程网站的浏览次数和利用率, 课外作业报告的完成质量。考核分为优、良、可、差四个等级。本项考核占总考核成绩的10%。

五、结语

本文通过探索多样的课程教学方式方法, 布置课外和假期实践项目, 建立多维的考核体系, 旨在提高教学质量, 使学生建立面向对象的编程思路, 灵活设计类和使用对象解决简单的实际问题, 进而增强成就感和自信心, 在良性循环中提高自主学习能力。

摘要:本文针对Java程序设计基础课程教学中存在的问题, 提出了以“建立面向对象思想”为中心的课程教学改革方案, 分别从教学内容、教学方法、教学运行组织和考核标准四方面进行改革探索, 旨在培养学生面向对象的思维方式和扎实的基础编程能力。实践表明, 改革对提高学生的Java应用能力起到了积极作用。

关键词:面向对象思想,课程教学改革,应用能力

参考文献

[1]王文冰, 李辉.以实例贯穿课堂的面向对象程序设计课程教学改革.计算机教育, 2011 (1) .

[2]汤亚玲, 秦峰.面向对象程序设计课程教学探究.安徽工业大学学报 (社会科学版) , 2008 (25) :6.

[3]梁婷婷.面向对象程序设计高效课堂的探索与实践.广西民族师范学院学报, 2013 (30) :3.

[4]张桦, 温显斌, 王劲松.基于CDIO模式的计算机专业教学改革.计算机教育, 2010 (6) .

java面向对象学习心得 第9篇

面向过程,顾名思义,其中心意义在于“过程”二字,比如你要吃饭,那么首先是要选地,播种,施肥,成熟,收获,煮饭,然后才能吃饭,那么面向过程就是从开始到结束,分析出解决问题的需要的每一个步骤,然后用函数将这些步骤一个一个实现,使用的时候一个一个一次调用就行了。

面向对象,同样的,你去饭店吃饭的时候,只需要对服务员说一句你要吃饭就行了,你不需要关心饭是怎么来的,这就是面向对象。那么面向对象就是把组成问题事务分解成一个个对象,建立对象不是为了解决一个步骤,而是用来描述某个事务在解决问题步骤中的行为。面向对象是以功能来划分问题,而不是步骤。

以上的解释来源于书上,对于初学者而言,这样的描述过于抽象,不能很好的理解。下面我举个具体的例子来说明。

从书面上来说,可能面向过程更好理解,但是其实面向对象更符合人们的思考习惯。比如外面去商场买衣服,那么商场的功能就是提供衣服,你不需要关心衣服是怎么来的,你只需要向商场提出你要买衣服的要求就可以。就那贪吃蛇这个游戏而言,对于面向过程:1、吃一个;2、绘制画面;3判断是否死亡,就这样依次调用函数,一个一个步骤进行。

而对于面向对象,建立三个对象:1、蛇;2、画面系统;3、规则系统。首先进行操作,然后将操作后的结果提交至画面系统进行画面绘制,绘制之后的结果提交至规则系统判断是否死亡。这样一招功能来划分问题。

从上面的解释来看,面向对象和面向过程依然难以区分,但是如果我要返回上一步,那么对于面向过程而言,从初始状态到判断是否死亡到现实画面可能都需要改动。而对于面向对象则只需要重新设计画面系统,在里面保存上一步的坐标即可,这里不需要涉及到规则系统和其他操作。

面向对象的功能划分保证了面向对象的可扩展性。比如我需要为贪吃蛇重新改写一套规则,在面向过程中,规则已经渗透到整个程序的各个角落,改写不如重写。那么在面向对象中,则只需要重新设计规则系统即可。

java面向对象的学习心得 第10篇

大三的时候学校组织我们去苏州NIIT参加四个月的java实训,我开始系统的学习期java,之前大学的时候学的比较宽泛,没有专门的正对java的学习。

首先我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的抵触情绪很强。

我对Java的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用OOP风格来写程序,然而还是经常会觉得不知道应该怎样提炼类,面对一个具体的问题的时候,会觉得脑子里千头万绪的,不知道怎么下手,一不小心,又会回到原来的思路上去。

举个例子,要发广告邮件,广告邮件列表存在数据库里面。倘若用C来写的话,一般会这样思考,先把邮件内容读入,然后连接数据库,循环取邮件地址,调用本机的qmail的sendmail命令发送。

然后考虑用Java来实现,既然是OOP,就不能什么代码都塞到main过程里面,于是就设计了三个类:

一个类是负责读取数据库,取邮件地址,调用qmail的sendmail命令发送; 一个类是读邮件内容,MIME编码成HTML格式的,再加上邮件头;

一个主类负责从命令读参数,处理命令行参数,调用发email的类。

把一件工作按照功能划分为3个模块分别处理,每个类完成一件模块任务。

仔细的分析一下,就会发现这样的设计完全是从程序员实现程序功能的角度来设计的,或者说,设计类的时候,是自低向上的,从机器的角度到现实世界的角度来分析问题的。因此在设计的时候,就已经把程序编程实现的细节都考虑进去了,企图从底层实现程序这样的出发点来达到满足现实世界的软件需求的目标。

这样的分析方法其实是不适用于Java这样面向对象的编程语言,因为,如果改用C语言,封装两个C函数,都会比Java实现起来轻松的多,逻辑上也清楚的多。

我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的,只要领会了这一点,就领会了面向对象的思维方法。

举一个非常简单的例子:假使现在需要写一个网页计数器,客户访问一次页面,网页计数器加1,计数器是这样来访问的后台有一个数据库表,保存每个id(一个id对应一个被统计访问次数的页面)的计数器当前值,请求页面一次,对应id的计数器的字段加1(这里我们忽略并发更新数据库

表,出现的表锁定的问题)。

如果按照一般从程序实现的角度来分析,我们会这样考虑:首先是从HTTP GET请求取到id,然后按照id查数据库表,获得某id对应的访问计数值,然后加1,更新数据库,最后向页面显示访问计数。

现在假设一个没有程序设计经验的人,他会怎样来思考这个问题的呢?他会提出什么样的需求呢?他很可能会这样想:

我需要有一个计数器,这个计数器应该有这样的功能,刷新一次页面,访问量就会加1,另外最好还有一个计数器清0的功能,当然计数器如果有一个可以设为任意值的功能的话,我就可以作弊了。

做为一个没有程序设计经验的人来说,他完全不会想到对数据库应该如何操作,对于HTTP变量该如何传递,他考虑问题的角度就是我有什么需求,我的业务逻辑是什么,软件应该有什么功能。

按照这样的思路(请注意,他的思路其实就是我们平时在生活中习惯的思维方式),我们知道需要有一个计数器类 Counter,有一个必须的和两个可选的方法:

getCount()// 取计数器值方法

resetCounter()// 计数器清0方法

setCount()// 设计数器为相应的值方法

把Counter类完整的定义如下:

public class Counter {

public int getCount(int id){}

public void resetCounter(int id){}

public void setCount(int id, int currentCount){}

}

解决问题的框架已经有了,来看一下如何使用Counter。在count.cgi里面调用Counter来计数,程序片断如下:

// 这里从HTTP环境里面取id值

...Counter myCounter = new Counter();// 获得计数器

int currentCount = myCounter.getCount(id);// 从计数器中取计数

// 这里向客户浏览器输出

...程序的框架全都写好了,剩下的就是实现Counter类方法里面具体的代码了,此时才去考虑具体的程序语言实现的细节,比如,在getCount()方法里面访问数据库,更新计数

值。

从上面的例子中看到,面向对象的思维方法其实就是我们在现实生活中习惯的思维方式,是从人类考虑问题的角度出发,把人类解决问题的思维方式逐步翻译成程序能够理解的思维方式的过程,在这个翻译的过程中,软件也就逐步被设计好了。

在运用面向对象的思维方法进行软件设计的过程中,最容易犯的错误就是开始分析的时候,就想到了程序代码实现的细节,因此封装的类完全是基于程序实现逻辑,而不是基于解决问题的业务逻辑。

学习JDBC编程的经典错误问法是:“我怎样封装对数据库的select操作?”

面向对象的设计是基于解决业务问题的设计,而不是基于具体编程技术的设计。我不会去封装select语句的,我只封装解决问题的业务逻辑,对数据库的读取是在业务逻辑的编码实现阶段才去考虑的问题。

回过头看上面那个发广告邮件的例子,应该如何应用面向对象的思维方法呢?

对于一个邮件来说,有邮件头,邮件体,和邮件地址这三个属性,发送邮件,需要一个发送的方法,另外还需要一个能把所有邮件地址列出来的方法。所以应该如下设计:

类JunkMail

属性:

head

body

address

方法:

sendMail()// 发送邮件

listAllMail()// 列邮件地址

用Java来表示:

public class JunkMail {

private String head;

private String body;

private String address;

public JunkMain(){ // 默认的类构造器

// 从外部配置文件读邮件头和邮件体

this.head=...;

this.body=...;

}

public static boolean sendMail(String address){

// 调用qmail,发送email

}

public static Collection listAllMail(){

// 访问数据库,返回一个邮件地址集合}

}

当把JunkMail设计好了以后,再调用JunkMail类完成邮件的发送,将是非常轻松的事情。

如果说传统的面向过程的编程是符合机器运行指令的流程的话,那么面向对象的思维方法就是符合现实生活中人类解决问题的思维过程。

在面向对象的软件分析和设计的时候,要提醒自己,不要一上来就去想程序代码的实现,应该抛开具体编程语言的束缚,集中精力分析我们要实现的软件的业务逻辑,分析软件的业务流程,思考应该如何去描述和实现软件的业务。毕竟软件只是一个载体,业务才是我们真正要实现的目标。

但是在设计过程中,心里却往往在担心,如果我完全不去考虑程序代码的实现的话,那么我怎么知道我的设计一定合理呢?我怎么知道我设计的类、接口一定可以实现呢?所以经常可以看到的现象就是:

在设计过程中,虽然知道不能过早考虑代码实现,但是每设计一个类,一个接口,心里都要不知不觉的用自己熟悉的编程语言大概的评估一下,看看能否编出来,因此,一不小心,就会又回到按照程序功能实现的思路进行设计的老路上去了。

举个例子来说明,在做Web程序设计的时候,经常要遇到分页显示数据的情况。比如说需要把系统中所有的用户都列出来这样的功能。假设使用User类来表示用户,增加用户addUser(),删除用户deleteUser(),查询所有用户listUsers()方法。而数据库中有一个user表,一条记录是一个用户的信息。下面考虑一下User类的方法的实现:

addUser()和deleteUser()方法都好实现,就是对数据库增加记录和删除记录。对于listUsers()方法,其实就是对user表的select,取出一个记录集。但是该怎么从listUsers()方法中得到所有用户的列表呢?

一个方法调用的返回值只有一个,没有多个,所以很多情况下采用的办法就是返回值定义为集合类型,比如Vector。这样就可以在listUsers()方法的具体代码实现的时候,从数据库依次取出一个个记录,插入到Vector里面来。在主程序里面,调用listUsers()方法可以返回一个Vector,然后再对Vector遍历操作,就可以得到用户列表了。

public class User {

public static void addUser(...){

// 数据库insert一条记录

}

public static void deleteUser(...){

// 数据库delete一条记录

}

public Vector listUsers(...){

// 数据库select结果放到一个集合里面

}

}

这样的设计基本合理,但是仍然有点小问题。因为在设计的时候,就考虑到了用Java的集合类Vector来实现对不定长数据集的存放,因而违反了面向对象设计的一个原则:在设计的时候不应过早的考虑具体程序语言的实现。所以必须用抽象的方法,和具体实现无关的方法来表达业务逻辑。

我们知道,通常对具有集合特征的数据结构进行遍历通常可以使用next和hasNext方法,next实现取下一个用户,hasNext判断是否还有元素。因此我们定义一个接口Iterator,这个接口中定义两个方法next和hasNext:

public interface Iterator {

public boolean hasNext(){}

public Object next(){}

}

而User类的listUses方法返回值改为Iterator接口的实现类:

public class User {

...public Iterator listUsers(){

}

...}

这样就把User类的设计和具体的实现方法分离开了,因为此时任何实现了next()和hasNext()方法的类都可以做为listUsers的返回值,都可以被用来表达“用户列表”,而不仅仅可以使用Vector而已。比如,我可以用ArrayList来表达用户列表,因为ArrayList也实现了Iterator,当然我也可以自己专门写一个类来存放用户列表,只要实现next()和hasNext()方法就行了。

这样在具体的编写代码的时候,程序员具有了最大的灵活性,可以根据具体的情况,采用不同的编程方法来存放用户列表。特别是降低了程序的耦合度,提高了程序的可移植性。对于上面那个JunkMail的listAllMail()方法也同样应该改为接口类型。

然后,在主程序里面就这样来使用User类的listUsers方法:

User myUser = new User();

Iterator iterator = myUser.listUsers();

while(iterator.hasNext()){

iterator.next();

}

这样就可以完全不用考虑程序代码实现了,从高层次上把功能抽象出来,定义成为接口,同时又可以把系统设计的很合理,完全根据业务的需求来进行设计。

结语

通过上面的几个例子的设计说明,使用面向对象的思维方法,其实是一个把业务逻辑从具体的编程技术当中抽象出来的过程,而这个抽象的过程是自上而下的,非常符合人类的思维习惯,也就是先不考虑问题解决的细节,把问题的最主要的方面抽象成为一个简单的框架,集中精力思考如何解决主要矛盾,然后在解决问题的过程中,再把问题的细节分割成一个一个小问题,再专门去解决细节问题。

因而一旦牢牢的抓住了这一点,你就会发现在软件设计和开发过程中,你自己总是会不知不觉的运用面向对象的思维方法来设计和编写程序,并且程序的设计和开发也变得不再那么枯燥,而一个合理运用面向对象技术进行设计和架构的软件,更是具备了思维的艺术美感。

上一篇:宽容作文下一篇:健康知识试题答案2