Super classe  Operatori Logici

superclasse

La classe CircuitComponent è la super classe degli operatori logici. Essa è stata pensata per poter unificare tutti i metodi in comune tra queste classi, al fine di non dover ripetere la riscrittura di questi metodi per ogni classe.

Variabili di istanza

nInputs: int      indica il numero di input che ha l'operatore
inputs: IOBridge     contiene l'input dell'operatore tramite IOBridge
nOutputs: int     indica il numero di output che ha l'operatore
outputs: IOBridge    contiene l'ouput dell'operatore tramite IOBridge
canDraw: boolean    indica se è possibile disegnare l'oggetto
visited: boolean      indice se l'output è stato preso in considerazione per il calcolo


Metodi

Il costruttore prende come parametri il numero di input e output, le coordinate di dove andare a posizionare l'operatore e la dimensione della casella che occuperà









Operatori Logici


Queste Classi hanno il ruolo di occuparsi del funzionamento degli operatori logici e
contengono tutte le informazioni che caratterizzano ciascuno di essi: dall'immagine che andrà ad essere disegnata nel nostro programma fino ad arrivare al corretto output che deve dare, dati gli input.



uml classi

Da come possiamo notare le classi che riguardano gli operatori logici sono tutte uguali, differiscono solo per il nome e per il metodo "calculateOuputs" che cambia in base al tipo
di operatore selezionato

Variabili di istanza

URL: String        in questa variabile risiede sotto forma di stringa l'url di dove si trova l'immagine dell'operatore
imgAND: Picture       qui risiede l'oggetto "Picture" al cui interno è contenuta l'immagine
blockType: int         specifica il tipo di blocco

Metodi

Il costruttore della classe non fa altro che chiamare il costruttore della superclasse, con i parametri immessi setta le coordinate di dove dovrà essere posizionata l'immagine
e in base al tipo di blocco definisce la grandezza del riquadro che dovrà occupare

calculateOutputs: void    questo metodo calcola l'ouput del relativo operatore in base agli input inseriti




Strumenti

Strumenti

Anche se dal punto di vista logico queste classi non hanno molto a che vedere con le classi precedentemente viste, dal punto di vista del codice esse sono molto simili
infatti anch'esse hanno come super classe la "CircuitComponent" che è la super classe degli operatori logici.

Illustreremo adesso il metodo pił importante per le classi SWITCH e BUTTON.

Metodi

SwitchState(): void      questo metodo si occupa di far invertire il valore di verità, nella classe BUTTON solo in modo temporaneo (fin quando il bottone resta premuto),
                                     mentre nella classe SWITCH in modo permanente (per ulteriori spiegazioni sul funzionamento degli oggetti BUTTON e SWITCH cliccare qui).