Estaba bromeando sobre cómo podría configurar mi encapsulación.La ejecución del programa no es secuencial. ¿Por qué?
Pero mi programa se está ejecutando en un orden inesperado. Aquí está mi código bastante simple:
El "principal":
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") ;
}
}
"Depuración":
package research.debug;
public class Debug {
public static final Output black = new Output(Output.BLACK) ;
public static final Output red = new Output(Output.RED) ;
}
Y, por último, "Salida":
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 + "\"") ;
}
}
Y el resultado esperado sería:
impreso con la fuente negro: b = "true"
impreso con letras rojas: b = "true"
supone que es entre medio ...
Impreso con la fuente negro: Hola
impreso con letras rojas: Howdie
sino que está fuera del orden esperado, así:
impreso con la fuente negro: b = "true"
supone que es entre medio ...
Impreso con la fuente negro: Hola
impreso con letras rojas: b = "true "
impreso con letras rojas: Howdie
¿Qué está pasando?
EDITAR: A veces el mensaje "Supposed to between in" se mueve. Sin que yo cambie el código.
Wow, nunca supe esto. Sí explica algunas cosas con mi código – TheLQ