Java Lang Java by API

/*
 * Output:
 * 
 * Got: 0
 * Got: 0
 * Got: 0
 * ...
 */
class Queue {
  int n;
  synchronized int get() {
  System.out.println("Got: " + n);
  return n;
  }
  synchronized void put(int n) {
  this.n = n;
  System.out.println("Put: " + n);
  }
}
class Consumer implements Runnable {
  Queue q;
  Consumer(Queue q) {
  this.q = q;
  new Thread(this, "Consumer").start();
  }
  public void run() {
  while(true) {
      q.get();
  }
  }
}
public class MainClass {
  public static void main(String args[]) {
  Queue q = new Queue();
  new Consumer(q);
  }
}