paul@16 | 1 | public class Value { |
paul@28 | 2 | protected int value; |
paul@16 | 3 | |
paul@16 | 4 | public Value(int value) { |
paul@16 | 5 | this.value = value; |
paul@16 | 6 | } |
paul@16 | 7 | |
paul@16 | 8 | public int getValue() { |
paul@16 | 9 | return this.value; |
paul@16 | 10 | } |
paul@16 | 11 | |
paul@16 | 12 | public void setValue(int value) { |
paul@16 | 13 | this.value = value; |
paul@16 | 14 | } |
paul@17 | 15 | |
paul@17 | 16 | public boolean isPositive() { |
paul@17 | 17 | return this.value > 0; |
paul@17 | 18 | } |
paul@17 | 19 | |
paul@17 | 20 | public int compare(int value) { |
paul@17 | 21 | if (value < this.value) { |
paul@17 | 22 | return -1; |
paul@17 | 23 | } else if (value == this.value) { |
paul@17 | 24 | return 0; |
paul@17 | 25 | } else { |
paul@17 | 26 | return 1; |
paul@17 | 27 | } |
paul@17 | 28 | } |
paul@17 | 29 | |
paul@17 | 30 | public int add(int value) { |
paul@17 | 31 | return this.value + value; |
paul@17 | 32 | } |
paul@20 | 33 | |
paul@20 | 34 | public Value newValue() { |
paul@20 | 35 | return new Value(this.getValue()); |
paul@20 | 36 | } |
paul@132 | 37 | |
paul@132 | 38 | public static void main(String[] args) { |
paul@132 | 39 | Value v = new Value(123); |
paul@132 | 40 | if (v.getValue() != 123) { |
paul@132 | 41 | System.err.println("v.getValue() failed!"); |
paul@132 | 42 | } else { |
paul@132 | 43 | System.out.println("v.getValue() correct: " + v.getValue()); |
paul@132 | 44 | } |
paul@132 | 45 | v.setValue(456); |
paul@132 | 46 | if (v.getValue() != 456) { |
paul@132 | 47 | System.err.println("v.setValue(456) or v.getValue() failed!"); |
paul@132 | 48 | } else { |
paul@132 | 49 | System.out.println("v.getValue() correct: " + v.getValue()); |
paul@132 | 50 | } |
paul@132 | 51 | if (!v.isPositive()) { |
paul@132 | 52 | System.err.println("v.isPositive() failed!"); |
paul@132 | 53 | } else { |
paul@132 | 54 | System.out.println("v.isPositive() correct: " + v.isPositive()); |
paul@132 | 55 | } |
paul@132 | 56 | v.setValue(-789); |
paul@132 | 57 | if (v.isPositive()) { |
paul@132 | 58 | System.err.println("v.isPositive() failed!"); |
paul@132 | 59 | } else { |
paul@132 | 60 | System.out.println("v.isPositive() correct: " + v.isPositive()); |
paul@132 | 61 | } |
paul@132 | 62 | if (v.compare(-790) != -1) { |
paul@132 | 63 | System.err.println("v.compare(-790) failed!"); |
paul@132 | 64 | } else { |
paul@132 | 65 | System.out.println("v.compare(-790) correct: " + v.compare(-790)); |
paul@132 | 66 | } |
paul@132 | 67 | if (v.compare(-788) != 1) { |
paul@132 | 68 | System.err.println("v.compare() failed!"); |
paul@132 | 69 | } else { |
paul@132 | 70 | System.out.println("v.compare(-788) correct: " + v.compare(-788)); |
paul@132 | 71 | } |
paul@132 | 72 | if (v.compare(-789) != 0) { |
paul@132 | 73 | System.err.println("v.compare() failed!"); |
paul@132 | 74 | } else { |
paul@132 | 75 | System.out.println("v.compare(-789) correct: " + v.compare(-789)); |
paul@132 | 76 | } |
paul@132 | 77 | Value v2 = v.newValue(); |
paul@132 | 78 | if (v == v2) { |
paul@132 | 79 | System.err.println("v.newValue() failed!"); |
paul@132 | 80 | } |
paul@132 | 81 | v2.setValue(123); |
paul@132 | 82 | if (v.getValue() == v2.getValue()) { |
paul@132 | 83 | System.err.println("v.newValue() failed (to establish separate members)!"); |
paul@132 | 84 | } else { |
paul@132 | 85 | System.out.println("v.getValue() == v2.getValue() correct: " + (v.getValue() == v2.getValue())); |
paul@132 | 86 | } |
paul@132 | 87 | if (v2.add(-123) != 0) { |
paul@132 | 88 | System.err.println("v2.add(-123) failed!"); |
paul@132 | 89 | } else { |
paul@132 | 90 | System.out.println("v2.add(-123) correct: " + v2.add(-123)); |
paul@132 | 91 | } |
paul@132 | 92 | v2.setValue(255); |
paul@132 | 93 | if (v2.getValue() != 255) { |
paul@132 | 94 | System.err.println("v2.setValue(255) or v2.getValue() failed!"); |
paul@132 | 95 | } else { |
paul@132 | 96 | System.out.println("v2.getValue() correct: " + v2.getValue()); |
paul@132 | 97 | } |
paul@132 | 98 | } |
paul@16 | 99 | } |
paul@16 | 100 | |
paul@16 | 101 | // vim: tabstop=4 expandtab shiftwidth=4 |