软件构造 抽象类型的操作分类

本文详细介绍了抽象数据类型ADT中的四种核心操作:构造器用于初始化对象;生产器从现有对象创建新对象;观察器获取对象信息但不直接暴露数据;变值器改变对象属性。通过这四个方法,我们可以构建和操作复杂的数据类型,并在此基础上实现客户的需求。此外,还讨论了它们在实际编程中的应用,如String的concat()方法作为生产器的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对课程第六章抽象数据类型ADT中的四种操作进行分别总结。

一、构造器(从无到有)

构造器也叫构造方法、构造函数,是一种特殊类型的方法,负责类中成员变量(域)的初始化。构造器的用处是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。

构造方法也可以进行重载,对于同一个抽象数据类型,构造方法可以有的不同的实现

构造器的特性:

1.构造方法名必须和类名保持一致,并且没有返回值,甚至连void都没有。

2.Java编译器会自动创建无参构造函数,因此在类中,无参构造即使没有,我们也可省略不写。实例化对象时无需赋值

3.倘若类中已存在有参构造函数,则编译器不再提供默认无参构造。

4.当类实例化一个对象时会自动调用构造方法。

5.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承

6.每个类可以有零个或多个构造方法.

例如:

public class test1 implements test {
    int a;
    int b;
    StringBuilder c = new StringBuilder("ab");
    public test1(){};
    public test1(int a){
        this.a=a;
    }
    public test1(int a,int b){
        this.a=a;
        this.b=b;
    }
}

二、生产器(从有到新)

生产器从该类型的旧对象创建新对象。

例如我们用之前的test1来生成一个新的test1:

public test1 producer(){
        return new test1(a+1,b+1);
    }

在对象中,有很多方法都是生产器的应用,或者对于不可变数据类型的数据更改也是生产器的应用,例如,String 的 concat() 方法是一个生产器,它采用两个字符串并生成一个表示其串联的新 String。

三、观察器

观察器采用抽象类型的对象并返回不同类型的对象。一般用于查看一个抽象数据类型内部定义的rep,同时为了保护数据不泄露,一般要对观察器进行设计,比如可以返回一个新的数据类型。

public String getc(){
        return new StringBuilder(c);
    }

四、变值器

变值器是改变对象属性的方法,一般用于客户端要对数据类型的某些属性进行改变时使用,变值器通常返回void,一个方法如果返回值为void,则必然意味着它改变了对象的某些内部状态,当然变值器也可能返回非空类型。

    public void seta(int temp){
        a=temp;
    }
    public int setb(int temp){
        int b1=b;
        b=temp;
        return b1;
    }

一个复杂的抽象数据类型中包含了许许多多的方法,而这些方法中不论方法是复杂还是简单,都可以抽象为以上四种方法。我们也正是在这些方法的基础上加入各种各样的算法来实现客户不同的需求。然后再根据需要引入接口、父类、子类的概念,方法编写上也有了重写、重构的概念,一个复杂的软件就构造而成了。

参考文献:

1java构造器是什么?-java教程-PHP中文网

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值