Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > establecer estado de objeto en java

como establecer un estado de un objeto en java tengo entendido que es asignarle valores a sus atributos por ejemplo el estado del objeto gato tiene atributos como nombre, color, raza etc. se haria con setter y getter o de que manera


este es el codigo de como lo tengo


public class gato {
private String nombre;
private String color;
private int peso;
private int numeropatas;
private String raza;

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public int getPeso() {
return peso;
}

public void setPeso(int peso) {
this.peso = peso;
}

public int getNumeropatas() {
return numeropatas;
}

public void setNumeropatas(int numeropatas) {
this.numeropatas = numeropatas;
}

public String getRaza() {
return raza;
}

public void setRaza(String raza) {
this.raza = raza;
}
}

junio 5, 2013 | Registered Commentercharlygarza

Puedes hacerlo así; pero no es muy sólido, porque con los setters modificas el estado interno del objeto, lo que puede ocasionar errores en multitarea.

Declarando la clase como sigue, todas sus propiedades se asignan en su constructor.

public class Gato {

private final String nombre;
private final String color;
private final int peso;
private final int numeropatas;
private final String raza;

public Gato(String nombre, String color, int peso, int numeropatas, String raza) {
this.nombre = nombre;
this.color = color;
this.peso = peso;
this.numeropatas = numeropatas;
this.raza = raza;
}

public String getNombre() {
return nombre;
}

public String getColor() {
return color;
}

public int getPeso() {
return peso;
}

public int getNumeropatas() {
return numeropatas;
}

public String getRaza() {
return raza;
}
}

Si quieres poder asignar algunas propiedades, puedes usar un "builder", como el que sigue:

public class GatoBuilder {

private String nombre;
private String color;
private int peso;
private int numeropatas;
private String raza;

public GatoBuilder() {
}

public GatoBuilder setNombre(String nombre) {
this.nombre = nombre;
return this;
}

public GatoBuilder setColor(String color) {
this.color = color;
return this;
}

public GatoBuilder setPeso(int peso) {
this.peso = peso;
return this;
}

public GatoBuilder setNumeropatas(int numeropatas) {
this.numeropatas = numeropatas;
return this;
}

public GatoBuilder setRaza(String raza) {
this.raza = raza;
return this;
}

public Gato createGato() {
return new Gato(nombre, color, peso, numeropatas, raza);
}
}

Que se usa de esta manera:

Gato gato = new GatoBuilder().setNombre("misi").setColor("gris"). createGato();

Lo que crearía un objeto de Gato, con solo su nombre y color asignados.
Claro que, si a continuación quieres asignar la raza:

String raza = gato.getRaza(); // ¡raza es null!

porque no asignas un valor por defecto a la propiedad raza en Gato.

junio 5, 2013 | Registered Commenterchoces