public class Calc_overload
{
	private int numButtons;
	private String type;
	private String color;


	//---------------default constructor; accepts no arguments:

	public Calc_overload()
	{
		System.out.println (
		"Constructor fired, and a Calc_constr  was instantiated\n");

		numButtons=5;
		type="standard";
		color="blue";
	}

	//------------parameterized constructor; accepts arguments:

	public Calc_overload(int n, String t, String c)
	{
		numButtons=n;
		type=t;
		color=c;
	}


// -------overload method (add)

	public int add(int num1, int num2)  {return num1+num2;}
	public double add (double num1, double num2)  {return num1+num2;}


	public int multiply (int num1, int num2)  {return num1*num2;}


	public long factorial (int num1)
	{
		long answer=1;

		for (int i=num1; i>1; i--)
		{
			answer = answer*i;			//answer*=i;
		}
		return answer;
	 }

	public long power (int num1, int num2)
	{
		long answer =1;

		while (num2>0)
		{
			answer=answer*num1;
			num2--;
		}
		return answer;
	}


	//returns a String description of a calculator
	public String toString()
	{
		String s = "You have a " + color + "," + type +
				   " calculator with " +numButtons+ " buttons.";
		return s;
	}
}

