Diseñar una clase llamada MyInteger

IDIOMA: JAVA

DESAFÍO:

(La clase MyInteger) Diseñe una clase llamada MyInteger. La clase contiene:
* Un campo de datos int llamado valor que almacena el valor int representado por este objeto.
* Un constructor que crea un objeto MyInteger para el valor int especificado. Un método getter que devuelve el valor int.
* Los métodos isEven (), isOdd () e isPrime () que devuelven verdadero si el valor en este objeto es par, impar o primo, respectivamente.
* Los métodos estáticos isEven (int), isOdd (int) e isPrime (int) que devuelven verdadero si el valor especificado es par, impar o primo, respectivamente.
* Los métodos estáticos isEven (MyInteger), isOdd (MyInteger) e isPrime (MyInteger) que devuelven verdadero si el valor especificado es par, impar o primo, respectivamente.
* Los métodos equals (int) y equals (MyInteger) que devuelven verdadero si el valor en este objeto es igual al valor especificado.
* Un método estático parseInt (char []) que convierte una matriz de caracteres numéricos en un valor int.
* Un método estático parseInt (String) que convierte una cadena en un valor int.
Dibuje el diagrama UML para la clase y luego implemente la clase.

Escriba un programa cliente que pruebe todos los métodos de la clase. Dado que la definición de un número primo es un entero positivo, asegúrese de indicarle al usuario que ingrese únicamente números enteros positivos.

SOLUTION:


public class MyInteger{
    int value;
   
    public MyInteger(int newValue){
        value = newValue;
    }
   
    public int getValue(){
        return value;
    }
   
    public boolean isEven(){
        if(value % 2 ==0){
            return true;
        }
        return false;
    }
   
    public boolean isOdd(){
        if(value % 2 != 0){
            return true;
        }
        return false;
    }
   
    public boolean isPrime(){
        int i = 0;
        for(i = 2; i <= value / 2; i++){
            if(value % i != 0){
                return true;
            }
        }
        return false;
    }
   
    public boolean isEven(int value){
        if(value % 2 == 0){
            return true;
        }
        return false;
    }
   
    public boolean isOdd(int value){
        if(value % 2 != 0){
            return true;
        }
        return false;
    }
   
    public static boolean isPrime(int value){
        return isPrime(value);
    }
   
    public static boolean isEven(MyInteger myInteger){
        return myInteger.isEven(myInteger.getValue());
    }
   
    public static boolean isOdd(MyInteger myInteger){
        return myInteger.isOdd(myInteger.getValue());
    }
   
    public static boolean isPrime(MyInteger myInteger){
        return myInteger.isPrime(myInteger.getValue());
    }
   
    public boolean equals(int intValue){
        return value == intValue;
    }

    public boolean equals(MyInteger myInteger){
        return equals(myInteger.getValue());
    }
   
    public static int parseInt(String s){
        return Integer.parseInt(s);
    }
}