OO第一单元(前四周)作业总结

OO第一单元(前四周)作业总结要求(第四次作业)

0.前言

本次博客针对的是本人学习Java的第一阶段的三次作业的作业总结

第一次作业的内容是:7-1 计算税率 (20分),7-2 判断坐标点所在范围 (20分)7-3 电话键盘字母数字转换 (20分)7-4 判断三角形类型 (20分)7-5 统计最大数出现次数 (20分)

第二次作业的内容是:7-1 求一元二次方程 (10分)7-2 判断闰年及星期几 (30分)7-3 求下一天 (30分)7-4 求前N天 (30分)

第三次作业的内容是:7-1 用类解一元二次方程式 (10分)7-2 日期类设计 (30分)7-3 日期问题面向对象设计(聚合一) (30分) ,7-4 日期问题面向对象设计(聚合二) (30分)。

1.作业过程总结

第一次作业所用到的知识点,大部分是面向过程的知识(即C语言的知识),少部分的是面向对象语言(Java)的基础知识,如Java的编程的语法,编程习惯(变量与运算符之间要有空格等)等,本次作业需要运用到循环结构和选择结构的知识点,通过本次作业,让Java中的循环结构和选择结构的知识点在我们的脑海中得到进一步的强化。

第二次作业则是面向对象语言的知识占大部分,开始运用到Java语言的中的方法,以及编程思维和编程习惯慢慢地由面向过程的转向面向对象的。本次作业不仅仅是简单的循环结构就能解决问题,还需要运用到方法的知识点,而这块是面向对象和面向过程区分之处。

通过本次作业,让我们了解了存根用法和返回实数根的个数的方法solveQuadratic(double[] eqn, double[] roots);,判断是否为闰年的方法isLeapYear(int year) 及boolean 类型的知识点,求出year-month-day到0001-1-1的距离天数并返回的方法numOfDays(int year,int month,int day);,和根据天数来返回星期几的方法getWhatDay(int days);。

第三次作业所用到的知识点就更加广阔了,涉及到类与对象的定义、构造方法的重载与使用、属性与方法、类的设计原则以及类间关系等知识点。通过本次作业,让我们了解了检测输入的年,月,日是否合法的方法public boolean checkInputValidity();取得year-month-day的下n天日期的方法public DateUtil getNextNDays(int n);

2.OO设计心得

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

1)语法方面,面向对象设计的语法更加精减,更能体现出代码所表达的含义,而面向过程的语法一般比较繁琐。

2)

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

目前好像只是接触了类设计的的单一职责原则,对该原则的理解是不能跑题,方法必须围绕着类进行。取类名要做到见名知义,属性是分量。

③OO编程思维的理解

需知晓类与类的关系和调用方法吧

 

3.测试的理解与实践

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

通过测试,能够检验编码的质量的好坏

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

1)设计输入输出结果为合法的数据 2)设计输入输出结果为非法的数据3)设计5个以上的测试用例

4.课程收获

通过本阶段的学习,我基本了解并掌握了一些面向对象设计的语法(但还是有一些语法没有掌握)特别是运算符两边都要有空格,花括号直接在小括号后面。知晓了类设计的单一职责原则;类里的变量的属性一般为私有属性。了解了类和类的四种关系:耦合(关联,聚集,依赖,泛化)且耦合度要越低越好,内聚等的概念;类的封装性:private ,public ,protected,默认的(都可以不写);类的继承性:可复用性(父类parent class,超类super class,基类 base class,子类son class,派生类 derived class,及构造方法链的知识点);类的多态性:不同的对象,接收到同一个消息的时候,执行不同的操作。

 

总结这四周来在OO方面的教训及收获

教训是语法知识不牢靠,导致敲代码时经常因为某些语法问题卡壳或报错;将类图的转化为代码的能力未掌握,没有养成做题前,先画思维导图或程序流程图的习惯,以至于敲着敲着就忘了思路。

作业老是拖到最后做,以至于慢慢养成了拖延症,作业的完成度也低。收获是了解并掌握了一些面向对象编程的知识,类设计要注意的地方,类里的属性一般为私有属性,

对课程的建议

1)希望老师上课时多抽出一些时间来讲解作业,特别是思路吧。

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(69)-微信公众平台开发-功能概述
  2. 我和Ajax的故事
  3. Play Framework 完整实现一个APP(六)
  4. Flume NG安装部署及数据采集测试
  5. scala 学习笔记(01) 函数定义、分支、循环、异常处理、递归
  6. javascript实用技巧,js小知识
  7. Raspberry Pi3 ~ 配置网络
  8. 数据仓库之ETL漫谈
  9. 算法之旅,直奔<algorithm>之十七 find_first_of
  10. TinyFox 部署在CentOS7 中测试使用
  11. 【转载】__name__ == "__main__": 你认识我么?
  12. python函数(5):迭代器和生成器
  13. struts2(二)之配置文件详解与结果视图
  14. java UTC时间格式化
  15. 一次lr异常Error: C interpreter run time error: Action.c (17): Error -- memory violation : Exception ACCESS_VIOLATION received问题分析
  16. 【NGINX】配置文件
  17. MySQL 获得当前日期时间 函数【转】
  18. Insert插入不同的列数量,统计信息对比
  19. EFCore2.1中DbFirst和CodeFirst简单使用
  20. Mac上zip,rar,tar文件命令解压和压缩

热门文章

  1. cmake安装使用
  2. java大数据最全课程学习笔记(1)--Hadoop简介和安装及伪分布式
  3. Hangfire实战二——为DashBoard页面添加权限认证
  4. GPO - File Server Management
  5. 直接在x86硬件上显示图片(无os)
  6. 【Nginx】图片显示过慢,文件下载不完全,竟然是Nginx的锅!!
  7. 题解 SP2713 【GSS4 - Can you answer these queries IV】
  8. js获得url地址携带参数
  9. 给隔壁的妹子讲『一个SQL语句是如何执行的?』
  10. shell 中的${},##, %% , :- ,:+, ? 的使用