// Electrical quantities classes: Power // ----------------------------- package electric; public class Epower { double value; public Epower(double watts) {value = watts;} public Epower(Epower x) {value = x.value;} public Epower() {value = 0;} // Arithmetic operations (additive pattern) // --------------------- public Epower addSet(Epower rs) {value += rs.value; return this;} public Epower subSet(Epower rs) {value -= rs.value; return this;} public Epower mpySet(double rs) {value *= rs; return this;} public Epower divSet(double rs) {value /= rs; return this;} public Epower modSet(double rs) {value %= rs; return this;} public Epower modSet(Epower rs) {value %= rs.value; return this;} public Epower minus() {return new Epower(-value);} public double div(Epower rs) {return value / rs.value;} public Epower add(Epower rs) {return new Epower(this).addSet(rs);} public Epower sub(Epower rs) {return new Epower(this).subSet(rs);} public Epower mpy(double rs) {return new Epower(this).mpySet(rs);} public Epower div(double rs) {return new Epower(this).divSet(rs);} public Epower mod(double rs) {return new Epower(this).modSet(rs);} public Epower mod(Epower rs) {return new Epower(this).modSet(rs);} // Mixed class arithmetic // ---------------------- public Epotential div(Ecurrent i) {return new Epotential(value/i.value);} public Ecurrent div(Epotential v) {return new Ecurrent(value/v.value);} public boolean equals (Epower rs){return value == rs.value;} public boolean lessThan (Epower rs){return value < rs.value;} public boolean greaterThan(Epower rs){return value > rs.value;} public String toString() {return value + " watts";} }