This is supposed to be programmed using Java
Consider an interface public interface NumberFormatter String format (int n) Provide four classes that implement this interface. A DefaultFormatter formats an integer in the usual way. A DecimalSeparatorFormatter formats an integer with decimal separators; for example, one million as 1,000,000. An AccountingFormatter formats negative numbers with parenthesis; for example, -1 as (1). A BaseFormatter formats the number as base n, where n is any number between 2 and 36 that is provided in the constructor Write a method that takes an array of integers and a NumberFormatter object and prints each number on a separate line, formatted with the given formatter. The numbers should be right aligned. Provide a test class called FormatintsTest.java that shows the program working with an array of numbers. Use the numbers 8, 100,-10, 45, 0 as your test values in the array. Show all four formatters working with the array. Use 20 for n for the BaseFormatter. Consider an interface public interface NumberFormatter String format (int n) Provide four classes that implement this interface. A DefaultFormatter formats an integer in the usual way. A DecimalSeparatorFormatter formats an integer with decimal separators; for example, one million as 1,000,000. An AccountingFormatter formats negative numbers with parenthesis; for example, -1 as (1). A BaseFormatter formats the number as base n, where n is any number between 2 and 36 that is provided in the constructor Write a method that takes an array of integers and a NumberFormatter object and prints each number on a separate line, formatted with the given formatter. The numbers should be right aligned. Provide a test class called FormatintsTest.java that shows the program working with an array of numbers. Use the numbers 8, 100,-10, 45, 0 as your test values in the array. Show all four formatters working with the array. Use 20 for n for the BaseFormatter