0.前言

在一次次大作业的折磨下,Java课即将结束。在这样特殊的大环境下,我们所有的课程都是采用网课的形式。同时也感谢于网课,让上课打瞌睡的我,或是第一次没听懂的我,都有了一个看回放的机会。

在这一学期的学习中,我解决问题的能力有了一定的提升。这一学期,我的学习状况大概如下。

1.作业过程总结

(1) 作业之间的迭代关系

本课程的大作业难易程度由易到难,从开始为了让我们的思想从面相过程转为面向对象的简单题目,到中间给我们参考类图自己构思,到最后完全由自己设计。

(2) 作业过程中遇到的问题及解决方法

课程的初期,困扰我的问题无非是一些不熟悉的语法问题,通过CSDN一点一点了解

到中期变成概念性的问题,继承,多态,分装。这些不仅要听懂老师课上对概念的讲解,还要自己动手在下面亲手操作。

最后,问题就不在那么具体了。前面知识储备不充足编程能力不扎实就被完全暴露出来,面对庞大的知识体系,这个时候该怎么设计才是最正确最完美的、该用哪一个类才可以达到我的目的。这个问题的解决可能需要我之后的努力与对知识的巩固才可以做到。

(3) 作业花费的时间比例

由于作业一次比一次难,花费的时间也一次比一次多,比较起来,每当作业中涉及到正则表达式时,时间就出奇的长。

(4)认识与教训

通过几次作业,我深刻的认识到了逻辑严谨性的重要性。它不同于其他问题,错哪儿改哪儿,它更是宏观上的问题,可能你每一步都没有什么错误,但答案一定是错的。

2.oo设计心得

Java有三大基础特性

封装

封装,就是将抽象的数据类型和操作隐藏起来,构成一个不可分割的部分。

使用封装有三大好处:

1、良好的封装能够减少耦合。

2、类内部的结构可以自由修改。

3、可以对成员进行更精确的控制。

继承

继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

多态

多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

而实现Java多态有三个必要条件:继承、重写、向上转型。

继承:在多态中必须存在有继承关系的子类和父类。

重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。

向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

这些知识与心得都让编写过程变得更有条理。

面向对象还遵循以下原则:

1.开闭原则

对扩展开放------- 模块的行为可以被扩展从而满足新的需求。

对修改关闭-------不允许修改模块的源代码(或者尽量使修改最小化)

2.单一原则

单一原则表明,如果你有多个原因去改变一个类,那么应该把这些引起变化的原因分离开,把这个类分成多个类,每个类只负责处理一种改变。当你做出某种改变时,只需要修改负责处理该改变的类。当我们去改变一个具有多个职责的类时可能会影响该类的其他功能

3.接口隔离原则

接口隔离原则表明客户端不应该被强迫实现一些他们不会使用的接口,应该把肥胖接口中的方法分组,然后用多个接口代替它,每个接口服务于一个子模块。

4.里氏替换原则

里氏替换原则是对开闭原则的扩展,它表明我们在创建基类的新的子类时,不应该改变基类的行为。

5.依赖倒转原则

上层模块不应该依赖于底层模块,它们都应该依赖于抽象。

抽象不应该依赖于细节,细节应该依赖于抽象。

6.迪米特法则

迪米特法则(Law of Demeter)又叫最少知识原(Least Knowledge Principle LKP),就是说一个对象应当对其他对象有尽可能少的了解。

7,组合/聚合复用原则

聚合表示整体与部分的关系,表示“含有”,整体由部分组合而成,部分可以脱离整体作为一个独立的个体存在。组合则是一种更强的聚合,部分组成整体,而且不可分割,部分不能脱离整体而单独存在。

3.测试的理解与实践

比起c语言,在这里我更加理解到了测试的重要性。给一些正常数据、边界值数据进行测试,都可能会发现不一样的结果,发现问题。Debug模式也是我在java中感受到的新天地,找对方法去使用确实方便却许多。

4.课程收获

经历了三个多月的学习,从完全不了解面向对象想象的小白,到对Java的语法与大致框架有一定了解的人。尤其是在做设计雨刷系统的大作业时,我感觉到了不同。第一次在实验课上碰到这个题目时,对这个题目的设计云里雾里,也不清楚为什么要搞得“更加复杂”;当后面它作为大作业出现时,有了之前的理解,再加上题目给的类图,整个思路豁然开朗。但大多数时候,我都是面对着毫无感情的类图,无从下手。就这样,在一次次的大作业中成长、蜕变,这种成就感让我很快乐。我就是这样在Java课程中痛并快乐着。

5.对课程的建议

平时的大作业很耗时,这也意味着我们自学的过程大大增加,我认为用平时成绩代替期末考试的方法要比期末一锤定音的方法科学的多。

