首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
中国IT实验室Linux频道
中国IT教育
 
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 新手入门 >> 基础入门 >> 文章正文

JAVA抽象数据类型概述

文章来源中国IT实验室收集整理 作者佚名 更新时间2008-4-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操作。
    把方法看作是数据的特性,而不把数据与方法分开,这种思想是建立面向对象系统过程中的重要步骤。
【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题
 ·展现C#世界 C#程序设计专题
 ·Java入门 Tomcat的配置技巧精华专题
 ·Oracle RMAN物理备份技术详解
 ·JAVA开发利器——JBuilder知多少
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航