teaching machines

CS 145 Lecture 35 – A World of Objects

Agenda

  • what ?s
  • think about this
  • managing complexity
  • a spectrum of encapsulation
  • a stopwatch
  • interactive fiction

TODO

  • Read chapter 8 through 8.4. Offer three or more questions, observations, or “headlines” about the reading and ideas we are discussing on a 1/4 sheet to be turned in Monday.

Think About This

Games are often modeled by representing each of a game’s “nouns” as an object. The objects interact with one another.

You are writing a social farming game. Identify on your own an object in your game. What are its behaviors (methods), that other objects can trigger? What is its state (instance variables)?

With a partner, discuss your objects. Find a way for your objects to interact, invoking each other’s behaviors.

Code

UhOh.java

package lecture1124;

public class UhOh {
  public static void main(String[] args) {
    adInfinitum();
  }
  
  public static void adInfinitum() {
    adInfinitum();
  }
}

Finally.java

package lecture1124;

import java.io.IOException;
import java.io.PrintWriter;

public class Finally {
  public static void main(String[] args) {
    PrintWriter out = null;
    try {
      out = new PrintWriter("/Users/johnch/Desktop/foo.txt");
      out.println("asdfadsfads");
      String stringWithNumber = "dog51";
      int i = Integer.parseInt(stringWithNumber);
    } catch (IOException e) {
    } finally {
      if (out != null) {
        out.close();
      }
    }
  }
}

StopWatch.java

package lecture1124;

public class StopWatch {
  private long startTime;
  private long stopTime;

  public void start() {
    startTime = System.currentTimeMillis();
  }
  
  public void stop() {
    stopTime = System.currentTimeMillis();
  }
  
  public void reset() {
  }
  
  public double getElapsedSeconds() {
    return (stopTime - startTime) / 1000.0;
  }
}

Alphabet.java

package lecture1124;

import java.util.Scanner;

public class Alphabet {
  public static void main(String[] args) {
    StopWatch timer = new StopWatch();
    timer.start();
    
    // do some long running activity
    Scanner in = new Scanner(System.in);
    System.out.print("Enter alphabet backwards: ");
    String line = in.nextLine();
    System.out.println(line.equals("zyxwvutsrqponmlkjihgfedcba"));
    
    timer.stop();
    System.out.println(timer.getElapsedSeconds());
  }
}

Haiku

on state and behavior:
Dad can’t fix my car
Or read to his grandchildren
With 0 HP

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *