自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 软件构造:多态

特殊多态即重载,多个方法具有同样的名字,但有不同的参数列表或返回值类型。可以方便 client 调用,client 可用不同的参数列表,调用同样的函数。子类型:B是A的子类型意味着任意一个B都是A。多态性是指为不同类型的实体提供一个接口,或者使 用一个符号来表示多个不同的类型。子类型多态的好处:不同类型的对象可以统一的处理而无需区分,隔离了变化。强行为子类型化,其中子类型方法参数是逆变,子类型方法的返回值是协变。子类型多态:客户端可用统一的方式处理不同类型的对象。重写方法必须返回相同的类型或子类型。

2023-05-25 19:34:55 163

原创 软件构造:防御式拷贝

我们看第二个函数会发现它的求和利用了第一个函数,它挨个把数组元素都替换成了绝对值,数组发生了变换。它是个可变数据类型,它被改变了,所以后面运行最后一行求和,求的不再是原来的数组,而是现在这个绝对值数组。再看主函数,乍一看似乎没什么问题。但如果仔细看主函数后两行的代码,或者运行一下,你会发现两个和是一样的。对有负数的数组来说也是如此,这肯定是出现了问题,但是哪里错了呢。修改两个方法,使得他们返回一个全新的对象,用户得到了一样的值,但这次他们不能再改变Period本身的属性了,因为他们改变的是全新的对象。

2023-05-22 20:52:22 97 1

原创 软件构造lab2

否则添加两个顶点,如果两个顶点原先都存在,那么寻找原先是否存在对应的边,存在则更新边的权值,否则同两个顶点至少有一个原先不存在时一样,添加边。实现GraphPoet类时,首先实现它的构造函数。仔细阅读MIT的指导页面发现,该问题已经将ADT的大体框架提供给我们,Graph的接口,边和顶点的两种具体实现形式,我们要做的就是按照规约去实现具体功能,并将ADT泛型化(需要了解接口、泛型的概念),在过程中贯穿着测试优先的理念,Problem 4中的诗歌其实就是考察我们在设计好ADT之后,具体应用ADT的能力。

2023-04-21 19:39:23 64 1

原创 软件构造lab1

通过求解三个问题,训练基本Java编程技能,能够利用Java OO开发基本的功能模块,够阅读理解已有代码框架并根据功能需求补全代码,能够为所开发的代码编写基本的测试程完成测试,初步保证所开发代码的正确性。另一方面,利用Git作为代码配置管理的工具,学会Git的基本使用方法。c. 以极点为当前点,当前朝向为0度,顺时针旋转,找到与之夹角最小的点,如果有两个或多个最小转角相同的点,则取最远的点。b. 首先遍历所有的点,找到最左边的点(这个点一定在目标点集中),如果有两个点的x坐标相同,则取y坐标小的点。

2023-03-22 11:42:43 81

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除