面向对象课程设计心得体会.docx
《面向对象课程设计心得体会.docx》由会员分享,可在线阅读,更多相关《面向对象课程设计心得体会.docx(6页珍藏版)》请在冰豆网上搜索。
![面向对象课程设计心得体会.docx](https://file1.bdocx.com/fileroot1/2023-2/9/7383222b-c973-43d2-bd4f-211a3e66ba01/7383222b-c973-43d2-bd4f-211a3e66ba011.gif)
面向对象课程设计心得体会
竭诚为您提供优质文档/双击可除
面向对象课程设计心得体会
篇一:
面向对象程序设计心得体会
这次课程设计让我收获到很多,上个学期我们也有过课程设计,但是我们都是从网上下一个程序,连带着报告,看一遍程序,修改修改报告,然后就直接去答辩,都是糊弄糊弄就过去了,自己根本就没有付出过努力,到现在,那个程序的内容是什么全忘光了。
但是这次的课程设计,虽然老师您的要求十分严格,但是却是让我切实体会到了自己动手的快乐。
要我们自己设计一个管理系统,从定题目,到开始写代码,全部都是自己来。
我在开始课程设计前的两周就开始考虑我课设的时候应该做什么内容,想做一般同学都能想到的学生管理系统,但是就怕会有类似的不敢做,冥思苦想了好久,最后才定下的备忘录管理系统,其实所有的管理系统的本质都是一样的,增,删,改,查,但是,这些东看似简单,做起来却难。
像我在做增加的时候,就遇到了问题,最后通过老师的调试,才发现原来是我在开始定义字段名的时候就弄错了。
我们其他人也一样,中间遇到的问题,也及时的请教同学和老师,原来在寝室,我们都是开着电脑上qq,水人人,看视频,但是当课程设计开始的时候,我们这个寝室都在那做这个管理系统,谁谁谁的查询不好使了,我们也都停下来帮她,当我们都不解决不了的时候,我们就和学得好的男生开语音,让他们教我们,帮我们解决,再解决不了的,我们就来找老师,在机房里大家一起努力,攻克难关。
有些时候,困扰我们很长时间的,可能就是一个小小的逗号,或者是被忽略的空格,这些都是我们上课的时候没有注意的,没有好好听课的地方,都在课设的时候碰到了,我在做自己的课程设计的时候,我也经常出错,经常忘了一些细节的东西,比如登陆窗体的时候,忘记了在program.cs里把Form1改成LoginForm,我一直在调试,但是始终出现的是主窗体,登陆窗体始终出不来,最后才想起来忘了这个小步骤,但是这也让我明白,上课的点滴小事,也是非常重要的,除了上课认真听讲之外,下课了还得很认真的看代码,把代码的意思弄明白,渐渐的,像数据库里的表怎么设计,怎么连接数据库,按钮怎么设置,还有很多我都能掌握,所以感觉这次课程设计带给我很多的,课程设计不仅是检查一个人知识掌握了多少,其实更重要的实检测你的实践能力,以及看你是否细心、是否有缜密的思维,所以,我们要在课设的时候加强锻炼,磨练自己,使自己有更高的提高。
篇二:
完成Java面向对象程序设计实验课的心得体会
Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。
在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。
通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。
对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。
学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。
在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。
多次实验后,也让我看到了现在学习的一个很大弱点:
只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。
Java思想:
Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实;
现实中的一切都是对象,他们有分类,就产生了“类”;他们有不同,类和类之间的不同,使用类来区分;同一个类中不同的对象的区别,使用成员区分。
所以,面向对象的内部逻辑是分类。
面向对象编程思想就象数学上的一些概念,如:
空间、群、环、域等
原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。
于是近代数学向公理化发展,这是什么意思呢?
就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。
这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。
面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。
我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对!
我的理解:
1、将分析过程为抽象的过程:
简言之:
分成多个小问题(组成部分),
直到无法再细;
2、对每个对象(小问题)进行分析,抽象,提取处共同的内容(数据成员和操作方法),
3、有相似的对象的,构造基类;再有基类派生出各个确定的对象(小问题);
4、解决问题的过程就是操作这些对象的过程。
我的理解:
与实际生活联系起来。
将要处理的?
问题?
抽象成一个或多个?
事件?
找一个地方使用我的智慧
1。
了解系统的功能。
列举出它的对外接口,即对于使用者来说它有什么功能。
把这整个系统作为一个对象。
2。
环境。
系统不是运行在真空中的,操作系统等外部环境都可能会影响它。
所以把环境也作为一个大的对象。
3。
内部。
在系统的内部,一般都比较复杂,一般的做法是规定一个粒度,枚举出该粒度上所有的物体。
比如说人体,如果在器官的粒度上,就有心,肝,肺。
而小于该粒度的物体(或称对象),比如血细胞,就忽略,作为其它物体(或称子系统的内部对象)。
4。
子系统。
不断缩小粒度,沿用步骤1~3,直到不能再抽象为止。
5。
无形的物体。
一个完整的互连的系统需要许多无形的物体,比如消息等了,一般这样的对象比较难发现。
当你发现各个子系统无法正确合作或理顺关系时,试着加入一些辅助对象。
一切都是为了让人明白,有能让机器理解的思想
我想分析和抽象能力的高低是个关键,首先要从问题域分析和抽象出准确的对象模型,再根据这些模型进行处理,当然在过程种少不了楼上前辈们说的一些思想和细节,但是别忘了,我们的目的是解决问题,不要为了面向对象而面向对象!
我想分析和抽象的能力对这个问题是个关键。
首先要在问题域仔细分析、抽象得到相关的对象模型,然后才是相应的设计。
可是面向对象只是我们解决问题一种思想,切不可忘了问题本身,弄成为了面向对象而面向对象了!
当然过程种少不了楼上一些前辈说的思想和细节了。
耕具我多年的实践:
面向对象包括两个思想:
从大往小想,从小往大做
从难往易想,从易往难做
同意一下观点-----能深入浅出,真高手也!
真正的面向对象编程思想就是忘掉一切关于计算机的东西,从问题领域考虑问题,:
-)
把问题从大到小都抽象成对象(指针只是对象的使用形式),在设计和编写程序的时候把你设计的对象合理的编排组合就是面向对象编程了。
面向对象,就是面对现实;
现实中的一切都是对象,他们有分类,就产生了“类”;
他们有不同,类和类之间的不同,使用类来区分;
同一个类中不同的对象的区别,使用成员区分。
所以,面向对象的内部逻辑是分类。
对象:
对象是人们要进行研究的任何事物,从简单的一个小分子到复杂的汽车飞机都可以看做对象,只是有时对象要根据人们研究问题的需要来确定,对象不一定是具体的,有时也可以表示抽象的规则或计划。
类:
类在java中是具有相同或相似性质的对象的抽象体现形式。
也就是说,类的实例化就是创建对象的过程类的实例就是对象。
篇三:
面向对象课程心得体会
面向对象课程学习心得体会
这学期的面向对象课程对我来说是收获匪浅的一门课。
通过老师课件的讲解,自己一些相关书籍的阅读和实践作业的完成,逐步对课程有了由浅及深的认识。
面向对象(objectoriented,oo)是一门以实践为主课程,课程中可以分开两块ooA(面向对象系统分析)和ooD(面向对象系统设计)。
ooA(面向对象系统分析)主要内容:
研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系.ooA不涉及针对具体实现采取的设计决策和有关细节,独立于具体实现的系统模型。
是一个完整确切反映问题域和用户需求的系统模型。
ooA的优势:
复用、可扩展、可维护性、弹性。
ooD(面向对象系统设计):
以ooA模型为基础,按照实现的要求进行设计决策,包括全局性的决策和局部细节的设计,与具体的实现条件相关。
ooD的步骤:
细化重组类→细化和实现类之间的关系,明确其可见性→增加属性,指定属性的类型和可见性→分配职责,定义执行每个职责的方法→对消息驱动的系统,明确消息传递的方式→利用设计模式进行局部设计→画出详细的类图和时序图。
面向对象的分析与设计方法将致力于解决传统软件研发过程中由于软件模块化结构化程度不高带来的软件重用性差、软件可维护性差、开发出的软件不能满足用户需要等方面问题。
面向对
象的概念包括:
对象、对象的状态和行为、类、类的结构、消息和方法。
对象概念将包含对象唯一性、抽象性、继承性、多态性的重要特征。
面向对象的要素包含:
抽象、封装性、共享性三方面。
在设计模式的研究过程中,我们组选择的是迭代器
(Iterator)的设计模式研究。
完成设计研究后,我对迭代器的设计模式有了更为深刻的理解。
迭代器(Iterator)提供一个方法顺序访问一个聚合对象的各个元素,而又不暴露该对象的内部表示。
并了解到迭代器设计模式一般在以下三类场合使用较多。
?
访问一个聚合对象的内容而无需暴露它的内部表示。
?
支持对聚合对象的多种遍历。
因为遍历状态是保存在每一个迭代器对象中的。
?
为遍历不同的聚合结构提供一个统一的接口。
根据实现方式的不同,效果上会有差别。
同时还简化了容器的接口。
但是在javacollection中为了提高可扩展性,容器还是提供了遍历的接口。
在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:
一是集合内部的数据存储结构,二是遍历集合内部的数据。
面向对象设计原则中有一条是类的单一职责原则,所以我们要(:
面向对象课程设计心得体会)尽可能的去分解这些职责,用不同的类去承担不同的职责。
Iterator模式就是分离了集合对象的遍
历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。
在Javacollection的应用中,提供的具体迭代器角色是定义在容器角色中的内部类。
这样便保护了容器的封装。
但是同时容器也提供了遍历算法接口,你可以扩展自己的迭代器。
至于迭代器模式的使用。
客户程序要先得到具体容器角色,然后再通过具体容器角色得到具体迭代器角色。
这样便可以使用具体迭代器角色来遍历容器了。
ooA和ooD之间没有明显的界限。
ooA与ooD的不可分割性正好说明了oo思想的强大,即软件过程阶段的无缝连接,在交流与沟通中不会产生鸿沟,这是相对结构化思想的好处,因为从功能模块到某块详细控制逻辑设计两者之间的联系不是十分紧密,需要分析人员与设计人员的再沟通。
通过课程的学习与实践,对面向对象的理念,以及相关方法,设计模式有了更为深刻的理解与掌握。
针对面向对象的分析与设计课程的授课内容及方法,我个人觉得对我还是有不少的帮助和提高。
结合自己的工作,虽然与开发接触的比较少,但是在运维过程中,如果能了解开发原理,结合实际的工作,会对一些源代码的分析能力以及工作效率的提高起到明显的帮助作用。