PDA

Visualizza la versione completa : java - iterator, come inserire l'interfaccia?


gioconda
24-03-2003, 17:23
Salve,

ho una idea abbastanza vaga di cosa sono le interfacce

Ho creato un vector, e vorrei scorrerlo con iterator, ma so che una interfaccia. Se lo uso da solo mi da errore, come faccio a dirgli che voglio usare l'interfaccia iterator?

E... qualcuno mi saprebbe spiegare un po meglio che sono queste interfacce???????????????????????????:confused: :confused: :confused:

gioconda
24-03-2003, 17:38
Seguendo un' esempio simile ho scritto una cosa come:

class x implements Iterator {

ma mi dice che deve essere dichiarato come abstract, qualcuno di voi sa di che si tratta?

floyd
24-03-2003, 17:45
le interfacce definiscono il comportamento di un oggetto con dei metodi da implementare in pratica
public interface Interfaccia {
public void metodo();
}
public class Oggetto implements Interfaccia {
public void metodo() {
corpo del metodo
}
}

gioconda
24-03-2003, 18:17
import java.util.*;


class Esercizio6 implements Iterator {

public static void main(String args[]) {

Vector v1=new Vector();
Vector v2=new Vector();

for(int i=0; i<args.length; i++) {

for (int a=0; a<args[i].length(); a++) {

if (Character.isDigit(args[i].charAt(a))) {

v1.addElement(new Integer (a));

} else {

v2.addElement(new Integer (a));

}

}

}

System.out.println(v1.size());
System.out.println(v2.size());

Iterator x=v1.iterator();
while (x.hasNext()) {

System.out.println (x);


}

}

}


Continua a dirmi che dovrebbe essere dichiarato abstract, perch non definito il metodo hasNext()...???:bh:

floyd
24-03-2003, 18:27
NON devi implemetare iterator in una classe che non contiene oggetti (come Iterator)

gioconda
24-03-2003, 18:56
Avendo iniziato da pochissimo possibile che sto per dire una grande ca..........a, ma quando io dichiaro Vector v1=new Vector, non sto creando un oggetto di vector? E quindi perch non posso usare iterator su un oggetto come vector?

Ho le idee molto confuse su questa cosa, se sono completamente fuori strada potresti indicarmi un qualcosa su internet da leggere sull'argomento se lo conosci?

Grazie

floyd
24-03-2003, 19:25
se devo implementare un'interfaccia Animale definisco i metodi nasce mangia repira cammina, quindi istanzio un oggetto public class Uomo implemets Animale e implemento i metodi di prima, il metodo vive (non ereditato dall'interfaccia) sicuro che debba contenere un'istanza di un Vector, ma Uomo per questo non deve implementare Iterator
:gren:

pippo75
25-03-2003, 10:23
Originariamente inviato da gioconda
Seguendo un' esempio simile ho scritto una cosa come:

class x implements Iterator {

ma mi dice che deve essere dichiarato come abstract, qualcuno di voi sa di che si tratta?

Le interfacce sono delle classe particolari in cui non ci sono i costruttori, e in cui vengono solo dichiarati dei metodi.
Tutte le classe che implementano un'interfaccia devono implementare tutti i metodi dichiarati nell'interfaccia stessa
un po' come dire al compilatore "io mi impegno a dichiarare in questa classe tutti i metodi presenti nell'interfaccia"
se anche uno solo di questi metodi non viene implementato, il compilatore si arrabbia :)
e infatti ti suggerisce di definire la classe abstract

Una classe abstract simile all'interfaccia, infatti contiene la definizione di metodi.
A differenza dell'interfaccia, per, i metodi possono anche essere implementati

Loading