Loading...
  所在位置:论坛首页 -> ┈┋电脑网络技术区┋┈ -> 数据库技术 -> 存取方法(Access method)
标题:存取方法(Access method)收藏 编辑 删除 楼主 | 上一篇 下一篇
薰衣草
等级:社区游侠
权限:普通用户
积分:37
金钱:2754
声望:52
经验:52
发帖数:656
注册:2007年10月28日
资料 短消息2008-6-9 11:30:58

为了让实例变量的值能够在需要的时候改变,我们应该提供一个方法来改变其值; 这种方法被特别地称为 存取方法(access method)。依照惯例,只是简单的用来改变实例变量值的方法名称应该以 "set" 开头:


      void setBark(String barkSound) {
        this.barkSound = barkSound;
      }
    上例中的方法很有意思,它对两个不同的变量用了同一个名字 barkSound。首先,作为参数定义的barkSound 是一个新的叫声(barking sound)。在此方法中所有对 barkSound 的没有限定的引用都指的是这个作为参数传入的数据。但是,我们还有一个为每个被初始化的狗(dog)提供的实例变量 barkSound。在Java(TM) 中,我们可以用特别的 "实例句柄(instance handle)" this 来指定 Dog 的当前实例。因此,


        this.barkSound = barkSound;
    语句将实例变量 (this.barkSound 的当前值改变成 setBark() 的参数 (barkSound)传入的新值。

    为了更明白地说明 this 变量,假订我们为 Dog 创建了一个实例叫 fido,然后执行 fido的方法 setBark()


        fido.setBark("Ruff.");
    在setBark() 中的this 就是指 fido,更确切地说,this.barkSound 指的就是对象 fido 的 barkSound 实例变量。

    在 DogChorus 的下面版本中,创建了一个对象 fido,将它的 barking 特征从默认的 "Woof." 改变为 "Ruff.",然后调用 barking 行为:


    public class DogChorus {
      public static void main(String[] args) {
        Dog fido = new Dog();
        fido.setBark("Ruff.");
        fido.bark();
        System.exit(0);
      }
    }
    经过这种修改,象 fido 这样的对象,其特征就可以由实例(状态)变量的当前值和 Dog 中方法所定义的行为一起来反映

2008-6-9 11:30:58 顶部
第1页 共页 共0个回复     <<    >>    
 快速回复
  • 支持UBB,HTML标签

  • 高级回复

  • 操作选项:评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
      首页 | 购买指南 | 商业版本 | 虚拟主机 | 特色介绍 | 下载中心 | 支付方式
    Copyright 2004-2008 BBSGood.com Powered By: BBSGood.Speed Version 5.0
      咨询电话:0575-85513832、0575-85513825(传真)、7*24小时咨询服务:13606552007 不良信息举报中心 浙ICP备05029817号
      业务QQ:38958768、客服QQ1:415896239、客服QQ2:343896043、MSN:jccsxx@hotmail.com