建设java只读类
当前位置:以往代写 > JAVA 教程 >建设java只读类
2019-06-14

建设java只读类

建设java只读类

完全可以建设本身的只读类,下面是个简朴的例子:
 

//: Immutable1.java
// Objects that cannot be modified
// are immune to aliasing.

public class Immutable1 {
  private int data;
  public Immutable1(int initVal) {
    data = initVal;
  }
  public int read() { return data; }
  public boolean nonzero() { return data != 0; }
  public Immutable1 quadruple() {
    return new Immutable1(data * 4);
  }
  static void f(Immutable1 i1) {
    Immutable1 quad = i1.quadruple();
    System.out.println("i1 = " + i1.read());
    System.out.println("quad = " + quad.read());
  }
  public static void main(String[] args) {
    Immutable1 x = new Immutable1(47);
    System.out.println("x = " + x.read());
    f(x);
    System.out.println("x = " + x.read());
  }
} ///:~

所有数据都设为private,可以看到没有任何public要领对数据作出修改。事实上,确实需要修改一个工具的要领是quadruple(),但它的浸染是新建一个Immutable1工具,初始工具则是原封未动的。
要领f()需要取得一个Immutable1工具,并对其采纳差异的操纵,而main()的输出显示出没有对x作任何修改。因此,x工具可别名处理惩罚很多次,不会造成任何伤害,因为按照Immutable1类的设计,它能担保工具不被窜改。

    关键字:

在线提交作业