Si el objeto no tiene ningún campos de instancia, que se sin estado. También puede ser apátrida si tiene algunos campos, pero sus valores son conocidos y no cambian.
Este es un objeto sin estado:
class Stateless {
void test() {
System.out.println("Test!");
}
}
Este es también un objeto sin estado:
class Stateless {
//No static modifier because we're talking about the object itself
final String TEST = "Test!";
void test() {
System.out.println(TEST);
}
}
Este objeto tiene estado, por lo que es no sin estado. Sin embargo, se ha establecido una sola vez su estado, y no cambiar más adelante, este tipo de objetos se llama inmutable:
class Immutable {
final String testString;
Immutable(String testString) {
this.testString = testString;
}
void test() {
System.out.println(testString);
}
}
Si un objeto tiene un campo (no estático), tiene un estado. Si es inmutable, tiene exactamente un estado, pero no es sin estado. – assylias
@assylias Acabo de arreglar esa – Bozho
@ la respuesta de om-nom-nom toca mucho en profundidad. – user2351818