// CS100J Spring 2001 // Lecture 12, 3/1 // mechanics of objects class Person { public String name; // name of current Person public Person friend; // friend of current Person is also a Person public Person(String s) { name=s; } // method for setting value of $friend$: public void set_friend(Person p) { friend = p; } // using $toString$ to print description of current object: public String toString() { return "Name of person: "+name+"; Name of friend: "+friend.name; } } public class lecture12_slim { public static void main(String[] args) { // create 4 new people: Person a = new Person("Dave"); Person b = new Person("Jeff"); Person c = new Person("Nate"); Person d = new Person("Tony"); // Dave's friend is Jeff a.set_friend(b); // Description of Dave: System.out.println("Part 1:"); System.out.println(a.toString()); // redundant! System.out.println(a); // correct! // Creating objects as inputs and return values: System.out.println("Part 2:"); b.set_friend(new Person("Alan")); System.out.println(b); // Person ref by $c$ becomes Person ref by $d$ c = d; // Jeff becomes friend of Tony: System.out.println("Part 3:"); c.set_friend(b); System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); } } /* output: Part 1: Name of person: Dave; Name of friend: Jeff Name of person: Dave; Name of friend: Jeff Part 2: Name of person: Jeff; Name of friend: Alan Part 3: Name of person: Dave; Name of friend: Jeff Name of person: Jeff; Name of friend: Alan Name of person: Tony; Name of friend: Jeff Name of person: Tony; Name of friend: Jeff */