OO第一单元(前四周)作业总结
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)希望老师上课时多抽出一些时间来讲解作业,特别是思路吧。
OO第一单元(前四周)作业总结的更多相关文章
- OO第一单元三次作业总结
写在前面 第一单元作业是针对输入的多项式进行格式合法判断,然后进行求导,结果长度优化,最后输出.三次难度递增,不断添加新的需求,总体感觉在实现方面没有多大困难(?),个人主要困扰环节是寻找自己未知bu ...
- 面向对象OO第一单元三次作业总结
(一)第一单元的作业围绕着多项式的求导,从简单到复杂,主要的要求是 作业一:只有两种格式的因子:带符号整数(+02)和幂函数(x^+02). 作业二:在作业一的基础上添加了:sin(x)和cos(x) ...
- OO第一单元
OO第一单元总结 目录 OO第一单元总结 前言 第一次作业 HW1基本思路 UML类图 代码规模 复杂度分析 方法复杂度 分析 类复杂度 分析 优化策略 第二次作业 HW2基本思路 UML类图 代码规 ...
- OO第一单元作业总结
oo第一单元的作业是对多项式的求导.下面就是对三次作业分别进行分析. 第一次作业 分析 第一次作业相对来讲比较简单,甚至不用面向对象的思想都能十分轻松的完成(实际上自己就没有使用),包含的内容只有常数 ...
- 【作业1.0】OO第一单元作业总结
OO第一单元作业已全部完成,为了使这一单元的作业能够收获更多一点,我回忆起我曾经在计算机组成课设中,经常我们会写一些实验报告,经常以此对实验内容反思总结.在我们开始下一单元的作业之前,我在此对OO第一 ...
- 北航OO第一单元作业总结(1.1~1.3)
经过了三次作业之后,OO第一单元告一段落,作为一个蒟蒻,我初步了解了面向对象的编程思想,并将所学内容用于实践. 一.第一次作业 1.架构分析 本次作业需要完成的任务为简单多项式导函数的求解.表达式仅支 ...
- OO第一单元作业总结——表达式求导
OO第一单元作业总结 第一次作业 基于度量分析代码结构 基本算法 第一次作业是简单多项式导函数求解,不需要对输入数据的合法性进行判定, 基本思想是用 (coeff, expo)表示二元组 coeff* ...
- 【OO学习】OO第一单元作业总结
OO第一单元作业总结 在第一单元作业中,我们只做了一件事情:求导,对多项式求导,对带三角函数的表达式求导,对有括号嵌套的表达式求导.作业难度依次递增,让我们熟悉面向对象编程方法,开始从面向过程向面向对 ...
- OO第一单元总结
OO第一单元作业总结 一.前言 开学四周,不知不觉已经做了三次OO作业.事实上,每一次作业对我来说都是很大的挑战,需要花费大量的时间和精力来学习. 虽然学得很艰苦,但最后还是连滚带爬地完成了.(好惨一 ...
随机推荐
- mysql 漏洞利用与提权
判断MySQL服务运行的权限 1.查看系统账号,如果出现MySQL这类用户,意味着系统可能出现了降权. 2.看mysqld运行的priority值. 3.查看端口是否可外联. MySQL密码获取与破解 ...
- 【XCTF】ics-05
信息: 题目来源:XCTF 4th-CyberEarth 标签:PHP.伪协议 题目描述:其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统 解题过程 题目给了一个工控管理系统,并提示存在后门, ...
- 解决vue项目中使用ivew定制主题报 .bezierEasingMixin();错误
背景:在使用view-design(iview)定制主体时(覆盖变量方式)出现less错误 完整错误如下 解决方法: 在vue.config.js中添加 less-loader:5.0.x modul ...
- shell专题(一):Shell概述
大数据程序员为什么要学习Shell呢? 1)需要看懂运维人员编写的Shell程序. 2)偶尔会编写一些简单Shell程序来管理集群.提高开发效
- Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归
Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 目录 Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 内容纲要 1.函数名的第一类对象及使用 2.f ...
- Python Ethical Hacking - TROJANS Analysis(2)
DOWNLOAD & EXECUTE PAYLOAD A generic executable that downloads & executes files. Disadvantag ...
- MemoryCacheHelper与RedisCacheHelper缓存集成与测试笔记
因为每次在新项目中需要花费大量时间在基础类库搬移.调试.为了节省时间(偷懒)就将MemoryCacheHelper/RedisHelper进行了封装 本次是关于缓存方面记录,源码请参考(包含Redis ...
- python- generator生成器
什么是生成器? 通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的,而且创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后 ...
- javascript兼容问题 : let降级到var 遇到的闭包问题的解决方法
我用 for(let x in y) 循环一个图片元素数组. for (let x in arr) { arr[x].onload = function(){ /* ... */ } } 这样写是没 ...
- 03 AMD规范的基础使用详解
AMD模块规范 1.1 AMD规范说明 AMD规范专门用来实现浏览器端的模块化,并且模块的加载是异步的:引入一个第三方的require.js脚本用来解析AMD规范编写的模块 1.2 基本语法 使用de ...