University of Toronto - Fall 2000
Department of Computer Science

Week 6 - Method Parameters

Objects vs Primitive Data Types

Primitive Data Type

public class PrimType {
	private static void incr (int i) {
		System.out.println(i);
		i += 1;
		System.out.println(i);
	}

	public static void main (String[] args) {
		int i = 3;
		incr (i);
		System.out.println(i);
	}
}

Draw the memory model for the above example.

Class Data Type

class Ex {
	public int field;
}
public class ClassType {
	private static void incrEx (Ex e) {
		System.out.println(e.field);
		e.field += 1;
		System.out.println(e.field);
	}
	public static void main (String[] args) {
		Ex e = new Ex();
		e.field = 3;
		incrEx (e);
		System.out.println(e.field);
	}
}

Draw the memory model for the above example.

Class Data Type - this doesn't work

class Ex {
	public int field;
}

public class ClassType {
	private static void makeEx (Ex e) {
		e = new Ex();
		e.field = 4;
	}
	public static void main (String[] args) {
		Ex e;
		makeEx(e);	// compier error: e has no value;
		System.out.println(e.field);
	}
}