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