软件构造笔记(2)

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、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值