• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

软件构造笔记2

武飞扬头像
m0_51917842
帮助1

62、用户须知134,对于开发者都需要知道。

学新通

63、RI必须表示逻辑判断:

学新通

64、add: c后不能保证从小到大排序,也不能保证长度为偶,也不能保证没有重复的字符,只有最后一个是一定成立的。

Remove:显然满足13不满足2,主要是4,下面xyyx的例子,删掉了第一个x但是后面的x并没删掉,此时应该返回false但是仍然返回true,所以不满足。

学新通

65、学新通该数没有最大公约数。

66、OOP(面向对象的编程)

67、变量前面加上static表示这是类变量(类方法),否则是实例变量(实例方法)

68、testStaticMethod是类方法,在main中直接调用。另一个是对象方法,在main中创建了一个对象才能用。

学新通

69、1、接口(也是一种类)中不能定义构造函数:一个接口有不同的实现类,构造函数(构造方法)的基本要求:名字必须与类名字一样,我们不知道有哪些实现类,无法定义一个统一的构造函数。

2、在第三个红框处破坏了表示独立性(将并操作结果限定给了arrayset)

3、在实现类中没有实现contains方法

4、在实现类中添加新方法add是允许的,但这类违背了set不变的特性,所以也错。

学新通

70、在每一个方法之后没有{}(没有实现体,只有定义),这是可以的,也是很常见的。

学新通

71、接口的使用方式:

学新通

学新通

72、1、通过default方法,在接口中统一实现某些功能,无需在各个类中重复实现它(default方法的典型使用方式:以增量式的为接口增加额外的功能而不破坏已实现的类)

2、在C中如果再实现1,就会覆盖接口中的1。

3、method3在C中必须实现,否则编译不通过。

4、method2是静态方法,不需要实例,直接通过Example调用。

学新通

73、信息隐藏

学新通

74、继承(inheritance):字类拥有父类共性东西,自己也有特性东西。子类指向父类。

75、严格继承:子类只能添加新方法,无法重写超类中的方法。(在父类方法前加上final,该方法就无法重写。)在类前面加上final,该类就不能被继承了。

76、super.message调用父类的message方法。

this.message调用子类的message方法。

学新通

77、子类中重写的方法要保持原来的可变性或者更加宽泛。这里父类是protected,字类没有前缀,就默认是default,比protected更强,因此错误(因为子类要能完全地覆盖父类)。

学新通

78、抽象类:有至少一个方法只定义没实现。

79、抽象类不能实例化(不能用new生成对象)(因为里面还有方法没有实现),继承某个抽象类的子类在实例化时,所有父类中的抽象方法必须已经实现。

80、多态:特殊多态(方法重载):一个方法有多个同名的实现。

参数化多态:一个类型名字可以代表多个类型(泛型编程):

子类型多态(包含多态):一个变量的名字可以代表多个类的实例。

81、重载可以以简明的形式将所有功能相近的方法同名(但除了名字一样之外,没有任何关系)。在编译阶段,程序就能够根据参数等信息判断调用的是哪个add(静态类型检查)。注意和重写区分(动态的)。

学新通

82、1,2,3是合法重载,4的参数列表和示例一样,无法区分,5和示例一模一样,错误。

学新通

83、输出依次是:Animal,Horse,Animal

学新通

84、主要注意3和6。

学新通

85、始终注意接口不能实例化,如这里就会产生编译错误。

学新通

86、泛型:List、Set、Map等容器类的操作。同其中存入的元素类型无关,无需为每种元素类型单独做实现,可用类型变量代替所有变量,这样只需要实现一次即可。

87、类中如果声明了一个或多个泛型变量,则称为泛型类,这种类型变量称为类的类型参数。

学新通

88、泛型:

学新通

89、Java不支持多进程,支持多实现。一个类只有一个父类,但可以实现多个接口。

90、子类型的规约不能弱于超类型的规约。

91、子类型多态:不同类型的对象可以统一处理而无需区分。

92、等价关系需要满足:自反,对称,传递。

93、对于不可变对象判相等:判相等是在A空间(用户端)判相等不是在R空间,AF映射到相同的结果则相等。第二种方法,站在外部观察者角度,对两个对象调用任何相同的操作,都会得到相同的结果,则认为这两个对象是等价的,反之亦然。

94、引用等价性(==),两个对象指向同一个地址。

95、对象等价性用equals()

96、

学新通

97、两个equals的objects,一定要有同样的hashcode。

98、hashcode:

学新通

学新通

99、对可变类型,实现行为等价性(不是观察等价性),也就是说,只有指向同样内存空间的objects才是相等的,所以对于可变类型来说,无需重写这两个函数,直接继承Object的两个方法即可。

100、

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcaaag
系列文章
更多 icon
同类精品
更多 icon
继续加载