程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 創建java只讀類

創建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類的設計,它能保證對象不被改動。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved