Di nuovo ciao a tutti...scusate ancora...ho eseguito la seconda classe che mi hanno dato per compito è un esttensione della classe OggettoCoppia precedentemente inserita nel forum...
Mi continua a dare errori anche questa classe qualcuno potrebbe aiutarmi...Riporto prima di tutto il codice con i vari commenti:
codice:
class ArrayDiOggetti {
private String[] arrayOggetti;
private int maxOggetti = 0;
// questo costruttore crea un ArrayDiOggetti che potrà contenere
// maxOggetti elementi della classe OggettoCoppia
// maxOggetti è il massimo numero di OggettoCoppia che potranno
// essere contenuti. Se maxOggetti è negativo allora deve essere
// creato un vettore per zero OggettoCoppia
public ArrayDiOggetti (int maxOggetti) {
if (maxOggetti < 0) {
maxOggetti = 0;
arrayOggetti = new String[maxOggetti];
}
}
// questo costruttore crea un ArrayDiOggetti partendo dal vettore
// array di OggettoCoppia. Array è il vettore di oggetti che verra
// inizialmete memorizzato. Se array è NULL allora deve essere creato
// un vettore per zero OggettoCoppia
public ArrayDiOggetti (OggettoCoppia[] array) {
if (array == null)
arrayOggetti = new String[0];
else
arrayOggetti = array; //???????
}
// questo metodo restituisce l'informazione sul massimo numero di
// OggettoCoppia che possiamo memorizzare.
// Returns: il massimo numero di OggettoCoppia memorizzabile
public int maxNumOggetti() {
return maxOggetti;
}
// questo metodo inserisce pair alla posizione pos nell'ArrayDiOggetti.
// Se la posizione non è valida non verra inserito nulla.
// pair = contiene l'OggettoCoppia da memorizzare
// pos = contiene la posizione ove inserire l'OggettoCoppia
// returns: false se pos è al di fuori del range, true altrimenti
public boolean insert (OggettoCoppia pair, int pos) {
if (pos < 0 | pos >= arrayOggetti.length)
return false;
arrayOggetti[pos] = pair; //????
return true;
}
// questo metodo restituisce l'OggettoCoppia memorizzato alla posizione
// pos. Se la posizione non è valida verra restituito NULL.
// pos = contiene la posizione dell'OggettoCoppia cui vogliamo accedere
// Returns: NULL se pos è al di fuori del range,
// l'OggettoCoppia memorizzato alla poszione pos altrimenti
public OggettoCoppia read (int pos) {
if (pos < 0 | pos >= arrayOggetti.length)
return null;
else
arrayOggetti = OggettoCoppia[pos];
}
// questo metodo restituisce l'OggettoCoppia memorizzato alla posizione
// pos, inoltre attua l'estrazione dell'OggettoCoppia inserendo NULL alla
// posizione pos. Se la posizione non è valida verra restituito NULL
// pos = contiene la posizione dell'OggettoCoppia cui vogliamo accedere, e
// dove inseriremo il valore NULL
// Returns: NULL se pos è al di fuori del range del vettore, l'OggettoCoppia
// memorizzato alla posizione pos altrimenti
public OggettoCoppia extract (int pos) {
String estratta = "";
if (pos < 0 | pos >= arrayOggetti.length)
return null;
else {
estratta = arrayOggetti[pos];
return null;
}
}
// restituisce una stringa contenetne le informazioni sullo stato
// dell'ArrayDiOggetti.
// Returns: per ogni OggettoCoppia, viene inserita una linea di testo
// in ordine: 1) se l'OggettoCoppia in posizione i è NULL allora viene
// aggiunta una linea iniziante con il numero i e immediatamente
// conclusa con il carattere "a capo"; 2) se l'OggettoCoppia in
// posizione i è diverso da NULL allora viene aggiunta una linea
// iniziante con il numero i, seguita da uno spazio, seguita dalla
// stringa dell'OggettoCoppia, seguita da un altro spazio, seguita dal
// numero intero-positivo dell'OggettoCoppia, e conclusa con il
// carattere "a capo".
public String toString() {
String stringa = "";
for (int i = 0; i < arrayOggetti.length; i++) {
if (arrayOggetti[i] == null)
stringa = stringa + i + "\n";
// else
// stringa = stringa + i + " " + OggettoCoppia + " " + num + "\n"; //?????
}
return stringa;
}
// questo metodo confronta l'ArrayDiOggetti sui cui viene chiamato con
// altroVettore. AltroVettore = contiene l'ArrayDiOggetti con cui fare
// il confronto. Returns: true se i due ArrayDiOggetti confrontati
// possono contenere esattamente lo stesso numero di coppie, ed inoltre
// le coppie alle stesse posizioni contengono esattamente la stessa
// stringa e lo stesso numero intero-positivo. Altrimenti viene
// restituito false.
public boolean equals (ArrayDiOggetti altroVettore) {
if (arrayOggetti.equals(altroVettore))
return true;
else
return false;
}
// questo metodo confronta l'ArrayDiOggetti sui cui viene chiamato con
// altroVettore. altroVettore = contiene l'ArrayDiOggetti con cui fare
// il confronto. Returns: ture se i due ArrayDiOggetti confrontati
// possono contentere esattamente lo stesso numero di coppie, ed inoltre
// in ogni posizione i due ArrayDiOggetti contengono esattamente la
// stessa coppia (non solo gli stessi valori). Altrimenti viene
// restituito false
public boolean anotherEquals (ArrayDiOggetti altroVettore) {
if (arrayOggetti.equals(altroVettore)) // ma viene uguale all'altro cosa dimentico????
return true;
else
return false;
}
// duplica l'ArrayDiOggetti. Returns: una copia dell'ArrayDiOggetti,
// contentente un clone degli OggettoCoppia del oggetto su cui il metodo
// ha chiamato
public ArrayDiOggetti clone() {
return new ArrayDiOggetti (maxOggetti);
}
}
Gli errori che il compilatore mi da sono i seguenti...
codice:
ArrayDiOggetti.java:38: incompatible types
found : OggettoCoppia[]
required: java.lang.String[]
arrayOggetti = array; //???????
^
ArrayDiOggetti.java:64: incompatible types
found : OggettoCoppia
required: java.lang.String
arrayOggetti[pos] = pair; //????
^
ArrayDiOggetti.java:84: cannot find symbol
symbol : variable OggettoCoppia
location: class ArrayDiOggetti
arrayOggetti = OggettoCoppia[pos];
^
3 errors
Procedura completata con codice di uscita 1
Non so più dove sbattere la testa oggi ma cosa sbaglio secondo me sbaglio il richiamo dell'oggetto dell'altra classe OggettoCoppia o no??? se sì come si fa???
Grazie ancora