java课程实践总结_Java课程总结相关推荐

  1. java课程设计日历_java课程设计日历记事本赵锐.doc

    java课程设计日历记事本赵锐.doc 2本科生课程设计课程名称JAVA程序设计课程设计题目日历记事本学号201440930252学生姓名赵锐所在专业2014计算机学院所在班级信工2班成绩课程设计时间 ...

  2. java实现随机动画_Java课程设计画随机圆.doc

    Java课程设计画随机圆 滁州学院 课程设计报告 课程名称: Java 面向对象程序设计 设计题目: 画随机圆 系 别: 计算机信息与工程学院 专 业: 计算机科学与技术 组 别: 第五小组 起止日期 ...

  3. java课程设计培训班_Java课程设计

    课程设计--博客作业五子棋(201521123009 张晨晨) •团队课程设计博客链接 •个人负责模块或任务说明 五子棋的绘制 棋盘的绘制 重新开始功能的实现 悔棋功能的实现 •自己的代码提交记录截图 ...

  4. java 课程设计 计算器_JAVA课程设计-计算器(201521123028 李家俊)

    1.团队课程设计博客链接 2.个人负责模板或任务说明 主要负责计算器图形界面 包括操作按钮,菜单项以及输出面板的设计 3.自己的代码提交记录截图 4.自己负责模块或任务详细说明 代码分析: 主类中有如 ...

  5. 中南大学c语言课程实践报告,c++课程实践报告范文2篇

    [c++课程实践报告例一] 为期一个星期的c++实训已经基本结束,但是给了我很大的影响.通过这次实训,使我明白C++语言这门课程光仅仅是听课是远远不够的,上机训练也不容忽视. 通过上机训练,才能够明白 ...

  6. java编程电话号码查询_java课程设计电话号码查询系统(15页)-原创力文档

    山东建筑大学 Java 课程设计报告 设计题目 电话号码查询系统 学生姓名黄瑜 学号 2010121187 专业班级信计101 指导教师 王文 1 1 1.设计目的 1.通过JAVA 课程设计,使大家 ...

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

    java课程总结报告 java课程总结报告怎么写?相信很多人都想知道吧?以下是小编为您整理java课程总结报告的相关资料,欢迎阅读! java课程总结报告1 一开始想做计算器那个课题,原因很简单,就是 ...

  8. java 公交管理系统 代码_JAVA课程设计报告公交管理系统.pdf

    Java期末课程设计 -- Busmanagerment 课程名称:算法设计与分析 任课老师:吴倩 学生姓名:谢秀华 学生学号:1037005 所在院系:信息工程学院 班级: 10计算机1班 一.前言 ...

  9. java课程设计 成绩_JAVA课程设计 学生成绩管理

    学生成绩管理 可实现功能: 添加学生功能:姓名.学号.性别.出生年月日.(学号自动生成且唯一) 添加学生成绩功能:每个人都有数学.Java与体育四门课,可分课程输入成绩. 根据学生学号查找学生成绩功能 ...

最新文章

  1. Java命令学习系列
  2. java深拷贝和浅拷贝_Java 深拷贝浅拷贝 与 序列化
  3. Linux下安装nginx (tar解压版安装) nginx1.16.1
  4. python office库_python库编程.os平台.office平台
  5. latex 生成中文目录乱码问题解决
  6. Android 4.3 新特性
  7. 关于RecyclerView(一)基本使用
  8. 实现简单的Java内存缓存
  9. python核心数据类型
  10. 计算机视觉大佬--何凯明
  11. linux卸载rpm包的命令,Linux RPM包安装、卸载和升级(rpm命令)
  12. cisco路由器进入rommon模式
  13. [4G5G专题-42]:物理层-无线信道的特征:RSRP、SNR、BLER、MCS、CSI、CQI、SI、PMI
  14. 简述研究生阶段如何提高自己的学习能力
  15. 苹果iphone手机哪些机型支持刷公交卡
  16. 大数据专业找工作分析
  17. 暴走欧洲之文明的迭代
  18. 小恐龙游戏制作挑战:第8天-确定图片如何制作
  19. 牛视源码定制,抖音矩阵系统,别和谐啊、、、
  20. Netty聊天程序(2):从0开始实战100w级流量应用 - 图解Netty系列

热门文章

  1. 两个机器人的聊天记录
  2. python之字典的读取
  3. 马化腾团队捐3.5亿给深圳大学,为何企业家对大学越来越大方?
  4. 大印文化:李万博老师《总裁演说思维》课程笔记(14)
  5. 京东撸货怎么做?为什么有人风生水起,有人血本无归?
  6. webpack 复习(四)webpack loader
  7. 面试官:ConcurrentHashMap 是如何保证线程安全的
  8. Redis八股文笔记
  9. iAd可能比iPad更伟大?
  10. java计算机毕业设计vue学习视频课程网站源码+数据库+系统+lw文档