Esercizio III Si definisca una classe MatriceQuadrata che rappresenti una matrice quadrata come un array bidimensionale di double (double [][]) privato. La dimensione della matrice deve essere ricevuta dal costruttore e mantenuta in una variabile privata. Il costruttore deve inizializzare la matrice in modo che essa rappresenti la matrice identità. Si definisca una classe Vettore che rappresenti un vettore come un array di double (double []). La dimensione del vettore deve essere ricevuta dal costruttore e mantenuta in una variabile privata. -------- Si definiscano i metodi di istanza per impostare e richiamare un elemeto della matrice, nonché per conoscere la dimensione della matrice. -------- Si definiscano i metodi di istanza per impostare e richiamare un elemento del vettore, nonché per conoscere la dimensione del vettore. -------- Si definiscano i metodi di istanza per impostare ad uno stesso valore una colonna della matrice e una riga della matrice (rispettivamente setCol e setRow). -------- Si definiscano due metodi di istanza per la classe MatriceQuadrata che ricevono come parametro un intero e restituiscono un oggetto Vettore con i valori presi rispettivamente da una riga e da una colonna della matrice (rispettivamente getRow e getCol). -------- Si definisca un metodo di classe "sum" che restituisce una nuova matrice somma di due matrici prese come parametro. Assicurarsi che le dimensioni siano compatibili!! -------- Si definisca un metodo di classe "prod" che restituisce una nuova matrice prodotto di due matrici prese come parametro. Assicurarsi che le dimensioni siano compatibili!! -------- Si definiscano i metodi "sum" e "prod" per due vettori. Si posso utilizzare tali metodi per realizzare quelli per le matrici. -------- Si definisca un metodo di classe "trasp" che restituisce la trasposta (se esiste...) di una matrice presa come parametro.