SVN8.COM - SVN中文技术网

投递文章 投稿指南 SVN中文技术网公告:进入论坛最新公告最新公告
搜索: 您的位置主页>JAVA技术>语言基础>Java语言基础12-存取方法(Access method)

Java语言基础12-存取方法(Access method)

2008-06-04 06:55:23   来源:   作者:   【 评论:0 点击:

为了让实例变量的值能够在需要的时候改变,我们应该提供一个方法来改变其值; 这种方法被特别地称为 存取方法(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 指的就是对象 fidobarkSound 实例变量。

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 中方法所定义的行为一起来反映。



录入:SVN中文技术网[www.svn8.com]
Tags:  
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - RSS订阅 - 网站地图 - 返回顶部