ADT的四种方法学习随笔

发布时间 2023-05-24 00:09:12作者: 凌风647

ADT对client展示的方法分为以下四种类型

Creators构造器:

用于使用 new 关键字创建一个新的对象。还有一种方法是静态方法,如Arrays.asList()、String.valueOf(Object Obj)等。
而对于构造函数,有以下规则:
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回值类型,可以有return,但是不能有返回值,在这里只是表示结束,并不是返回的表示,一般也不使用return。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造方法,这个构造方法不执行任何代码。
(5)构造方法可以重载,以参数的个数,类型,顺序。
构造函数的调用问题:
没有参数的构造函数称为默认构造函数
(1)子类只调用父类的默认构造函数,即无参数构造函数。如果父类没有默认构造函数,那子类不能从父类调用默认构造函数。
(2)子类从父类处调用默认构造函数,不能成为子类的默认构造函数。
(3)在创建对象时,先调用父类默认构造函数对对象进行初始化,然后调用子类自身自己定义的构造函数。
(4)如果子类想调用父类的非默认构造函数,则必须使用super来实现。
(5)子类必须调用父类的构造函数。可以通过系统自动调用父类的默认构造函数,如果父类没有默认构造函数时,子类构造函数必须通过super调用父类的构造函数。

Producers生产器:

用于使用一个存在的对象产生一个新的对象,例如String.concat()就是使用已存在的字符串构造出一个新的对象,而且不会改动原先存在的对象。

Observers观察器:

不对数据做任何改动,只是查看一个已经存在的对象的各个值,如List.size()、所有的getter方法等。

Mutators变值器:

用于改变对象属性的方法,如List.add()。

注意:
  • immutable的ADT不应有变值器
  • mutator通常返回void,因为它不需要对外界做出反应,只是对ADT的数据域做了更改;
  • mutator也可能返回非空,比如返回boolean表示修改成败等。