网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.web.xml 常用结点说明[1].
.揭开 Java 安全标准的神秘面纱.
.java bean 与 ejb的区别.
.文件上传下载(1).
.DOM属性用法速查手册.
.《java深度历险》读书笔记(一).
.用JBoss Eclipse IDE开发J2EE应用.
.将 Java 应用程序迁移到 .NET(2).
.发现一个技术升级了的带毒网站(.
.Java 2 的里程碑,J2SE 1.4.2 an.
.用内嵌类减少 JAVA 程序设计中的.
.用JAVA实现线程等待提示框.
.使用XML小服务程序配置文件配置小.
.澄清 Java 的接口与继承机制.
.如何判断字符串是否为空串?.
.技术分析Java类加载内幕详细讲解.
.JavaBean持久化.
.Java基础-设计一个Java类所需的.
.关于refactoring思考.
.实例解析:设计一个完全可扩展的应.

实例变量与存取方法

发表日期:2008-1-5



  实例变量
  因此,我们根据对象的行为来定义实例,这在很多情况下是合理的,但一般来说,用户定义数据类型也应该包含状态变量。也就是说,对于每个 Dog 的实例,根据毛发颜色、重量等特征来区分是很重要的。区分 Dog 实例的状态变量称为实例变量。
  现在我们增加一个实例变量来反应特定狗(dog)的叫声,一个 String 实例可以代表每个狗(dog)的叫声(bark):
   class Dog {
   String barkSound = new String("Woof.");
   void bark() {
   System.out.println(barkSound);
   }
   void bark(String barkSound) {
   System.out.println(barkSound);
   }
  }
  现在 Dog 的定义包括 barkSound 的实例变量。 每次一个新的 Dog 实例创建时,该实例包括一个 String 实例的引用变量表示特定狗(dog)的叫声(bark)。 该 实例 变量初始化为默认值 "Woof." 。 看看这行代码
   String barkSound = new String("Woof.");
  这条语句分配了一个初始化为 "Woof." (由括号后的 String 类名提供)的 String 实例,并将数据保存在引用变量 barkSound 中。值得注重的是引用变量 barkSound 是 Dog 每个实例的一部分,它引用一个 String 实例,这个 String 实例象 Dog 实例本身一样,是分配在堆里的:
  现在默认的叫声行为用一个实例变量来表示,我们可以从原来的 bark() 方法中除去 "Woof." ,而使用 barkSound 的当前值的引用来取代:
   void bark() {
   System.out.println(barkSound);
   }
  也就是说,我们把一个无条件状态数据从方法定义转换为用来区分狗(dog)的实例变量,可能更重要的是,对每个特定的狗(dog),这个变量的值可以动态改变。。
  存取方法(Access method)
  为了让实例变量的值能够在需要的时候改变,我们应该提供一个方法来改变其值;这种方法被非凡地称为存取方法(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 中方法所定义的行为一起来反映。
上一篇:Java中的等式 人气:505
下一篇:Java中与注释有关的语法 人气:1408
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