#0 前言

本次作业是对本学期所有Java作业的总结,分析自己学会了哪些知识,还有哪些不足,以及以后需要改进的点。

#1 作业过程总结

1.所有作业之间的迭代关系:

第一次作业:简单的if-else,for,while等基础语句知识。

第二次作业:涉及到数组,Java的类,Java的方法等知识。

第三次作业:类的封装性,类之间组合的关系。

第五次作业:Java正则表达式,类的继承性。

第六次作业:涉及到Java正则表达式,以及Java多态的运用。

第七次作业:类的多态性,继承,接口以及动态数组的知识。

第九次作业:Java的map类,动态数组。

第十次作业:运用了Java list map等接口知识。

第十一次作业:运用了栈,正则表达式等知识。

2.对面对对象的封装性,继承性,多态性三大技术特性的理解

1.第一阶段作业:

第一次作业和第二次作业和c语言作业的区别非常小,只需要改变一些语句就可以了,结构基本是一样的。但到了了第三次作业,我就感觉有些吃力,因为它不和我之前认知的一样。但经过粗浅的      认知后我发现,面向对象能让编程变得更加简单,使程序员的思维更加清晰,不需要考虑c语言里乱七八糟的指针。只需要类的引用,就能获得继承,封装,多态三大特质。类里面有属性和方法,      类的外部都可以进行调用,当然类里面还可有私有变量,使程序更加稳定。

2.第二阶段作业:

关于封装性,继承性和多态性三次作业有关图形的类都是主要涉及点。对于封装性题目给出各种图形类,如矩形,圆形等,我们可以通过设

置一些私有属性来保持这个类的内部状态的稳定性,可以对这些私有属性进行精确的控制,比如判断他是否合法和进行计算等,保证类内数

据的一致提高程序的稳定性。对于继承性,各种图形类如矩形圆形继承于shape类,这些图形类是对shape的细化,而每一个图形类都有相应

的功能大大提高了程序的复用性。对于多态性,第三次作业的卡牌分组card类运用到comparable接口。它首先满足了继承,重写,父类引用

指向子类对象三个方法三个多态存在的条件,让我理解了多态就是同一个接口实现不同实例而执行不同操作。例如我们有打印机这个接口,

有黑白打印机和彩色打印机,我们分别用这两种打印机打出来的照片是不同的,是根据他们的特性决定的。

3.第三阶段作业:

前两次作业:雨刷设计拓展,统计Java程序关键词出现次数都对list map等接口知识有较高的要求,这与Java的多态性有关,当然设计的类

也涉及了Java的封装与继承性,而最后一次表达式计算则需要使用栈的知识,这涉及到了数据结构,首先要将中缀表达式转换为后缀表达式

再分别用栈和动态数组存取数字与字符,最后进行计算。

3.作业过程中遇到的问题以及解决方法

1.在第一次作业中计算税率和判断三角形两道题中,刚开始一直都有很多错误。计算三角形的那一题主要是因为if-else有些地方的逻辑会直接结束或者跳过,导致结果会多输出一部分或者少输出一部分   字符,我是通过细分if-else来解决这个问题的,先判读输入是否合法,再判断是不是三角形,再立两个flag判断这个三角形占了直角和等腰三角形哪几个部分,最后根据flag输出他是什么三角形,但是很  遗憾一直有一个错误点过不去。第一题就是简单的switch和if-else的运用但是也有一个测试点没过,浪费了很多时间。

2.第二次作业写判断日期星期几时总是会出现一些由于if-else导致的输出缺失和多余的问题,我通过在判断语句后面加System.exit(0);解决这个问题。判断星期几时总是出现各种各样的错误,多一    天或少一天,最后用基拉姆尔森公式解决了这个问题。

3.第三次作业由于事情忘记了时间只写了前两题,第二题判断时间运用了网上计算一月之间天数的算法,但总是导致时间多了一天的问题。

5-7.正则表达式和ArrayList的理解模糊,理解有问题并不熟练,通过网上查阅资料,阅读相应代码解决了这些问题。

9-11:第11次作业的除零测试,结果总是等于无限,后来通过在中缀表达式转换为后缀表达式中的函数里写了一个主函数能返回有除零情况的

解决了问题,不过输入取巧。

4.每次作业花费的时间比例

第一次作业:2-1-1-1-1 单位小时

第二次作业:1-3-3-4 单位小时

第三次作业:1-5-2-2 单位小时

第五次作业:5-3-1 单位小时

第六次作业:4-6 单位小时

第七次作业:3-2-0.5 单位小时

