![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件构造
dream or nightmare
分享资源,总结知识,一起进步。
展开
-
git的使用方法
将本地项目push到远程项目git常用命令ls 显示当前文件夹目录ls -a 显示当前文件夹所有目录(包括隐藏)cd 跳转至某个目录git init: 创建一个git仓库,把当前目录变成git可以管理的仓库git status 显示所有变更的文件git c...原创 2020-02-29 12:38:52 · 428 阅读 · 0 评论 -
软件构造lab1——string.split的用法
软件构造lab1的判断矩阵是否为Magic Squares时需要知道文件中矩阵的列数,这就需要使用String类的split方法。首先查看Java API文档:也就是说可以将给定的正则表达式通过分隔符分割为几个字符串。那么在实验中,我们的分隔符就是"\t",通过将每行的正则表达式分割成一个字符串数组,数组中的元素个数就是矩阵的列数。具体的用法如下:split用法split的参数——reg...原创 2020-02-26 22:06:42 · 473 阅读 · 0 评论 -
Object类的方法、对象包装器和自动打包
紧承着第三天的Object类,今天开始学习Object类的通用方法1.equals方法Object类中的equals方法用于测试某个对象是否和另一个对象相等1.1编写equals方法1.显式参数命名为otherObject2.测试 this 同 同 otherObject 是否是同一个对象,如果是返回true3.测试 otherObject是否为null ,如果为 null,返回f...原创 2020-01-27 10:40:56 · 2892 阅读 · 0 评论 -
线程和进程的区别与联系
最近又接触了线程和进程,今儿个简单总结一下进程和线程的区别与联系。1.进程计算机系统层面理解:进程就是一个程序中执行的实例。每一个进程都有它自己的地址空间,包括文本区域、数据区域和堆栈。文本区域存储处理器执行的代码,数据区域存储变量和进程执行期间是使用的动态分配的内存,处理器好像是无间断的执行我们的指令,我们程序中的代码和数据好像是系统内存中唯一的对象。用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序原创 2020-05-28 14:46:11 · 323 阅读 · 0 评论 -
Date、Calendar和String类型之间的转化
软件构造lab3需要设计时间属性,而且需要把时间表示成yyyy-MM-dd HH:mm的形式。所以就去学了一下关于日期的Date类Calendar类以及他们和String类之间的转化。1.Date 转化 String首先先构造一个Date类对象。Date date = new Date() ;然后设置你想要转成的字符串的格式:SimpleDateFormat sdf = new Simp...原创 2020-06-03 09:49:21 · 593 阅读 · 0 评论 -
学习Java的第一天
快捷键:Alt + /: 快速敲出代码Ctrl + s: 保存shift + 向下 :光标移动到下一行Ctrl + / :注释shift + end : 把光标定位到一行的最后shift + home :选中光标所在处前面所有内容主函数定义在类里面:public static void main(String[] args):输出:System.out.print...原创 2020-01-19 16:03:52 · 422 阅读 · 1 评论 -
软件构造复习(4) - 并发和线程安全
一、并发1.创建线程的几种方式1.1 继承Thread类创建线程//继承Thread类public class HelloThread extends Thread{ //重写run方法即可 public void run() { System.out.println("Hello from a thread!");}public static void main(String args[]) { HelloThread p = new HelloThread();原创 2020-06-13 22:25:46 · 232 阅读 · 0 评论 -
软件构造复习(3)——OO Design Principles(OO设计原则):SOLID
今天主要看看OO设计原则:SOLID1.Single Responsibility Principle(单一责任原则)通俗来讲,单一责任原则,就是将类的功能单一。一个类不能太“累”,在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小。一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能影响到其他职责的运作。SRP:不应有多于1个的原因使得一个类发生变化如果一个类包含了多个责任,那么将引起不良后果引入额外的包,占据资源导致频繁的重原创 2020-06-05 14:00:58 · 809 阅读 · 2 评论 -
哈工大2020软件构造Lab4
简要写一下lab4的思路。(如果不对的话欢迎各位的建议)3.1. Error and Exception Handling首先看到注释2可知,我们检查所读入的文件,如果发现文件中的信息和指导书描述的信息不符合的话,那么==我们不仅要抛出异常、而且要捕获异常并进行异常处理。==参考Piazza老师的回答,当我们发现文件中有异常时,应该立即退出,并提示用户选择其他的的文件进行读取。我的设计思路:①给所有可能发生的异常实现一个自己的异常类,实现方法就是简单的继承Exception类,然后可以声明一个带原创 2020-05-28 15:35:51 · 1100 阅读 · 0 评论 -
软件构造复习(2)——面向可维护性的设计模式
复习完面向复用性的设计模式之后,理应就是面向可维护性的设计模式了 ,个人感觉面向可维护性的设计模式比面向复用性的设计要简单一些。但是原理的话都差不多,无非就是利用delegation等方式来达成目的。面向可维护性的设计模式主要有 Factory method pattern(工厂方法模式)、Abstract factory pattern(抽象工厂模式)、Proxy(代理模式)、Observer(观察者模式)、Visitor(访问者模式)1.Factory method pattern(工厂方法模式)原创 2020-05-31 15:35:27 · 444 阅读 · 0 评论 -
软件构造复习(1) ——面向复用的设计模式
前言:本周80学时的软件构造课程部分正式结束,从今天开始正式梳理并且复习一下软件构造学的知识。第一天:复习第四章,也是课程的最重要的部分,面向复用的设计模式,面向复用的设计模式有:Adapter(适配器模式)、Decorator(装饰器模式)、Facade(外观模式)、Strategy(策略模式)、Template method(模板模式)、Iterator(迭代器模式)。1.Adapter 适配器设计模式适配器模式解决的问题:解决接口间不兼容的问题,我们想要复用现有的已经存在的类,但是现有的类和我们原创 2020-05-31 10:33:48 · 556 阅读 · 0 评论 -
哈工大2020软件构造Lab3
目录1 实验目标概述··· 12 实验环境配置··· 13 实验过程··· 13.1 待开发的三个应用场景··· 23.2 面向可复用性和可维护性的设计:PlanningEntry· 33.2.1PlanningEntry的共性操作··· 33.2.2 局部共性特征的设计方案··· 43.2.3 面向各应用的PlanningEntry子类型设计(个性化特征的设计方案)··· 43.3 面向复用的设计:R· 73.4 面向复用的设计:Location· 103.5 面向复用的设计:Ti原创 2020-05-16 10:19:50 · 1172 阅读 · 0 评论 -
Abstraction Functions and Rep Invariants
参考链接:http://web.mit.edu/6.031/www/fa19/classes/11-abstraction-functions-rep-invariants/#reading_11_abstraction_functions_rep_invariants1.Invariants(不变量)不变量:程序在任何时间总是true的性质。一旦创建,不变性对象在其整个生命周期中都应始终代表...原创 2020-03-29 16:19:55 · 373 阅读 · 0 评论