Ciao a tutti, vorrei chiedervi aiuto su un esercizio che non riesco a risolvere. Devo pregettare una classe che implementa Polinomi, e fin qui nulla di difficoltoso.. Essendo per definizione un tipo di dato immutabile, rappresento il polinomio come un vettore di interi.

per chiarezzaecco una parte della classe e il costruttore:

codice:
private int[] termini;
private int grado;

public Poly (int c, int n) throws NegativeExponentException{
	// POST:if n<0 solleva l'eccezione NegativeExponentException
	// altrimenti inizializza this al polinomio cx^n
	if (n<0) throw new NegativeExponentException("Poly(int,int) constructor");
	if (c==0){termini=new int[1];grado=0;return;}
	termini=new int[n+1];
	for (int i=0;i<n;i++) termini[i]=0;
	termini[n]=c;grado=n;
 }
Il mio problema è questo: il coefficiente nel mio caso non deve essere un intero, ma un tipo di dato Razionale , precedentemente implementato in un'altra classe (che ha due campi privati interi, numeratore e denominatore) e il prototipo del mio costruttore deve essere

codice:
public Poly (Razionale r, int n)

Non riesco a capire come posso ad esempio fare il testo sul Razionale nullo, non accedendo ai campi privati.. e come andare successivamente a memorizzare il razionale nel vettore di interi. Non posso fare un cast in quanto int e razionale non sono nella stessa gerarchia, e non posso modificare la classe Razionale; allo stessomodo non ha senso creare un vettore di Razionali per memorizzare il polinomio....

Come fare? Grazie a chi mi risponderà!