第九次作业:7 单位小时

第十次作业:8 单位小时

第十一次作业:13 单位小时

5.对编程过程的逻辑严谨性的认知及教训

第一阶段作业:

If-else等基本语句不能出现逻辑错误,还有方法的返回值要注意,代码不能太啰嗦,要尽可能的简洁,不然会浪费大部分的时间,而且改动起来相当麻烦,算东西的方式不能太              low,不然就会导致代码不简洁,应该在网上多学习一些简便的算法

第二阶段作业:

每次编译器报错你都得思考他是那方面的错误,与那些知识点有关,这是其一,还要注意有没有逻辑错误。另外,我觉得应该打完一个模块的代码

就可以进行一个小测试看看这段程序有没有达到相应的预期,这样可以大大减少debug的时间

第三阶段作业:

第11次作业中缀表达式转换为后缀表达式时括号的情况考虑不全,没有考虑多括号情况,导致结果错误。

#2 OO设计心得

1.面向过程与面向对象的比较

面向过程是一种以过程为中心的编程思想,而面对对象是一门以对象为基本程序结构单位的程序设计语言。面向过程只需要分析解决问题所需要的步骤,然后用模块化的函数把这些步骤一步步的实现,    使用的时候一个个调用这些函数就可以了,而面对对象以对象为主体,对象具有静态类型和多个可能的动态类型,在基本层次关系中的不同类中共享数据操作。

将类的某些信息隐藏在类的内部,不允许外部程序访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

继承是类与类的一种关系,例如:动物和狗的关系,动物是父类(或基类),狗是子类(或派生类)。要注意的是,在

Java中的继承是单继承,也就是说一个儿子只能有一个爸爸。多态指对象的多种引用形态,继承是多态的前提。

2.面向对象设计的基本原则理解

目前只在网上了解了五大基本原则:模块化,抽象,信息隐藏,低耦合,高内聚。

单一原则:一个对象应该只包含一个职责并且该职责应该被完整的封装在一个类中

开闭原则:一个软件实体应该对扩展开放对修改封闭,也就是说再设计一个模块的时候,应当使得这个模块可以在不被修改的情况下进行扩展,

即实现再不修改源代码的情况下通过实现或者继承扩展系统。为了满足开闭原则,我们需要对系统进行抽象化设计,抽象化是实现

开闭原则的关键。开闭原则也是实现组件化编程的基础。

3.OO编程思维的理解

OO就是将事物都看成对象,将具有同类特征的事物看为类。通过对类与对象的继承,封装和多态的实现,通过代码解决现实问题。

万物都可以是对象,对象可以有很多行为,我们可以通过这些行为解决相应问题。

#3 测试理解与实践

1.测试对于编码质量的重要性

如果没有详细的测试,那么代码可能有潜在的很多问题,所以代码必须要经过反复,多样的测试,才能保证代码的精确性,简便性,由此可见测试的重要性。

测试可以可以检验程序的正确性和效率,多次测试可以减少debug的工作量,测试对于编码质量十分重要

2.假如让你设计测试用例,你会如何做

我会将每个测试点细化并且加上详细的测试点说明,方便程序的调试。

#4 课程收获

通过这次课程我掌握了一些基础的Java知识,从最开始的和c语言相似的if-else for while 数组等内容,到后来Javafx方面的内容,我学会了很多。

Java最基础的东西就是类,而类有三大特性,封装性,继承性,多态性。封装性虽然安全,但我感觉很难操作,直接把类给封死了,感觉有点笨重。

继承性则非常方便,继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系;继承提供了软件复用功能。这种做法能减小代码和

数据的冗余度,大大增加程序的重用性;提供多重继承机制。出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。

多态性是面向对象程序设计代码重用的一个最强大机制,动态性的概念也可以被说成“一个接口,多个方法”。具有接口性,灵活性,简化性,多次

Java作业就运用了一些接口如map list极大简化了做题步骤。

另外我明白了Java遇到困难不能害怕,要微笑面对他,只要我不放弃,总会柳暗花明,找到问题的解决方法。

#5 对课程的建议

希望上课节奏可以慢一点,有时候听课听着听着一走神就完全听不懂了,另外,如果老师能每次提前发一下课件,我觉得效果会好很多。

感觉老讲得很好,通过听老师的讲课,PTA作业基本都会写。如果老师能深入讲讲PTA上的难题就更好了。

