Write a Heptadeca class that encapsulates a Heptadeca number value. A Heptadeca number is one with 17 digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G. The methods the class has are: public void read(), public void set(String), public void set(int), public void set(Heptadeca),public Heptadeca get(), public Heptadeca add(Heptadeca), public Heptadeca subtract(Heptadeca), public Heptadeca multiply(Heptadeca), public Heptadeca divide(Heptadeca), public Heptadeca add(int), public Heptadeca subtract(int), public Heptadeca multiply(int), public Heptadeca divide(int), public Heptadeca add(String), public Heptadeca subtract(String), public Heptadeca multiply(String), public Heptadeca divide(String), public boolean equals(Heptadeca), and public String toString(). Write private methods to check for valid character input, remove the base h character and set the sign. Your class must consider both positive and negative values. Your class should have at least 3 constructors: a default constructor, an explicit constructor with an integer argument and an explicit constructor with a String argument. I will provide a main program as the demo. Recall the nature of numbers and their construction. 13710 is 1 * 102 + 3 * 101 + 7 * 100. In the same way 1A917 would be 1 * 172 + 10* 171 + 9 * 170. Given the decimal number 13710 the digits can be determined using the integer operators / and %. 137 % 10 gives the 7, 137/10 gives 13. 13%10 gives 3 and 13/10 gives 1. 1%10 gives 1 and 1/10 gives 0. The digits base 10 of 137 are 1, 3, 7. The number 13710 converted to base 5 would be 137%5 that gives 2, 137/5 gives 27. 27%5 gives 2, 27/5 gives 5. 5%5 gives 0, 5/5 gives 1. 1%5 gives 1 and 1/5 gives 0. This gives the base 5 number 10225. 13710 converted to base 17 would be 137%17 gives 1, 137/17 gives 8. 8%17 gives 8 and 8/17 gives 0. The number 13710 is therefore 8117.
this is demo class
public class HeptadecaDemo
{
public static void main(String[] args)
{
Heptadeca heptadeca1 = new Heptadeca ("123h");
Heptadeca heptadeca2 = new Heptadeca ("123h");
Heptadeca heptadeca4, heptadeca5, heptadeca6, heptadeca7;
Heptadeca heptadeca8 = new Heptadeca(1999);
System.out.println ("Heptadeca
number heptadeca8: " + heptadeca8);
System.out.println ("First Heptadeca
number: " + heptadeca1);
System.out.println ("Second Heptadeca number: " +
heptadeca2);
if (heptadeca1.equals(heptadeca2))
System.out.println ("heptadeca1 and
heptadeca2 are equal.");
else
System.out.println ("heptadeca1 and
heptadeca2 are NOT equal.");
heptadeca4 = heptadeca1.add(heptadeca2);
heptadeca5 = heptadeca1.subtract(heptadeca2);
heptadeca6 = heptadeca1.multiply(heptadeca2);
heptadeca7 = heptadeca1.divide(heptadeca2);
System.out.println (heptadeca1 + " + " +
heptadeca2 + " is: " + heptadeca4);
System.out.println (heptadeca1 + " - " +
heptadeca2 + " is: " + heptadeca5);
System.out.println (heptadeca1 + " * " +
heptadeca2 + " is: " + heptadeca6);
System.out.println (heptadeca1 + " / " +
heptadeca2 + " is: " + heptadeca7);
System.out.println ();
int number = 6;
System.out.println ("using the integer " + number +
" as the argument " +
"to the math operators ");
heptadeca4 = heptadeca1.add(number);
heptadeca5 = heptadeca1.subtract(number);
heptadeca6 = heptadeca1.multiply(number);
heptadeca7 = heptadeca1.divide(number);
System.out.println (heptadeca1 + " + " + number +
" is: " + heptadeca4);
System.out.println (heptadeca1 + " - " + number +
" is: " + heptadeca5);
System.out.println (heptadeca1 + " * " + number +
" is: " + heptadeca6);
System.out.println (heptadeca1 + " / " + number +
" is: " + heptadeca7);
String value = "6h";
System.out.println ("using the String " + "\"" + value
+ "\"" + " as the argument " +
"to the math operators ");
heptadeca4 = heptadeca1.add(value);
heptadeca5 = heptadeca1.subtract(value);
heptadeca6 = heptadeca1.multiply(value);
heptadeca7 = heptadeca1.divide(value);
System.out.println (heptadeca1 + " + " + value +
" is: " + heptadeca4);
System.out.println (heptadeca1 + " - " + value +
" is: " + heptadeca5);
System.out.println (heptadeca1 + " * " + value +
" is: " + heptadeca6);
System.out.println (heptadeca1 + " / " + value +
" is: " + heptadeca7);
}
}