Mega Code Archive

 
Categories / Java / Class
 

Objects that cannot be modified are immune to aliasing

// : appendixa:Immutable1.java // Objects that cannot be modified are immune to aliasing. // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 // www.BruceEckel.com. See copyright notice in CopyRight.txt. 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 multiply(int multiplier) {     return new Immutable1(data * multiplier);   }   public static void f(Immutable1 i1) {     Immutable1 quad = i1.multiply(4);     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());   } } ///:~