package uk.ac.cam.rkh23.OOP.Complex;

/**
 * A mutable class representing a complex number
 * @author robert
 *
 */
public class Complex {

	// All state should be private to start with
	private  double mImag;
	private  double mReal;

	/**
	 * Set the parts
	 * @param real
	 * @param imag
	 */
	public void set(double real, double imag) {
		mReal=real;
		mImag=imag;
	}
	
	/**
	 * Get the imaginary part
	 * @return
	 */
	public double getImag() {
		return mImag;
	}
	
	
	/**
	 * Get the real part
	 * @return
	 */
	public double getReal() {
		return mReal;
	}
	
	
	/**
	 * Add another complex number to this one, changing the
	 * internal values. 
	 * @param c
	 */
	public void add(Complex c) {
		mImag = mImag + c.getImag();
		mReal = mReal + c.getReal();
	}
	
	
	/**
	 * Test code
	 * @param args
	 */
	public static void main(String[] args) {
		Complex a = new Complex();
		a.set(1.0, 1.0);
		Complex b = new Complex();
		b.set(2.0,2.0);
		
		System.out.println(a.getReal()+" "+a.getImag());
		a.add(b);
		System.out.println(a.getReal()+" "+a.getImag());
	}
}
