当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:17:00  来源:本站整理

java只读类[Java编程]

赞助商链接



  本文“java只读类[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
固然在一些特定的场所,由clone()产生的本地副本可以得到我们但愿的后果,但程序员(办法的作者)不得不亲身禁止别名处理的副作用.假定想制作一个库,令其具有通例用处,但却不能担保它必定能在精确的类中得以克隆,这时又该怎么办呢?更有大概的一种情形是,假定我们想让别名施展主动的作用——禁止不必要的对象复制——但却不但愿看到由此造成的副作用,那么又该若何处理呢?
一个办法是成立“不变对象”,令其从属于只读类.可定义一个特别的类,使此中没有任何办法能造成对象内部状况的改变.在这样的一个类中,别名处理是没有问题的.因为我们只能读取内部状况,所以当多处代码都读取相同的对象时,不会呈现任何副作用.
作为“不变对象”一个简单例子,Java的尺度库包含了“封装器”(wrapper)类,可用于全部基本数据范例.大家大概已发现了这一点,假如想在一个象Vector(只采取Object句柄)这样的调集里保存一个int数值,可以将这个int封装到尺度库的Integer类内部.以下所示:
//: ImmutableInteger.java
// The Integer class cannot be changed
import java.util.*;

public class ImmutableInteger {
  public static void main(String[] args) {
    Vector v = new Vector();
    for(int i = 0; i < 10; i++) 
      v.addElement(new Integer(i));
    // But how do you change the int
    // inside the Integer?
  }
} ///:~
Integer类(以及基本的“封装器”类)用简单的情势实现了“不变性”:它们没有供应可以改正对象的办法.
若确切需求一个包容了基本数据范例的对象,并想对基本数据范例举行改正,就必须亲身成立它们.幸运的是,操作非常简单:
//: MutableInteger.java
// A changeable wrapper class
import java.util.*;

class IntValue { 
  int n;
  IntValue(int x) { n = x; }
  public String toString() { 
    return Integer.toString(n);
  }
}

public class MutableInteger {
  public static void main(String[] args) {
    Vector v = new Vector();
    for(int i = 0; i < 10; i++) 
      v.addElement(new IntValue(i));
    System.out.println(v);
    for(int i = 0; i < v.size(); i++)
      ((IntValue)v.elementAt(i)).n++;
    System.out.println(v);
  }
} ///:~
注意n在这里简化了我们的编码.
若默许的初始化为零已经充足(便不需求构建器),并且不用考虑把它打印出来(便不需求toString),那么IntValue乃至还能越发简单.以下所示:
class IntValue { int n; }
将元素取出来,再对其举行造型,这多少显得有些拙笨,但那是Vector的问题,不是IntValue的错.
  以上是“java只读类[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .