Complex numbers Learn programming Java

Lesson:

OOP More On Classes


Exercise:

Complex numbers


Objetive:

A complex number has two parts: the real part and the imaginary part. In a number such as a+bi (2-3i, for example) the real part would be "a" (2) and the imaginary part would be "b" (-3).

Create a class ComplexNumber with:
A constructor to set the values for the real part and the imaginary part.
Setters and getters for both.
A method "ToString", which would return "(2,-3)"
A method "GetMagnitude" to return the magnitude of the complex number (square root of a2+b2)
A method "Add", to sum two complex numbers (the real part will be the sum of both real parts, and the imaginary part will be the sum of both imaginary parts)
Create a test program, to try these capabilities.


Code:

import java.util.*;
public class ComplexNumber
{
	protected double a, b;

	public ComplexNumber(double realPart, double imaginaryPart)
	{
		a = realPart;
		b = imaginaryPart;
	}

	public final double GetReal()
	{
		return a;
	}

	public final void SetReal(double a)
	{
		this.a = a;
	}

	public final double GetImaginary()
	{
		return b;
	}

	public final void SetImaginary(double b)
	{
		this.b = b;
	}

	public final String toString()
	{
		return "(" + a + "," + b + ")";
	}

	public final double GetMagnitude()
	{
		return Math.sqrt((a * a) + (b * b));
	}

	public final void Add(ComplexNumber c2)
	{
		a += c2.GetReal();
		b += c2.GetImaginary();
	}
}

public class Main
{
	public static void main(String[] args)
	{
		boolean debug = false;

		ComplexNumber number = new ComplexNumber(5, 2);
		System.out.println("Number is: " + number.toString());

		number.SetImaginary(-3);
		System.out.println("Number is: " + number.toString());

		System.out.print("Magnitude is: ");
		System.out.println(number.GetMagnitude());

		ComplexNumber number2 = new ComplexNumber(-1, 1);
		number.Add(number2);
		System.out.print("After adding: ");
		System.out.println(number.toString());

		if (debug)
		{
			new Scanner(System.in).nextLine();
		}
	}
}

Juan A. Ripoll - Systems Tutorials and Programming Courses ©  All rights reserved.  Legal Conditions.