diff --git a/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/A.java b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/A.java new file mode 100644 index 0000000000000000000000000000000000000000..8bcd9fceb70098c8d423fb6b328b50e153744558 --- /dev/null +++ b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/A.java @@ -0,0 +1,9 @@ +package uk.ac.cam.acr31.oop.democode1920.lecture4; + +class A { + int x; + + A(int x) { + this.x = x; + } +} diff --git a/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/ArrayReferences.java b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/ArrayReferences.java new file mode 100644 index 0000000000000000000000000000000000000000..c57cc56cbd3e9475a279a175cc612200eb4789e5 --- /dev/null +++ b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/ArrayReferences.java @@ -0,0 +1,21 @@ +package uk.ac.cam.acr31.oop.democode1920.lecture4; + +import java.util.Arrays; + +public class ArrayReferences { + + private static int a(int[] x) { + return x[0] + 1; + } + + private static void b(int[] x) { + x[0] = x[0] + 1; + } + + public static void main(String[] args) { + int[] x = new int[] {1}; + int ax = a(x); + b(x); + System.out.printf("%d, %s%n", ax, Arrays.toString(x)); + } +} diff --git a/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/ClassReferences.java b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/ClassReferences.java new file mode 100644 index 0000000000000000000000000000000000000000..86961243ca1d1f0116e281d8bfbcf50e52bf31b9 --- /dev/null +++ b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/ClassReferences.java @@ -0,0 +1,19 @@ +package uk.ac.cam.acr31.oop.democode1920.lecture4; + +public class ClassReferences { + + private static int a(A a) { + return a.x + 4; + } + + private static void b(A a) { + a.x += 4; + } + + public static void main(String[] args) { + A object = new A(4); + int x = a(object); + b(object); + System.out.printf("%d, %d%n", x, object.x); + } +} diff --git a/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/ListReferences.java b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/ListReferences.java new file mode 100644 index 0000000000000000000000000000000000000000..7012eeb55f5cabf6974c4650ec92c58d57f2dbd8 --- /dev/null +++ b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/ListReferences.java @@ -0,0 +1,24 @@ +package uk.ac.cam.acr31.oop.democode1920.lecture4; + +import java.util.Arrays; +import java.util.List; + +public class ListReferences { + + private static List<String> a(List<String> l) { + List<String> r = l; + r.set(0, r.get(1)); + return r; + } + + private static void b(List<String> l) { + l.set(0, l.get(0).toUpperCase()); + } + + public static void main(String[] args) { + List<String> strings = Arrays.asList("Java", "is", "cool"); + List<String> next = a(strings); + b(strings); + System.out.printf("%s, %s%n", next, strings); + } +} diff --git a/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/PrimitiveReferences.java b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/PrimitiveReferences.java new file mode 100644 index 0000000000000000000000000000000000000000..dc756420a0fd7b5447b66295f580a8c918ef5e6e --- /dev/null +++ b/src/main/java/uk/ac/cam/acr31/oop/democode1920/lecture4/PrimitiveReferences.java @@ -0,0 +1,19 @@ +package uk.ac.cam.acr31.oop.democode1920.lecture4; + +public class PrimitiveReferences { + + private static int a(int x) { + return x + 4; + } + + private static void b(int x) { + x += 4; + } + + public static void main(String[] args) { + int x = 1; + int ax = a(x); + b(x); + System.out.printf("%d, %d%n", ax, x); + } +}