1   /**
2    * 183.592 Programmierpraxis TU Wien WS2014/15 H.Moritsch
3    * Volladdierer-Klasse
4    */
5   public class FullAdderComponent {
6   
7       // ein Volladierer besteht aus zwei Halbaddiern und einem OR-Gatter
8       private HalfAdderComponent ha1;
9       private HalfAdderComponent ha2;
10      private Gate or;
11  
12      public FullAdderComponent(Gate x, Gate y, Gate cIn) {
13  
14          // Aufbau des Volladierers
15          ha1 = new HalfAdderComponent( x, y);
16          ha2 = new HalfAdderComponent( ha1.getSum(), cIn);
17          or  = new Gate( ha1.getCarry(), "OR", ha2.getCarry());
18      }
19  
20      // Volladierer schaltet (Reihenfolge!)
21      public void operate() {
22          ha1.operate();
23          ha2.operate();
24          or.operate();
25      }
26  
27      // sum-Ausgang
28      public Gate getSum() {
29          return ha2.getSum();
30      }
31  
32      // carry-Ausgang
33      public Gate getCarryOut() {
34          return or;
35      }
36  
37  }
38