package javacodebook.core.mutablenumber; public class MutableByte { private byte value; public MutableByte() { value = 0; } public MutableByte(byte value) { this.value = value; } public void setValue(byte newValue) { value = newValue; } public byte getValue() { return value; } public String toString() { return ""+value; } // Die vier Grundrechenarten public void add(byte value) { this.value += value; } public void sub(byte value) { this.value -= value; } public void div(byte value) { this.value /= value; } public void mul(byte value) { this.value *= value; } } --- Neue Klasse --- package javacodebook.core.mutablenumber; public class MutableDouble { private double value; public MutableDouble() { value = 0; } public MutableDouble(double value) { this.value = value; } public void setValue(double newValue) { value = newValue; } public double getValue() { return value; } public String toString() { return ""+value; } // Die vier Grundrechenarten public void add(double value) { this.value += value; } public void sub(double value) { this.value -= value; } public void div(double value) { this.value /= value; } public void mul(double value) { this.value *= value; } } --- Neue Klasse --- package javacodebook.core.mutablenumber; public class MutableFloat { private float value; public MutableFloat() { value = 0; } public MutableFloat(float value) { this.value = value; } public void setValue(float newValue) { value = newValue; } public float getValue() { return value; } public String toString() { return ""+value; } // Die vier Grundrechenarten public void add(float value) { this.value += value; } public void sub(float value) { this.value -= value; } public void div(float value) { this.value /= value; } public void mul(float value) { this.value *= value; } } --- Neue Klasse --- package javacodebook.core.mutablenumber; public class MutableInteger { private int value; public MutableInteger() { value = 0; } public MutableInteger(int value) { this.value = value; } public void setValue(int newValue) { value = newValue; } public int getValue() { return value; } public String toString() { return ""+value; } // Die vier Grundrechenarten public void add(int value) { this.value += value; } public void sub(int value) { this.value -= value; } public void div(int value) { this.value /= value; } public void mul(int value) { this.value *= value; } } --- Neue Klasse --- package javacodebook.core.mutablenumber; public class MutableLong { private long value; public MutableLong() { value = 0; } public MutableLong(long value) { this.value = value; } public void setValue(long newValue) { value = newValue; } public long getValue() { return value; } public String toString() { return ""+value; } // Die vier Grundrechenarten public void add(long value) { this.value += value; } public void sub(long value) { this.value -= value; } public void div(long value) { this.value /= value; } public void mul(long value) { this.value *= value; } } --- Neue Klasse --- package javacodebook.core.mutablenumber; public class MutableShort { private short value; public MutableShort() { value = 0; } public MutableShort(short value) { this.value = value; } public void setValue(short newValue) { value = newValue; } public short getValue() { return value; } public String toString() { return ""+value; } // Die vier Grundrechenarten public void add(short value) { this.value += value; } public void sub(short value) { this.value -= value; } public void div(short value) { this.value /= value; } public void mul(short value) { this.value *= value; } } --- Neue Klasse --- package javacodebook.core.mutablenumber; public class Starter { /** * Funktioniert wunderbar, da Die Klasse MutableInteger * die entsprechenden set-Methoden hat. */ public static void swap(MutableInteger i1, MutableInteger i2) { int tmp = i1.getValue(); i1.setValue(i2.getValue()); i2.setValue(tmp); } /** * Funktioniert leider nicht, da die Klasse Integer * immutable (nicht veränderbar) ist. */ public static void swap(Integer i1, Integer i2) { Integer tmp = i1; i1 = i2; i2 = tmp; } /** * Funktioniert leider nicht, da die Parameter * "by value" übergeben werden */ public static void swap(int i1, int i2) { int tmp = i1; i1 = i2; i2 = tmp; } public static void main(String args[]) { // Parameteruebergabe mit int int pi1 = 2; int pi2 = 6; System.out.println("Vorher: "); System.out.println("i1 = " + pi1); System.out.println("i2 = " + pi2); swap(pi1, pi2); System.out.println("Nachher: "); System.out.println("i1 = " + pi1); System.out.println("i2 = " + pi2); // Parameteruebergabe mit Integer Integer i1 = new Integer(2); Integer i2 = new Integer(6); System.out.println("Vorher: "); System.out.println("i1 = " + i1); System.out.println("i2 = " + i2); swap(i1, i2); System.out.println("Nachher: "); System.out.println("i1 = " + i1); System.out.println("i2 = " + i2); // Parameteruebergabe mit MutableInteger MutableInteger mi1 = new MutableInteger(2); MutableInteger mi2 = new MutableInteger(6); System.out.println("Vorher: "); System.out.println("mi1 = " + mi1); System.out.println("mi2 = " + mi2); swap(mi1, mi2); System.out.println("Nachher: "); System.out.println("mi1 = " + mi1); System.out.println("mi2 = " + mi2); } }