Ah scusate, grazie dell'avvertimento. Allora mi correggo.
Per invariante e astrazione io ho messo
codice:
I(c)=c.insieme!=null & c.v!=null
alpha(c)=c.insieme & c.v
penso siano errati...
Il mio dubbio più grande è sulla sottoclasse. Non so cosa mettere nel costruttore...
Dato il testo, non capisco cosa passare come parametro. Io ho lasciato vuoto e gli ho fatto ereditare il vettore v...
codice:
public Unisciset(){
super(v);}
il metodo union esteso era così
codice:
public void union(Set a) throws ClassCastException{
/*EFFECTS: se gli elementi di a non sono dello stesso tipo di quelli di this, solleva CCE, altrimenti modifica this realizzando l'unione con a.*/}
Ho implementato così:
codice:
public void union(Set a) throws ClassCastException{
for(Iterator i=a.elements(); i.hasNext())
if(!i.next().isinstance(insieme)) throw new ClassCastException("UnisciSet.union");
for(Iterator i=a.elements(); i.hasNext())
if(!this.IsIn(i.next())) v.add(i.next());
}
Secondo voi è corretto?