Contents |
Realize uma classe Java que represente uma porta lógica AND com duas entradas. Esta classe deve chamar-se AndGate2 e ter, entre outras que sejam (justificadamente) julgadas necessárias, a seguinte funcionalidade:
Após ter definido a classe, codifique uma aplicação e a função main respectiva, por forma a demonstrar o correcto funcionamento desta classe. Escolha diferentes combinações de entradas por forma a ter valores distintos na saída dos dois objectos.
Ficheiro AndGate2.java |
---|
1 /**
2 * Logical AND gate.
3 */
4 public class AndGate2 {
5 private boolean _a = false;
6 private boolean _b = false;
7
8 /**
9 * Default constructor: false for all inputs.
10 */
11 public AndGate2() {
12 // nothing to do
13 }
14
15 /**
16 * Inputs receive same value.
17 *
18 * @param v
19 * the input value.
20 */
21 public AndGate2(boolean v) {
22 _a = _b = v;
23 }
24
25 /**
26 * Arbitrary input value combinations.
27 *
28 * @param a
29 * input value
30 * @param b
31 * input value
32 */
33 public AndGate2(boolean a, boolean b) {
34 _a = a;
35 _b = b;
36 }
37
38 /**
39 * @return first input value.
40 */
41 public boolean getA() {
42 return _a;
43 }
44
45 /**
46 * Set input value.
47 *
48 * @param a
49 * input value.
50 */
51 public void setA(boolean a) {
52 _a = a;
53 }
54
55 /**
56 * @return second input value.
57 */
58 public boolean getB() {
59 return _b;
60 }
61
62 /**
63 * Set input value.
64 *
65 * @param b
66 * input value.
67 */
68 public void setB(boolean b) {
69 _b = b;
70 }
71
72 /**
73 * @return value of logical AND operation.
74 */
75 public boolean getOutput() {
76 return _a && _b;
77 }
78
79 /**
80 * @see java.lang.Object#equals(java.lang.Object)
81 */
82 @Override
83 public boolean equals(Object other) {
84 if (other instanceof AndGate2) {
85 AndGate2 andGate = (AndGate2) other;
86 return _a == andGate.getA() && _b == andGate.getB();
87 }
88 return false;
89 }
90
91 /**
92 * @see java.lang.Object#toString()
93 */
94 @Override
95 @SuppressWarnings("nls")
96 public String toString() {
97 return "A:" + _a + " B:" + _b;
98 }
99 }
|