class Dog string name int age Dog friend void bark() print name + " says woof" end bark endclass void main() Dog fluffy // infinite puppies end main ---------------------------- class Dog string name int age Dog * friend void bark() print name + " says woof" end bark endclass void main() Dog fluffy fluffy.name = "Muff" Dog spot spot.name = "Spot" spot.friend = *fluffy spot.friend.age = 3 fluffy.age = 3 end main ---------------------------- class Dog string name int age Dog * friend endclass void main() Dog fluffy fluffy.name = "Muff" Dog spot spot.name = "Spot" spot.friend.age = 3 // ERROR, friend is null spot.friend = *fluffy spot.friend.age = 3 fluffy.age = 3 end main ---------------------------- class Dog string name int age Dog * friend endclass void main() Dog fluffy fluffy.name = "Muff" Dog * spot = new Dog spot.name = "Spot" fluffy.friend = spot spot.friend = new Dog end main ---------------------------- Dog ozzie ozzie.age = 10 Dog harriet dog2.harriet = 7 if (ozzie.age > harriet.age) then print ozzie.name + “ wins!” print “lived: “ + ozzie.age else // same code twice print harriet.name + “ wins!” print “lived: “ + harriet.age endif Dog ozzie ozzie.age = 10 Dog harriet dog2.harriet = 7 Dog * winner if (ozzie.age > harriet.age) then winner = *ozzie else winner = *harriet endif print winner.name + “ wins!” print “lived: “ + winner.age ---------------------------- class Dog string name int age Dog * friend Cat * enemy endclass class Cat string name end class void main() Dog fluffy fluffy.name = "Muff" Dog spot spot.name = "Spot" Cat ginger ginger.name = "Ginger" spot.friend = *fluffy spot.enemy = Ginger spot.friend.age = 8 spot.enemy.age = 8 // ERROR, Cat doesn't have age variable end main ---------------------------- class Dog string name int age Dog * friend endclass void dogDay(Dog * doggy) Dog * newFriend newFriend.name = "Mr Friendly" doggy.friend = newFriend print "it was a big day, " doggy.name + " made a friend end dogDay void main() Dog spot spot.name = "Spot" dogDay(spot) print spot.friend.name end main ---------------------------- class Course string name int credits Course * preReq end class void main() Course * j2 = new Course j2.name = "Java II" j2.credits = 4 Course * j1 = = new Course j1.name = "Java I" j1.credits = 4 Course * fun = new Course fun.name = "Fundamentals" fun.credits = 3 Course * basic = new Course basic.name = "Computer Basics" basic.credits = 3 j2.preReq = j1 j1.preReq = fun fun.preReq = basic creditReport(j2) creditReport(fun) end main void creditReport(Course * aCourse) // credits to take this course int totalCredits = aCourse.credits Course * pre = aCourse.preReq // keep adding classes until we have no prereq while (pre != null) totalCredits = totalCredits = pre.credits // now aCourse is the pre-req of the last class added pre = pre.preReq end while end creditReport // alternative main void main() Course * j2 = new Course j2.name = "Java II" j2.credits = 4 j2.preReq = new Course j2.preReq.name = "Java I" j2.preReq.credits = 4 j2.preReq.preReq = new Course j2.preReq.preReq.name = "Fundamentals" j2.preReq.preReq.credits = 3 j2.preReq.preReq.preReq = new Course j2.preReq.preReq.preReq.name = "Computer Basics" j2.preReq.preReq.preReq.credits = 3 creditReport(j2) creditReport(j2.preReq.preReq) end main