java与软件构造
java杂+软件构造(HIT+MIT)
请务必让我来!
这个作者很懒,什么都没留下…
展开
-
HIT软件构造期末复习
已搬家至此原创 2020-06-14 21:08:11 · 544 阅读 · 0 评论 -
HIT软件构造《设计模式》部分总结
根据HIT开设的软件构造课程内容作此总结原创 2020-04-22 11:45:44 · 294 阅读 · 0 评论 -
【MIT软件构造】Equality
引言由前文知java提供了抽象数据类型ADT,使数据类型不再表现于具体属性,而表现于ADT在用户眼中的特征。可以想到 ,定义并阐明ADT的相等关系是很有必要的。等价关系一个等价关系E具有如下性质自反性:E(t, t) ∀ t ∈ T对称性:E(t, u) ⇒ E(u, t)传递性:E(t, u) ∧ E(u, v) ⇒ E(t, v)显然,我们定义的相等关系应该是一个等价关...翻译 2020-04-07 19:07:42 · 308 阅读 · 0 评论 -
【MIT软件构造】ADT Patterns: Interfaces, Generics, and Enums
接口(Interfaces)基本概念不再赘述,值得注意(记住)的有几点:接口不应该有构造函数只有静态方法才能拥有方法体接口实现不能破坏表示不变性接口实现可以添加接口没有的方法,但是不能缺少接口声明的方法接口实现不应该违背接口规约(比如接口规约声明为不可变类型,但在实现类里加入了mutator)子类型(subtype)a是b的子类型,则a要么implement b,要么exte...翻译 2020-03-31 20:50:41 · 197 阅读 · 0 评论 -
软件构造lab2心得与体会
小白菜,又白又菜原创 2020-03-30 19:55:08 · 303 阅读 · 0 评论 -
【MIT软件构造】Abstraction Functions & Rep Invariants
不变量(Invariants)对于一个ADT,在它的整个生命周期中都应保持一个性质是不变的,这个性质便是不变量。如前文提到的类的不变性(Immutability)就是一个不变量,指在整个ADT的生命周期中,这个类的属性值均不应改变表示暴露(representation exposure)对于下列一个Tweet类,我们说它是存在表示暴露的,即这个ADT的属性暴露给了用户/** * This...翻译 2020-03-29 20:39:16 · 279 阅读 · 0 评论 -
【MIT软件构造】Abstract Data Types
Java访问权限对于类:public:可以被其他任何文件访问package-private(默认):只能在这一个包中被访问对于成员:ADT是什么抽象数据类型,包括抽象化(Abstraction)、模板化(Modularity)、封装性(Encapsulation)、信息隐藏性(Information hiding)、责任分离化(Separation of concerns),以达到减...翻译 2020-03-28 22:44:59 · 265 阅读 · 0 评论 -
【MIT软件构造】Designing Specifications
规约的评判维度确定性(deterministic):对于确定的输入,规约规定的输出的确定性declarativestrong确定性考虑下列两个spec的区别static int findExactlyOne(int[] arr, int val)requires: val occurs exactly once in arreffects: returns index i suc...翻译 2020-03-25 14:17:50 · 192 阅读 · 0 评论 -
【MIT软件构造】Specifications
行为等价性在某个所给的规约情况下,两个程序的表现在用户看来是完全相同的,称为行为等价性。规约作用:帮助程序员协作、明确目标,作为用户的使用说明。同时程序的具体实现用户不需要知道,起到了保护的作用原则:“你若违反规则,我便不负责任”构成:方法声明+先决条件+结果说明static int find(int[] arr, int val)requires: val occurs exa...翻译 2020-03-24 20:21:38 · 356 阅读 · 0 评论 -
【MIT软件构造】Static Checking & Mutability & Immutability
java检查静态检查:在程序运行之前会自动发现该错误。动态检查:执行代码后会自动发现该错误。不检查:该语言根本无法帮助您找到错误。静态方法public class Hailstone { /** * Compute a hailstone sequence. * @param n Starting number for sequence. Assumes ...翻译 2020-03-24 19:06:50 · 181 阅读 · 0 评论 -
【Java】杂0x00
利用java优先队列创建最大堆:PriorityQueue<Integer> queue = new PriorityQueue<>((o1, o2) -> o2 - o1); // 最大堆①lambda表达式在java8后引入,可将函数直接写入参数表,提高了代码紧凑性//接收参数o1,o2,返回o2-o1(o1, o2) -> o2 - o1更...原创 2020-03-23 16:48:00 · 99 阅读 · 0 评论 -
Maven构造jar包
Maven安装与使用安装网站:http://maven.apache.org/install.html安装后根据存放位置添加环境变量如下并添加path变量然后在cmd中就可以看到maven安装成功了...原创 2020-03-05 12:18:42 · 128 阅读 · 0 评论 -
软件构造lab1心得与体会
为响应号召(雾秉承着好记性不如烂笔头的意念作此体会原创 2020-03-03 16:19:06 · 264 阅读 · 0 评论