前言

java这门课基本上结束了,但个人对这门课程有一些感想,总结一下这门课程以及作业中的认识。

这门课程的作业主要是pta上的作业,这些作业感觉是逐渐加大难度的,开始的时候,作业还比较简单,到后面的时候,作业就比较难写了,花的时间也就更多了,在写作业的过程中,有高兴的时候,也有难过的时候,高兴的时候是把作业写出来了,通过了pta上的测试点,难过的时候是没有通过测试点,而且很久都没有找出问题的所在。但是经过这么长时间的学习,自己对该门课程的对知识点,能够掌握。所以自己感觉这门课,通过大作业布置给学生做,这种方式还是比较好的,能够很好地锻炼学生的编程能力,而且能很好地有助于学生对知识点的掌握。

编程需要严谨的思维方式,不能只考虑片面,而要把所有的情况考虑进去,这样,编写出来的程序才是比较好的,如果编程的时候,没有经过仔细的研究以及分析,就容易出错,因为没有考虑到极端的情况,虽然是很少出现的,但是也是会出现的。而且写完代码之后,要学会在其他地方运行一下,观察一下,有没有其他的错误,不能急着提交作业,这样可以检查出自己没有发现的问题,而且通过一些极端的值进行测试,这样更能体现出自己所写的程序的完好性。面向过程和面向对象肯定是有区别的,面向过程和面向对象都可以解决当前要解决的问题,但是仔细想想和分析,就能发现面向过程缺少复用性,因为,面向过程只是能够解决当前问题,如果下次出现类似但又不完全一样的问题时,再想用之前用过的方法,就很难再复用过来,而面向对象就不一样,它的复用性很强,而且写出来的程序可读性也很强,让读者很容易读懂,找出错误也很容易,不像带着面向过程思维所写的代码很难找出错误。我觉得面向对象的基本原则首先是要能够解决当前所需要解决的问题,如果连问题都解决不了,这样面向对象写出来的程序就没太大价值。

然后就是所写的类里面的属性和方法要做到尽可能齐全,就是说这个类所有的功能和属性要包含进去,这样复用性就比较好。还有就是每个方法要遵循单一职责,就是这个方法不要有其他的本身没有的功能。对面向对象编程思维的理解,这种思维是突破以往面向过程的思维,我们要产生对象的概念,要把解决问题,看成是多个对象相互之间的作用,这样就可以产生出很多对象,通过对象之间相互关系,进行调用,从而逐渐解决问题。这样做可以提高程序代码的复用性。这样的思维要求我们有对象这个概念,这种思维将问题形象化,更好找到问题的解决思路。测试对于编码质量的检测很重要,通过测试可以检测出编码的正确性和效率性,很多编写出来的代码,不知道是正确还是错误或者时间和空间的效率性,很多时候需要通过测试来体现。

个人觉得测试是衡量编码质量的一把尺子。所以测试对编码质量是不可少的检测方法,假如让我设计测试用例,我会设计一些极端也就是边界值,因为往往很多人在边界值方面通过不了,自己也是有亲身经历的,而且我也会限制时间以及空间,因为很多时候大家写的代码都能过通过,但是并不代表所有人的代码质量都很高,讲究一个程序的质量,个人觉得要从正确性和效率上去衡量,而且我也会设计一些大家容易忽略考虑的情况的测试用例,这样可以看出一个人的思维上是否严谨,思路上是否缜密。

在面向对象方面受到教训和收获:

在解决问题时,要认真把题目看懂,要注意题目的要求,不能一看到题目,就用面向过程的思维去解决问题,这样自己很难真正学会面向对象的设计。要打破自己以前的思维方式,要逐渐地用面向对象的思维去看待问题,解决问题。

无论做什么,都需要有一个好的思维,对于OO编程来说,好的思维方式是基于面向对象的,以前的思维偏重于面向过程来说,但是对于OO编程来说,它是需要面向对象的思维方式,面向对象的思维注重于代码的复用性,就是说,解决很多问题,都可以用到同一部分代码,不需要自己另外再去写,这样就体现出OO编程的优越性,能够提高程序的效率。

OO设计心得

经过这门课程的学习,自己对面向对象三大技术特性之间关系的理解:

