public class JKFF { private boolean ffQ; private boolean ffJ; private boolean ffK; JKFF() { ffQ = false; ffJ = true; // assume TTL-like ffK = true; } JKFF( boolean initialValue ) { ffQ = initialValue; ffJ = true; ffK = true; } public void setJ( boolean value ) { ffJ = value; } public void setJ( int value ) { ffJ = (value == 0) ? false : true; } public void setK( boolean value ) { ffK = value; } public void setK( int value ) { ffK = (value == 0) ? false : true; } public boolean getQ() { return ffQ; } public void clock() { if ( (ffJ == false) && (ffK == false) ) ; else if ( (ffJ == false) && (ffK == true) ) ffQ = false; else if ( (ffJ == true) && (ffK == false) ) ffQ = true; else // fFJ and FFK both true ffQ = !ffQ; } public String toString() { return "" + ffQ; } }