Stavo scherzando con come avrei potuto impostare il mio incapsulamento.L'esecuzione del programma non è sequenziale. Perché?
Ma il mio programma è in esecuzione in un ordine imprevisto. Qui è il mio codice piuttosto semplice:
La "principale":
package research.debug;
public class Main {
public static void main(String[] args) {
Boolean b = Boolean.TRUE ;
Debug.black.printVariable(b, "b") ;
Debug.red.printVariable(b, "b") ;
System.out.println("SUPPOSED to be inbetween...") ;
Debug.black.println("Hello") ;
Debug.red.println("Howdie") ;
}
}
"Debug":
package research.debug;
public class Debug {
public static final Output black = new Output(Output.BLACK) ;
public static final Output red = new Output(Output.RED) ;
}
E, infine, "Uscita":
package research.debug;
public class Output {
public static final int BLACK = 0 ;
public static final int RED = 1 ;
private int outputMode = 0 ;
public Output(int outputMode) {
this.outputMode = outputMode ;
}
public void println(String msg) {
if(outputMode == Output.BLACK) {
System.out.println("Printed with black font: " + msg) ;
} else {
System.err.println("Printed with red font: " + msg) ;
}
}
public void printVariable(Object variable, String variableName) {
println(variableName + " = \"" + variable + "\"") ;
}
}
E l'uscita prevista sarebbe:
stampati con caratteri neri: b = "true"
stampati con caratteri rossi: b = "true"
suppone che sia inbetween ...
stampato con caratteri neri: Ciao
stampati con caratteri rossi: Howdie
ma è invece fuori nell'ordine previsto, in questo modo:
stampati con caratteri neri: b = "true"
suppone che sia inbetween ...
stampato con caratteri neri: Ciao
stampato con caratteri rossi: b = "true "
stampato con caratteri rossi: Howdie
Cosa sta succedendo?
MODIFICA: A volte il messaggio "Supposto di essere in mezzo" si sposta. Senza di me cambiare il codice.
Wow, non l'ho mai saputo. Spiega alcune cose con il mio codice – TheLQ