java if作业_19201528- JAVA所有作业总结相关推荐

  1. 东北大学java期末试卷,[东北大学]18年6月考试《Java语言程序设计I》考核作业(答案)...

    Java语言程序设计 I    试 卷(作业考核 线上)  B  卷 学习中心:            院校学号:             姓名 (共        页) 总分 题号 一 二 三 四 ...

  2. java 北理工 教材_北理工《Java技术与应用》在线作业

    北理工<Java技术与应用>在线作业 可以代做所有奥鹏平台的作业.小论文.毕业论文.离线作业.考核作业.在线作业.在线测试,有需要的请联系本人 一.单选题(共 20 道试题,共 40 分. ...

  3. 《Java技术》第八次作业

    <Java技术>第八次作业 (一)学习总结 1.用思维导图对本周的学习内容进行总结. 2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery() ...

  4. 下列python语言、返回结果不是uc_MKAN1-UC 5103作业代写、代做Analytics作业、Java,Python,c/c++程序语言作业代做...

    MKAN1-UC 5103作业代写.代做Analytics作业.Java,Python,c/c++程序语言作业代做 日期:2020-05-21 11:08 Marketing Analytics Sp ...

  5. 西工大java高级网络编程_西工大16春《JAVA高级网络编程》平时作业

    西工大16春<JAVA高级网络编程>平时作业 7 o& [9 w  ^# D  Z一.单选题:[25道,总分:100分]5 z# ?* Z! M% M1 h4 R# n. D+ a ...

  6. java毕业生设计中学线上作业评判系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计中学线上作业评判系统计算机源码+系统+mysql+调试部署+lw java毕业生设计中学线上作业评判系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S ...

  7. java语言编写计算器_第二次作业利用java语言编写计算器进行四则运算

    随着第一次作业的完成,助教 牛老师又布置了第二次作业:用java语言编写一个程序然后进行四则运算用户用键盘输入一个字符来结束程序显示统计结果.一开始看到这个题目我也着实吓了一跳 因为不知道如何下手而且 ...

  8. [附源码]java毕业设计学生互评的在线作业管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  9. ssm+vue学生网络作业管理系统java maven

    随着信息技术的迅速发展.电脑化教学与远程的网络化教学的普及,给传统的教学方式带来了重大的革命,也给教学改革的实施者们提出了很多新的课题.学校教育信息化普及相当迅速,许多课程都实现了多媒体教学,学生的作 ...

  10. Java物流项目第四天 作业中心服务开发(pd-work)

    品达物流TMS项目 第5章 作业中心服务开发(pd-work) 1. 作业中心服务数据模型 本章要开发的是作业中心微服务,对应的maven工程为pd-work.作业中心微服务提供TMS中各种作业.单据 ...

最新文章

  1. 第十七届全国大学生智能车竞赛完全模型组 I 型车模数据
  2. Groovy开发语言
  3. vue怎么调用子元素的方法_vue.js 父组件如何触发子组件中的方法
  4. ESP32 分区介绍
  5. kafka源码编译及开发环境搭建
  6. java 协议这个概念_java网络协议概念是什么?
  7. checkout 撤销修改_git命令(10):git 常用操作,撤销修改(2)
  8. [技术帖] js中,双引号,引发的问题
  9. 按键精灵手机助手基本教程以及命令-1
  10. 函数式编程之Promise的奇幻漂流
  11. 【深度学习环境配置】手把手实战配置深度学习环境(win10版)
  12. 【对讲机的那点事】玩对讲机,你必须要了解的技术指标(下)
  13. IOS APP画面防截屏
  14. 团队开发——极速蜗牛
  15. Java Web框架简介
  16. SEO到底是什么,如何理解引擎搜索?
  17. Unity真实榴弹炮模拟(真正的大型榴弹炮实现)
  18. 你说的马云,不是我说的码云(快速了解 git)
  19. 解决python通过pip离线安装flask,numpy报错解决(centos)
  20. 几招搞定如何发送招聘兼职通知面试短信

热门文章

  1. 服务器开机提示系统初始化失败,Win7开机提示交互式登录进程初始化失败怎么解决...
  2. 学计算机的女生就业方向知乎,知乎高赞回答:什么样的人适合学计算机?
  3. C++ QT结合FFmpeg实战开发视频播放器-08播放器项目的整体UI架构
  4. Class ‘ZipArchive‘ not found解決
  5. 小说阅读器未能连接服务器怎么办,vue移动端小说阅读器vue全家桶项目,已部署到服务器可访问预览...
  6. 编写一个程序,模拟扔硬币的结果.
  7. 18_位运算符(了解)
  8. Python 关于大文件的读写
  9. Proteus添加元件时没有元件库
  10. catia 圆显示不圆,设置显示