// Lecture 13 // Person example from Lecture12, but now with encapsulation class Person { private String name; // name of current Person private Person friend; // friend of current Person is also a Person // Create new Person with $name$: public Person(String n) { name=n; } // Set value of $friend$: public void set_friend(Person p) { friend = p; } // print description of current Person: public String toString() { return "Name of person: "+name+"; Name of friend: "+friend.name; } } public class L13_person { 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"); // Ira's friend is Jeff a.set_friend(b); // Description of Ira: System.out.println("Part 1:"); System.out.println(a); // Creating objects as inputs and return values: System.out.println("Part 2:"); b.set_friend(new Person("Alan")); System.out.println(b); // Aliases // if you assign a reference to an object to another reference // an object gets obliterated...which one? c = d; 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 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 */