
软构
Pin_BOY
这个作者很懒,什么都没留下…
展开
-
Pycharm下 文件路径找不到(神奇的bug)
solution1:改为绝对路径将目录重整后,有一些文件就不能通过File()相对路径打开了,"datasets1/train_catvnoncat.h5"现在就将相对路径改为绝对路径就好了。os.path.join(dir_path,'datasets1/train_catvnoncat.h5'solution2: pycharm 重新导入文件还有一点特别迷惑,pycharm在改完目录结构后,总会出现一些奇怪的bug,刚刚把路径改为绝对路径后,还是报错。索性直接把项目的.idea文件删除后原创 2021-09-21 12:04:43 · 3671 阅读 · 1 评论 -
软构复习【6】
原创 2021-07-06 14:24:17 · 118 阅读 · 0 评论 -
软构复习【5】
原创 2021-07-06 14:23:43 · 118 阅读 · 0 评论 -
软构复习【4】
原创 2021-07-06 14:23:04 · 116 阅读 · 0 评论 -
软构复习【3】
原创 2021-07-06 14:22:31 · 100 阅读 · 0 评论 -
软构复习【2】
原创 2021-07-06 14:21:52 · 143 阅读 · 0 评论 -
软构复习【1】
原创 2021-07-06 14:21:11 · 124 阅读 · 0 评论 -
【软构课堂笔记6:设计模式】
原创 2021-07-05 14:46:25 · 120 阅读 · 0 评论 -
【软构课堂笔记4:可复用性 CRP 可维护性 正则表达式】
原创 2021-07-05 14:45:35 · 132 阅读 · 0 评论 -
【软构习题课1】
原创 2021-07-05 14:43:56 · 100 阅读 · 0 评论 -
【软构课堂笔记3:面向对象编程 】
原创 2021-07-05 14:42:48 · 102 阅读 · 0 评论 -
【软构课堂笔记2:ADT 表示独立性 Spec强度】
原创 2021-07-05 14:41:41 · 123 阅读 · 0 评论 -
【软构课堂笔记:Spec obj mutable imutable】
原创 2021-07-05 14:40:25 · 107 阅读 · 0 评论 -
【总结】Obj & Spec
SPECObject属性/数据可变的不可变的方法Spec实现Spec:定义: 双方的“合同”/”防火墙“(外部不可见)基本结构:前置条件(对参数的约束,对客户端的约束)后置条件(对返回值的约束,对开发者的约束)原则: 前置满足---->后置必须满足 前置满足—>?(fail fine) Spec是给客户端看的,不要把程序内部暴露出来强度:stronger(对客户端更加友好/易使用,对开发原创 2021-06-09 20:25:38 · 233 阅读 · 0 评论 -
【总结】ADT
ADT 总结1. ADT的内容属性(名词)rep内部数据结构不可见方法(动词)Spec规约impl实现方法,功能Spec可见impl不可见对外部只有接口,封装后用户不关心内部1.1 ADT的内部方法可以大致分为以下四类creator构造器 初始化,新建一个ADT对象 a. new() b. 静态工厂:graph.empty()producer生产器 比如 String.concat() 能够返回一个新的对象, 不改变内部数原创 2021-06-09 20:24:38 · 210 阅读 · 0 评论 -
【lab2】关于Equals和HashCode重写
为什么要重写Equals和HashCode?每当我们定义一个immutable类的时候,就应该考虑重写其Equals和HashCode 一个immutable类,创造两个对象A,B; A和B有着一模一样的内容,但是由于内存地址的不同,我们用"==“或者是缺省的equals(内部实现还是”= ="),是不能够得出他们相等的。 如果要想他们在外界看来是一样的,那就要重写类中的equals函数,而HashCode也应该随之重写。 因为:如果两个对象相同,就是适用于equals(java.lan原创 2021-06-09 20:23:52 · 173 阅读 · 0 评论 -
【lab2】scanner读文件
public GraphPoet(File corpus) throws IOException { try { File file = new File("assets/test.txt"); Scanner scanner = new Scanner(corpus); scanner.useDelimiter("\\s+"); String preWord = null; ...原创 2021-06-09 20:23:21 · 117 阅读 · 0 评论 -
【lab2】Safety from rep exposure
简单来说,一个主类有属性和方法两种成分,这里的主类是指用户直接使用的类,需要做到以下两点1、将类中所有的属性(变量)定义为private类型, 目的是不让用户得到你的内部属性2、方法或者返回immutable data,或者返回本应该返回的mutable data的副本,或者返回一个不可修改的mutable data 1、尽量使用immutable数据类型,比如能使用String就不使用StringBuilder,能使用Instance就不使用Data 2、为了创造mutable d原创 2021-06-09 20:22:08 · 172 阅读 · 0 评论 -
【lab2】defensive copy
How to Defensive Copy条件方法返回一个mutable的数据类型语法without defensive copy:public Name getName(){ return name;}这种observer则会造成类中参数被改变的风险。with defensive copy:public Name getName(){ return new Name(name.toString());}对于抽象类型lab2中给出的 L 是一个不知道类型的抽原创 2021-06-09 20:21:22 · 142 阅读 · 0 评论 -
【lab2】如何在@test 测试函数中抓获异常
@Test(expected=IllegalArgumentException.class) public void testEmptyVertexToString() throws IllegalArgumentException{ new Vertex<>(null);//传入null参数报错,抛出IllegalArgumentException异常 }原创 2021-06-09 20:20:36 · 251 阅读 · 0 评论 -
【lab2】如何创建可变类&不可变类
如何创建可变类&不可变类可变类和不可变类(Mutable and Immutable Objects)可变类和不可变类的区别: 是否有mutator方法(是否可以更改属性)可变类和不可变类(Mutable and Immutable Objects)的初步定义:可变类:当你获得这个类的一个实例引用时,你可以改变这个实例的内容。不可变类:当你获得这个类的一个实例引用时,你不可以改变这个实例的内容。不可变类的实例一但创建,其内在成员变量的值就不能被修改。举个例子:String和Str原创 2021-06-09 20:19:54 · 175 阅读 · 0 评论 -
【lab2】关于构造器非法参数的问题
结论: 如果判断条件非法,直接抛出异常throw new IllegalArgumentException("Wrong!");参考网址下面直接截取详细内容:If the program ever executes a statement like:throw new ???Exception("… message …");Java stops the program and signals the error through the constructed instance of原创 2021-06-09 20:14:50 · 118 阅读 · 0 评论