Class AbstractBoolVect
- All Implemented Interfaces:
BoolVect
- Direct Known Subclasses:
ArrayBoolVect, LongBoolVect, SetBoolVect
BoolVect.
Questa classe implementa i metodi totali BoolVect.leggi(int) e BoolVect.scrivi(int, boolean) grazie ai metodi parziali leggiParziale(int) e scriviParziale(int, boolean) che devono essere implementati dalle sue sottoclassi; il vantaggio
è che le sottoclassi, potendo evitare i controlli sulla posizione, potranno fornire una
implementazione molto snella.
Implementa inoltre i metodi BoolVect.and(BoolVect), BoolVect.or(BoolVect) e
BoolVect.xor(BoolVect) a partire dagli operatori booleani definiti in base
all'interfaccia AbstractBoolVect.BooleanOperator, grazie alla funzione componenteAComponente(BooleanOperator, BoolVect) che li estende componente a componente.
Infine, provvede una implementazione elementare di toString() ed una molto
inefficiente per equals(Object), le sottoclassi concrete devono implementare se
possibile una versione ottimizzata di tale metodo, ma in ogni caso una versione coerente di
Object.hashCode().
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceInterfaccia che descrive l'applicazione di un operatore logico binario questo BoolVect. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCostruttore protetto, usabile solo dalle sottoclassi. -
Method Summary
Modifier and TypeMethodDescriptionvoidRende questo BoolVect uguale all'and componente a componente di questo BoolVect e quello specificato.voidMetodo parziale che, dato un operatore booleano e un BoolVect applica l'operazione componente a componente ottenuta dall'operatore booleano a questo e il BoolVect dato e ne salva il risultato in questo.booleanImplementazione non specializzata di equals.booleanleggi(int pos) Legge il valore di verità di posizione specificata.protected abstract booleanleggiParziale(int pos) Funzione parziale che restituisce il valore di verità di posizione specificata.voidRende questo BoolVect uguale all'or componente a componente di questo BoolVect e quello specificato.voidscrivi(int pos, boolean val) Scrive il valore di verità dato nella posizione specificata.protected abstract voidscriviParziale(int pos, boolean val) Funzione parziale che scrive il valore di verità dato nella posizione specificata.toString()Restituisce la versione stringa di questo BoolVect.voidRende questo BoolVect uguale allo xor componente a componente di questo BoolVect e quello specificato.Methods inherited from class Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface BoolVect
daString, dimensione, pulisci, taglia
-
Constructor Details
-
AbstractBoolVect
protected AbstractBoolVect()Costruttore protetto, usabile solo dalle sottoclassi.
-
-
Method Details
-
leggiParziale
protected abstract boolean leggiParziale(int pos) Funzione parziale che restituisce il valore di verità di posizione specificata.- Parameters:
pos- la posizione, deve essere compresa tra 0 (incluso) e la taglia (esclusa).- Returns:
- il valore di verità.
-
scriviParziale
protected abstract void scriviParziale(int pos, boolean val) Funzione parziale che scrive il valore di verità dato nella posizione specificata.- Parameters:
pos- la posizione, deve essere compresa tra 0 (incluso) e la taglia (esclusa).val- il valore.
-
leggi
Description copied from interface:BoolVectLegge il valore di verità di posizione specificata.Se la posizione eccede la dimensione (o la taglia) verrà restituito convenzionalmente il valore
false.- Specified by:
leggiin interfaceBoolVect- Parameters:
pos- la posizione.- Returns:
- il valore di verità.
- Throws:
IndexOutOfBoundsException- se la posizione è negativa.
-
scrivi
Description copied from interface:BoolVectScrive il valore di verità dato nella posizione specificata.- Specified by:
scriviin interfaceBoolVect- Parameters:
pos- la posizione.val- il valore di verità- Throws:
IndexOutOfBoundsException- se la posizione è negativa, o il valore ètruee la posizione è maggiore o uguale alla taglia.
-
componenteAComponente
public void componenteAComponente(AbstractBoolVect.BooleanOperator op, BoolVect other) throws IndexOutOfBoundsException Metodo parziale che, dato un operatore booleano e un BoolVect applica l'operazione componente a componente ottenuta dall'operatore booleano a questo e il BoolVect dato e ne salva il risultato in questo.Gli argomenti non devono essere
null(questa è una funzione parziale).- Parameters:
op- l'operatore booleano.other- il primo BoolVect.- Throws:
IndexOutOfBoundsException
-
and
Description copied from interface:BoolVectRende questo BoolVect uguale all'and componente a componente di questo BoolVect e quello specificato.Si osservi che, sebbene la dimensione degli operandi può essere diversa, in nessun caso la dimensione del risultato può eccedere la minore tra le due; l'and infatti è senz'altro
falseper tutte le posizioni che sono maggiori della dimensione di uno, o dell'altro, BoolVect booleano.- Specified by:
andin interfaceBoolVect- Parameters:
other- l'altro BoolVect.- Throws:
NullPointerException- se l'argomento ènull.
-
or
Description copied from interface:BoolVectRende questo BoolVect uguale all'or componente a componente di questo BoolVect e quello specificato.Si osservi che se la dimensione dell'altro BoolVect è maggiore della taglia (e quindi dimensione) di questo, allora il valore di verità in posizione pari alla dimensione dell'altro BoolVect sarà
true, ma non potrà essere memorizzato in questo BoolVect per via della sua taglia.- Specified by:
orin interfaceBoolVect- Parameters:
other- l'altro BoolVect.- Throws:
NullPointerException- se l'argomento ènull.IllegalArgumentException- se la taglia di questo BoolVect è minore della dimensione del risultato.
-
xor
Description copied from interface:BoolVectRende questo BoolVect uguale allo xor componente a componente di questo BoolVect e quello specificato.Si osservi che se la dimensione dell'altro BoolVect è maggiore della taglia (e quindi dimensione) di questo, allora il valore di verità in posizione pari alla dimensione dell'altro BoolVect sarà
true, ma non potrà essere memorizzato in questo BoolVect per via della sua taglia.- Specified by:
xorin interfaceBoolVect- Parameters:
other- l'altro BoolVect.- Throws:
NullPointerException- se l'argomento ènull.IllegalArgumentException- se la taglia di questo BoolVect è minore della dimensione del risultato.
-
toString
Restituisce la versione stringa di questo BoolVect.Se la dimensione del BoolVect è 0 restituisce "F", altrimenti restituisce una stringa che comprende un numero di caratteri pari alla dimensione del BoolVect, detto altrimenti i valori di verità
falseche hanno posizione maggiore della dimensione non sono parte della stringa; l'i-esimo carattere della stringa (contando da destra) è `V` se l'i-esima posizione del BoolVect ha valore di veritàtrue, o `F` se valefalse. -
equals
Implementazione non specializzata di equals.Questa implementazione è molto inefficiente per il caso sparso; le sottoclassi dovrebbero implementare una versione ottimizzata e in ogni caso sovrascrivere
Object.hashCode()in modo coerente.
-