个人觉得继承是封装的更好的拓展,继承可以在保持封装性的前提下,突破访问的限制,可以做到对一些公开的属性和方法进行调用,更好地提高了代码的复用性,而继承是多态的基础,只有在继承的前提下,才能完成向上转型和向下转型。

面向对象设计设计的基本原则的理解(单一职责原则及“开-闭”原则)

单一职责:对于一个类应该包含这个类所具有的属性和方法,不属于这个类的属性和方法不应该放在这个类当中。

“开-闭”原则:就是对于扩展是开放的,对于修改是关闭的,就是说可以增加一些功能或者属性,但是对于一些自己原有的属性或者方法是不允许被修改的。

类设计心得

自己感觉到,一个类的设计要遵循单一职责和“开-闭”职责,一个类的设计要包含这个类该有的属性和方法,不属于这个类的属性或者方法,不应该加在这个类中。当扩展的时候可以增加一些功能或者属性,对于自己一些原有的属性和方法是不允许被修改的。

如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性:

所谓封装性,个人从做作业的过程中认为封装是对某个类里面的属性或者方法进行封装,很明显,封装了的类,是不容易被其他类进行调用或者修改。首先对于某个类里面的属性来说,如果要使类里面的属性不被修改或者使用,那么就可以对属性进行封装,可以在定义属性语句的最前面加上private,比如 private double radious;这样这个属性就不会被随意修改。很多时候使用public进行成员属性的定义就很容易被其他类进行修改或者使用。同理,某个类里面的方法也可以像属性一样做到被封装。

其次所谓继承性,就是子类可以继承父类的很多方法和属性,这样就使得子类可以很灵活的被使用,因为所有的子类对象都是父类对象,子类可以继承父类的所有公开的属性和方法,但对于私有属性和方法,子类就不能继承,如果父类有继承了一个类,那么子类可以继承父类所继承的那个类里面的所有公开属性和方法,需要注意的是一子类只能有一个父类,也就是说一个子类只能继承一个父类。这个特点可以从作业中很好地体现出来,有一道题讲的是求出各类图形的面积和体积,比如圆类和矩形类都继承了图形类,而球体类和柱体类分别继承了圆类和矩形类,所以球体类和柱体类都继承了图形类的公开属性和方法,从输出结果就可以看出来。子类还可以重写父类的方法,当子类调用和父类同一种方法,此时子类不再是调用了父类的方法,而是调用了自己所重写的父类方法,这样就使得子类更加灵活,更易以修改子类的方法。不过在重写父类方法时,子类中方法的返回值类型必须和父类中的一样。在题目中,圆类和矩形类就重写了图形类里面的getArea()方法。

所谓多态性,多态指的是父类引用子类的对象,并且子类和父类有同名的重写方法,多态机制可以使内部结构不同的对象使用相同的外部接口,比如所有的子类对象都是父类对象,就很好说明了多态性的意思,就是所谓的向上转型。

我对这门课程的建议有:

希望老师今后可以在课堂上多提些问题,鼓励同学们回答,开发大家的思维,增强大家对面向对象的理解以及如何用面向对象的思维去解决问题,个人觉得这样有助于大家走出以前的面向过程的思维方式。

