- 博客(19)
- 收藏
- 关注
原创 2021秋哈工大物联网专业课——《信息物理系统——理论与建模》课程总结
哈工大物联网工程专业人数一直在40人左右,几乎没有学长学姐写过这个专业的课程学习方法...自己当时复习的时候也是比较迷茫,倒不是因为这门课有多难,而是因为这门课属于是第一次听说,也不知道考什么。同时这门课程的体系又没有想《计算机网络》,《计算机系统》等这种大课那么成熟,所以本来比较简单的课程可能就给很多同学造成一定的困扰。
2022-01-10 00:18:04
4084
1
原创 多态的例子(以哈工大某年软件构造期末题为例)
如果用父类的类型声明了new的子类的对象,会发生什么? 也就是 Animal a = new Cat();以Father和Son两个类来举例子。父类:Father ,子类 Child extends Father。Father child==new Child();解释:要理解多态性,首先要知道什么是“向上转型”。我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类。我可以通过Cat cat = new Cat();实例化一个Cat的对象,这个不难理解。**但当我这样
2021-07-06 20:50:11
146
1
原创 关于静态/动态类型检查 和 不可变包装的笔记
静态类型检查和动态类型检查Java是一种静态类型语言。所有变量的类型在编译时(在程序运行之前)都是已知的,因此编译器也可以推导出所有表达式的类型。如果a和b声明为int,那么编译器得出结论,a+b也是int。相比较之下,在像Python这样的动态类型语言中,这种检查会被推迟到run-time。静态检查一个bug比动态检查好,而动态检查它比根本不没检查它好。静态检查的好处就是可在编译阶段发现错误,避免了将错误带入到运行阶段,可提高程序正确性和鲁棒性。静态类型检查其中的检查大体包含以下几种类型:不
2021-07-05 23:12:43
409
原创 final的用法
final的用法一、final关键字可以用来修饰类、方法、变量。各有不同。A、修饰类(class)。1、被final修饰的类将不能被继承。final类中的方法也都是final的。2、类中的方法不会被覆盖,因此默认都是final的。3、用途:设计类时,如果该类不需要有子类,不必要被扩展,类的实现细节不允许被改变,那么就设计成final类B、修饰方法(method)1、该方法不能被Override。2、用途:一个类不允许子类覆盖该方法,则用final来修饰3、好处:可以防止继承它的子类修改该方
2021-07-05 21:38:05
311
原创 Git的简单总结(面向考试和实验操作)
Git的总结马上要考试了,考试内容还要包括Git,所以在这总结一下Git的重要命令。好多命令其实在实验中已经用到了,有一些是实验一配置Git时候用到的,有一些是提交的时候用到的。实验三还用到了分支处理的命令,因为实验三需要增加一个change分支,来保存之后功能的修改。其实除了那些基本的命令之外,其他的命令估计考试也不会拿出来考,平时也很少用到。因此仅仅总结了很少一部分。配置工具(实验一可能用到的命令)对所有本地仓库的用户信息进行配置$ git config --global user.na
2021-07-05 19:30:35
160
原创 实验三总结
实验三总结实验三实在太难了,赶在了冲突的时候弄了这么大工作量的实验,服了.不过还好写完了,这里总结一下.三个场景的总结容易看出,三个场景最明显的共同特征就是“时间段”和“标签”的对应关系。对于值班表来说,哪位员工(标签Employee)在什么时间段(interval)值班,是标签和时间段的对应关系;对于进程管理来说,在一个进程的时间线上,哪个进程(标签Process)要在哪一段时间(interval)执行,是标签和时间段的对应关系;对于大学课表排课系统来说,在一周之内,哪门课程(标签Cours
2021-07-04 12:36:36
86
原创 抽象相关
抽象1.抽象的概念基础概念:从众多的事物中抽取出来的共同的、本质的特征,而舍弃其非本质特征的过程。重点在于 共同 本质 特征2.抽象方法和抽象类(1)抽象方法:如果父类当中的方法不确定如何进行{}方法体的实现,那么这个就应该是一个抽象方法。格式:在返回值前加上abstrct关键字,然后去掉大括号(也就是不包括方法体),直接以分号结束。例如:现在有一个父类(动物),定义一个吃东西的方法,在子类(狗、猫)中定义吃东西的方法,有具体的表现(狗吃骨头,猫吃鱼)。可以看出父类中是无法具体定义方法体的,但是
2021-07-02 00:03:05
85
原创 2021-06-29
主要内容来自MIT6.031 Software Construction课程及HIT 软件构造课程。Snapshot Diagram是一种能表示程序运行时状态的图。使用绘Snapshot Diagram的方式对我们了解在运行时发生了什么是很有帮助的,尤其是在解决一些复杂的bug时。Snapshot Diagram也对我们理解一些Java的概念有帮助,例如基本数据类型(primitive type)和对象数据类型(object type)、不可变值(immutable value)以及不可变引用(immu
2021-06-29 15:22:09
66
原创 Designing reusable classes 设计可复用的类
§ Designing reusable classes 设计可复用的类马上要软件构造期末考试了,整理一下学习笔记– Inheritance and overriding 继承与重写– Overloading 重载– Parametric polymorphism and generic programming 参数多态与泛型编程– Behavioral subtyping and Liskov Substitution Principle (LSP) 行为子类型与Liskov替换原则– Co
2021-06-29 09:31:47
135
原创 计算机系统期末考试感想
2021计算机系统考试结束了,复习了小半个月,结果还不知道,但感想挺深。平时得注重积累,光靠最后突击复习有用,但是用途有限。尤其对于计算机系统这种书都有几百页并且没什么不重点的内容的科目来说,任何一个小的点都有可能在考试中出现,平时得看。其实出的题挺让人迷惑的,大家都认为重要的部分反倒不考,倒是去考察一些上课都很少提到的细枝末节,感觉没有这种必要。重定位,这么大的一块,不考。I/O,不怎么讲的东西,一小块,一顿考。附上吴老师的名言:还有有才同学的**《期 末 总 结》** ,能看出知识掌握的
2021-06-27 18:45:56
149
原创 软件构造之数据结构与算法相关内容结构体系汇总
最近做了软件构造实验二,和实验一一样用到了数据结构与算法的一些内容。在此,总结一下之前学过的数据结构与算法的内容,来为之后课程和实验更好服务。以上是大概的知识体系,有利于之后的学习。...
2021-06-17 08:46:59
100
原创 软件构造实验二总结
终于在计算机系统期末考试复习的夹缝时间里搞完了软件构造实验二,说实话不太难,但是任务量相对多一些。以下是我的个人感想。面向ADT的编程和直接面向应用场景编程,你体会到二者有何差异?面向过程是分析如何解决问题的步骤,然后用函数按照步骤实现。面向对象问题分为各个部分也就是对象,建立对象的目的不是为了完成一个步骤,而是为了定义一个部分再整个过程中的作用。使用泛型和不使用泛型的编程,对你来说有何差异?泛型使得我们编写的程序能够容纳更多的类型,更加多元化。例如,我们点可以不在是String类型的,而是
2021-06-14 18:56:16
98
原创 软件构造实验一bug处理过程1
今天刚刚检查了一下P1,之前感觉很正确的代码经过一些测试发现了bug。在P1的第二部分,生成magicsquare的部分,外表看不出什么问题,但是生成43*43的时候显示是magicsquare,生成45*45的magicsquare时候就会提示输入错误,找了很久没发现什么问题。观察错误提示,发现提示的是自己设计的提示信息“INPUT WRONG(NOT n*n)",也就是数组存的行列不等。首先,判断方式应该无误,感觉写文件读文件也不会有问题,于是编了很多测试文件,但都没发现问题,再加上天气十分炎热,学
2021-05-21 22:52:43
160
原创 Git的使用方法
1.什么是Git?一种分布式的软件配置管理工具。2.目录结构假如现在有一个工程被git管理,它分为三个部分:本地工作区,本地版本库(CMDB)的远程版本库。其中本地版本库有一个暂存区。本地工作区就是你的工程所对应的本地文件夹本地版本库是工作区(本地文件夹)下的.git隐藏文件夹。远程版本库是你的工程在网络上的备份。3.文件文件时Git的基本配置项SCI(软件中发生变化的基本单元)当一个文件被创建或者修改时,它与本地版本库中的相应文件不一样了,此时它处于“已修改”状态。
2021-05-19 17:23:18
93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人