频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

JAVA抽象数据类型概述

来源: 作者:佚名 出处:巧巧读书 2008-04-21 进入讨论组
    绝大多数程序设计语言都预定义了一些基本数据类型,并相应定义了对那些类型的实例执行的操作。比如,对整型、实型等数值类型,有加、减、乘、除等操作,对逻辑类型,有逻辑与、逻辑或、逻辑非等操作。
    对于用户自定义的复合数据类型,需要由程序员自已定义一些方法,对该类型的实例进行所需的操作。在早期许多程序设计语言中,复合数据类型及其相关操作的代码之间没有特殊的联系。比如,用户定义日期Date类型.并定义一个方法tomorrow(),它接收一个Date类型的参数,据此推断其后继日是哪一天。程序中定义变量的代码和tomorrow()方法的代码可以是分离的。
    有些编程语言改进了这种处理方式,允许数据类型说明和欲对该类型变量进行操作的代码说明之间有较紧密的联系。通常把数据类型和对其进行的操作聚集在一起构成一种抽象数据类型。严格地说,抽象数据类型是指基于一个逻辑类型的数据类型以及这个类型上的一组操作。每一个操作由它的输入、输出定义。一个抽象数据类型的定义并不涉及它的实现细节,这些实现细节对于抽象数据类型的用户是隐藏的。
    给出了Date类型和tomorrow操作之间建立的一种联系。
    程序:
   public ClaSS Date{
    private int day,month,year;
    Date(int i.int j.int k){
    day=i:
    month=j;
    year=k;
    }
    Date(){
    day=1;
    month=m 1;
    year=1998;
    }

    Date (Date d){
    day=d.day;
    month=d.montht
    year=d.year;
    }
    public Date tomorrow(){
    Date d=newDate(this);
    d.day++l
    if(d.day>d.daysInMonth()){  //d8yslnMonth()返回每个月中不同的天数
    d.day=1;
    d.month++;
    if(d.month>12)f
    d.month=1:
    d.year++;
    }
    }
    return d;
    }    
    }


        在Java中把名为tomorrow的代码段叫做方法,也可以称为成员函数。
    在有些程序设计语言中,tomorrow()方法的定义或许会要求带一个参数,例如:
    void tomorrow(Date d);
    像Java这种支持抽象数据类型的语言在数据和操作间建立了较严格的联系,即把方法与数据封装在一个类中。在程序中不是把方法描述为对数据的操作,而是把数据看作是它知道如何修改自己,然后要求数据对它自己执行操作。相应的语句如下:
    Data d=new Date(20,11,1998);//已初始化的date对象
    d.tomorrow();
    这种写法表明,数据自己执行操作,tomorrow()方法作用于变量d。要访问Date类的域,可使用点操作符“.”:
    d.day
    它的意思是“d所指的Date对象中的day域”。类似地,d.tomorrow()是指“d所指的Date对象中的tomorrow()方法调用”,epx,-J"d对象进行tomorrow操作。
    把方法看作是数据的特性,而不把数据与方法分开,这种思想是建立面向对象系统过程中的重要步骤。 更多文章 更多内容请看Java环境安装配置Java编程开发手册Java的类专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章