摘要: Java作为面向对象的典型语言,相比于C++而言,对类的继承和派生有着更简洁的设计(比如单根继承)。 在继承派生的过程中,是符合Liskov替换原则(LSP)的。LSP总结起来,就一句话: 所有引用基类(父类)的地方必须能够透明地使用其子类的对象。 LSP包含四层含义: ① 子类完全拥有父类的方法, 阅读全文
posted @ 2018-06-22 22:46 Modnar 阅读(2290) 评论(2) 推荐(1)
摘要: 判断两个对象是否等价,是OOP编程中常见的需求(下面围绕Java来进行阐述)。 考虑这样几种情况:通过某个特征值来判断两个对象是否“等价”,当这两个对象等价时,判断结果为true,否则结果为false。 当然,这里的“特征值”不会只是简单的“对象引用”,事实上,Object类(Java的“对象世界” 阅读全文
posted @ 2018-06-19 16:51 Modnar 阅读(47751) 评论(0) 推荐(4)
摘要: 在Java中,经常会需要新建一个对象,很多情况下,需要这个新建的对象和现有的某个对象保持属性一致。 那么,就有两种方式来实现这个对象的构造: ①通过新建一个对象,为这个对象的属性根据原有对象的属性来进行赋值 ②调用clone方法,来实现实例对象的克隆 对于Java的clone方法,需要注意的就是它实 阅读全文
posted @ 2018-05-24 09:25 Modnar 阅读(3292) 评论(2) 推荐(0)
摘要: 对于每个人来说,都会有特别喜欢的编辑器。对于很多热爱Unix/Linux的人来说,Vim/vi肯定是很熟悉的“编辑利器”了。 当然,对于Mac用户来说,肯定也不乏对Vim狂热的人。庆幸的是,Vim对Mac用户提供了一个独立的应用程序MacVim。 作为一个Unix的衍生系统,macOS自然支持用户与 阅读全文
posted @ 2018-05-20 23:52 Modnar 阅读(1482) 评论(2) 推荐(0)
摘要: Factory设计模式基本就是通过传入指定的参数/或者不传入参数,通过Factory的某个方法(为了避免实例化Factory对象,一般方法为静态static),来获取一个对象。这个是Factory用的比较多的地方。对于Vertex和Edge的Factory来说,通过传入一些构建对象所需的信息来自动创 阅读全文
posted @ 2018-05-02 20:39 Modnar 阅读(225) 评论(0) 推荐(0)
摘要: 在这里记录一下关于软件构造课程Lab3中关于正则表达式的应用。 在实验内容中,要求用正则表达式来匹配读入文件的内容,从而取得构建图需要的相关信息。 举个例子,读入的文件(GraphPoetTestFile.txt)内容如下: 先说一下文件内容中的数据格式: ①一定有一行,第一个单词为"GraphTy 阅读全文
posted @ 2018-04-30 12:53 Modnar 阅读(534) 评论(0) 推荐(0)
摘要: 简单记录一下Java构造类与对象时的流程以及this和super对于特殊例子的分析。 首先,接着昨天的问题,我做出了几个变形: Pic1.原版: Pic2.去掉了T.foo方法中的this关键字: Pic3.在原版的基础上抹掉了B.foo方法: Pic4.抹掉了原版的B.foo方法,同时去掉了T.f 阅读全文
posted @ 2018-03-23 21:41 Modnar 阅读(245) 评论(0) 推荐(0)
摘要: 老师今天在讨论群里抛出了一个问题,让大家尝试思考一下他所给的一段代码输出是什么。 其代码如下: 思考了一波: 实例化子类对象,子类父类都没有显式构造器,就是在子类父类方法之间跳来跳去的。 “嗯,答案一定是'T.bar'”。 但还是敲了一遍,发现答案竟然是'B.bar'......(如图) 室友说:“ 阅读全文
posted @ 2018-03-22 17:46 Modnar 阅读(150) 评论(0) 推荐(0)
摘要: 关于《Java编程思想》第十一章“持有对象”一个内容的思考 在书中第244页,提到了这样的一个方法:Collection.shuffle() 方法。其功能是打乱一个 List 中的元素的顺序。 在这一页的下方,举了这样一个例子: 根据这段代码,如果直接来看,可以这样分析: list1引用指向了一个全 阅读全文
posted @ 2018-03-15 00:30 Modnar 阅读(147) 评论(0) 推荐(0)
摘要: 本文从Git的命令入手,根据不同的应用场景,对每个命令都会有简单的说明(若有变化,请以官方说明为主)。 Git初始化: $ git init 本命令会初始化这个Git仓库,通过命令$ ls -a 可以看到多出了一个.git目录(文件夹,以下简称为目录,即以Unix说法为主)。这个.git目录中包含了 阅读全文
posted @ 2018-03-12 10:38 Modnar 阅读(177) 评论(0) 推荐(1)