abstract public class DigitalComponent {
	protected Wire[] inputWires;
	protected Wire[] outputWires;
	public DigitalComponent(int numInputs, int numOutputs) {
		inputWires = new Wire[numInputs];
		outputWires = new Wire[numOutputs];
	}
	public DigitalComponent(int numInputs) {
		this(numInputs, 1);
	}
	public void addInput(Wire w, int index) {
		if (index < 0 || inputWires.length <= index) {
			System.out.println("index out of range");
			System.exit(1);
		}
		inputWires[index] = w;
	}

	public void addOutput(Wire w, int index) {
		if (index < 0 || outputWires.length <= index) {
			System.out.println("index out of range");
			System.exit(1);
		}
		outputWires[index] = w;
	}

}