// $Id: methcall.java,v 1.1 2004-05-23 07:14:27 bfulgham Exp $ // http://www.bagley.org/~doug/shootout/ // Collection class code is from my friend Phil Chu, Thanks Phil! import java.io.*; import java.util.*; import java.text.*; class Toggle { boolean state = true; public Toggle(boolean start_state) { this.state = start_state; } public boolean value() { return(this.state); } public Toggle activate() { this.state = !this.state; return(this); } } class NthToggle extends Toggle { int count_max = 0; int counter = 0; public NthToggle(boolean start_state, int max_counter) { super(start_state); this.count_max = max_counter; this.counter = 0; } public Toggle activate() { this.counter += 1; if (this.counter >= this.count_max) { this.state = !this.state; this.counter = 0; } return(this); } } public class methcall { public static void main(String args[]) throws IOException { int n = Integer.parseInt(args[0]); boolean val = true; Toggle toggle = new Toggle(val); for (int i=0; i<n; i++) { val = toggle.activate().value(); } System.out.println((val) ? "true" : "false"); val = true; NthToggle ntoggle = new NthToggle(true, 3); for (int i=0; i<n; i++) { val = ntoggle.activate().value(); } System.out.println((val) ? "true" : "false"); } }