1
6 public class HalfAdder implements Component {
7
8 private Gate[] gate = new Gate[6];
10
11 public HalfAdder(Signal x, Signal y) {
12
13 gate[0] = new Not(x); gate[1] = new Not(y); gate[2] = new And(gate[0].out(), y); gate[3] = new And(x, gate[1].out()); gate[4] = new Or(gate[2].out(), gate[3].out()); gate[5] = new And(x, y); }
21
22 public void operate() {
24 for (int i=0; i<gate.length; i++)
25 gate[i].operate();
26 }
27
28 public Signal getSum() {
30 return gate[4].out();
31 }
32
33 public Signal getCarry() {
35 return gate[5].out();
36 }
37
38 }
39