java课程心得_Java课程的感想相关推荐

  1. java实现聊天功能心得_Java课程设计总结 - 在线聊天室(个人)

    一.团队博客及项目地址 二.本人负责的部分 整个系统的框架设计,流程设计. MySQL数据库设计及使用. 服务端面向对象设计,代码编写. 云服务器环境搭建及使用. 黄色框为我负责的部分 三.提交记录 ...

  2. java 密码生成器_Java课程设计-随机密码生成器

    1.团队课程设计博客链接 2.个人负责模板 设计程序运行界面,数据的输入,判断数据输入类型的错误,判断密码类型是否选择. 3.自己的代码提交记录截图 4自己负责模块或任务详细说明 (一)总体设计 1. ...

  3. java的课程总结_Java课程总结

    0.前言 本次博客主要针对整个学期的Java过程中遇到的一些问题.在这个学期的学习中获得的感受,对Java课程的个人理解和自己的一些理解和体会 1.作业过程总结 ①总结三个阶段作业之间的知识迭代关系: ...

  4. java五子棋课程设计_JAVA课程设计+五子棋游戏

    1. 团队课程设计博客链接 2. 个人负责模块或任务说明 1.在同伴构建好初始框图的情况下,编写一个继承JPanel类,实现添加控件. 2.编写paintComponent类,实现绘画棋盘还有棋子. ...

  5. java设计五子棋_JAVA课程设计(五子棋)--个人博客

    JAVA课程设计(五子棋)--个人博客(李金妲) 1.题目及我负责的内容 1.1题目:五子棋 1.2负责内容:游戏界面的GUI设计.背景音乐功能.趣味对战算法实现 2.本人负责的主要功能展示与代码截图 ...

  6. java程序课程总结_java课程总结

    课程总结 一个学期结束了,下面我对一些重点知识分三个模块做一个小的总结. 一.Java基础程序设计 1.java中源文件的扩展名为.java,之后通过编译是.java的文件生成一个.class文件. ...

  7. java课程总结_java课程总结报告.doc

    java课程总结报告 java课程总结报告该怎么写呢?下面是带带来的java课程总结报告,请参考! java课程总结报告[1] 刚开始学的时候,感觉这两门课程好高大上的样子,因为自从学软件工程这个专业 ...

  8. java程序课程总结_Java课程总结报告.pdf

    15/16 学年第二学期 <Java课程总结> 班级: 1420561 学号: 13 姓名:方一帆 第 1 章 Java 系统环境概述 一. Java 语言特点 1. 简单性 Java 语 ...

  9. java闹钟程序设计_JAVA课程设计_闹钟的设计与实现项目-报告_附源代码.doc

    JAVA课程设计_闹钟的设计与实现项目-报告_附源代码 第2章 MACROBUTTON AcceptAllChangesInDoc [双击此处键入1级标题] PAGE 2 - PAGE 1 - .. ...

  10. ATM柜员机JAVA课程设计_JAVA课程设计报告银行ATM机系统.doc

    JAVA课程设计报告银行ATM机系统 Java课程设计报告 题 目 银行ATM机系统 所在院系 软件学院 学生姓名 金磊 专 业 R机械+软件 班 级 R机械094 学 号 2011年 7 月 15日 ...

最新文章

  1. clisp语言中的包
  2. SQL Server数据库新建拥有部分查看操作权限的用户
  3. OpenCV腐蚀和膨胀Eroding and Dilating
  4. 前端应该掌握的网络知识(1)
  5. 微服务架构与SpringCloud
  6. 吴恩达深度学习4.2练习_Convolutional Neural Networks_Happy House Residual Networks
  7. 忘记commit也会造成select查询的性能问题
  8. 一个action类中写多个方法需要继承MappingDispatchAction
  9. 将xml文件由格式化变为压缩字符串
  10. 未在本地计算机上注册“OraOLEDB.Oracle”提供程序
  11. 【线性代数】矩阵的特征值分解(对角化、谱分解)
  12. 整合X-Admin前端框架改造ABP
  13. 传奇微端服务器客户端需要哪些文件,想开服需要了解和准备什么?
  14. vs2017安装mvc框架_2017年PHP MVC框架的现状
  15. 《国资报告》专访高煜光 | 国企数字化转型如何拥抱超自动化?
  16. 友盟+林鸣晖:友盟+产品矩阵助力开发者全面提效
  17. 大一学计算机心得,大一计算机学习心得范文
  18. 【财务分析】用友专用方案:预设分析模型、对标上市公司
  19. 钻石独立棋的用HASH表和栈改进版
  20. ​我在爱奇艺平台做影视剪辑,2021上半年日入100+方法!【覃小龙课堂】

热门文章

  1. php 秒拍视频解析,新浪微博视频解析源码_秒拍视频站外调用可自定义广告
  2. 城市智慧水务供水测试床在工业互联网上发布
  3. 4位数字排列组合(所有组合与出现一次)
  4. 计算机单片机考试作弊检讨书,考试作弊检讨书2000字5篇
  5. 计算机收藏夹中桌面不显示不出来,收藏夹里的桌面不见了怎么处理
  6. 分数排名 leecode 学习笔记
  7. coodblock调试_codeblocks怎么调试?
  8. 宽带连接错误代码651网友推荐解决方法
  9. 手机usb口连接不上计算机,手机usb连不上电脑的原因及其处理方法
  10. 【阅读】《乔布斯的魔力演讲》