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作业.事实上,每一次作业对我来说都是很大的挑战,需要花费大量的时间和精力来学习. 虽然学得很艰苦,但最后还是连滚带爬地完成了.(好惨一 ...
随机推荐
- DVWA学习记录 PartⅥ
Insecure CAPTCHA 1. 题目 Insecure CAPTCHA(全自动区分计算机和人类的图灵测试),意思是不安全的验证码. 指在进行验证的过程中,出现了逻辑漏洞,导致验证码没有发挥其应 ...
- 微服务架构中的BFF到底是啥?
在<技术中台与业务中台都是啥玩意>一文中留下一个问题:BFF是啥?为啥在API网关和业务中台之间加入了一层BFF?考虑到在实际工作中,我的大部分同事都问过这个问题,这里我也总结一下进行答复 ...
- 数据结构之二叉搜索树(BST)--JavaScript实现
原理: 叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二叉排序树的存储结构.中序遍历二叉排序树可得到一个关键字的有序序列,一个无序序列可以通过构造一棵二叉排序树变成一个有序序列,构造树的过程 ...
- JVM 专题八:运行时数据区(三)虚拟机栈
2.虚拟机栈 1. 概述 1.1 虚拟机栈出现背景 由于跨平台性的设计,java的指令都是根据栈来设计的.不同平台CPU架构不同,所以不能设计为基于寄存器的. 优点是跨平台,指令集小,编译器容易实现, ...
- 机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD
PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...
- static关键字真能提高Bean的优先级吗?答:真能
生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...
- 机器学习作业---K-Means算法
--------------------------K-Means算法使用-------------------------- 一:数据导入及可视化 import numpy as np import ...
- OpenLDAP 2.4.44 安装部署避坑指南
写在前面: 有关openLDAP的部署文档在网上随意能找到很多,但是最近用到才发现网上的教程多数是旧版的用法,例如"/etc/openldap/slapd.conf “早已弃用,更有甚者直接 ...
- EF批量插入太慢?那是你的姿势不对
大概所有的程序员应该都接触过批量插入的场景,我也相信任何的程序员都能写出可正常运行的批量插入的代码.但怎样实现一个高效.快速插入的批量插入功能呢? 由于每个人的工作履历,工作年限的不同,在实现这样的一 ...
- 《Python游戏编程快速上手》|百度网盘免费下载|Python基础编程
<Python游戏编程快速上手>|百度网盘免费下载| 提取码:luy6 Python是一种高级程序设计语言,因其简洁.易读及可扩展性日渐成为程序设计领域备受推崇的语言. 本书通过编写一个个 ...