Hola, tengo un problema, tengo un constructor al que le paso objeto1 para crear un objeto2 (el valor de objeto1 es 0 y en el constructor le suma 1) y cuando paso de nuevo objeto1 al constructor (en este momento vale 1)para crear otro objeto2 en el constructor se le suma 1 y se queda en valor 2.
En este punto tenemos deberiamos tener esto:
objeto1 = 2
objeto2.1 = 1
objeto2.2 = 2
Pero lo que tengo es esto:
objeto1 = 2
objeto2.1 = 2
objeto2.2 = 2
el objeto uno es un codigo ej: DOC0, que por cada documento que creo se le suma un 1, DOC1, DOC2, DOC3. bien
Para que se me entienda mejor quiero que DOC* sea siempre el mismo objeto para no tener que crear un codigo cada vez que cree un objeto.
Codigo documento se compone de serie DOC por ejemplo y de numero que es el que aumento en 1 en cada Documento que creo nuevo.
mi codigo es este.
Muchisimas gracias por adelantado.
//CLASE MAIN
package documentos;
public class Main {
public static void main(String[] args) {
//CREAMOS EL CODIGO DOCUMENTO
CodigoDcto a = new CodigoDcto();
//CREAMOS EL DOCUMENTO CON EL CODIGO DOCUMENTO YA CREADO
Documento m = new Documento(a);
System.out.println(m.getCodigoDcto());
Documento n = new Documento(a);
System.out.println(m.getCodigoDcto());
}
}
//CLASE DOCUMENTO
package documentos;
import java.util.Date;
public class Documento {
private CodigoDcto codigo;
private Date fechaCreacion;
private int estado;
public Documento(CodigoDcto cod) {
//INCREMENTA EN 1 EL CODIGO DOCUMENTO
cod.sumaCodigoDcto();////////////////
/////////////////////////////////////
this.codigo = cod;
this.fechaCreacion = new Date();
this.estado = 0;
}
//OBTENER CODIGO
public String getCodigoDcto() {
String codigoDcto = (this.codigo.getSerie()+Integer.toString(this.codi go.getNumero()));
return codigoDcto;
}
}
//CLASE CODIGO DOCUMENTO
package documentos;
public class CodigoDcto {
//ATRIBUTOS
private String serie;
private int numero;
//CONSTRUCTORES
public CodigoDcto(){
this.serie = "doc";
this.numero = 0;
}
public CodigoDcto(String serie) {
this.serie = serie;
this.numero = 0;
}
public String sumaCodigoDcto() {
String codigoDcto = (serie+Integer.toString(numero));
return codigoDcto;
}
//GETTERS
public int getNumero() {
return numero;
}
public String getSerie() {
return serie;
}
public String getCodigoDcto() {
String codigoDcto = (serie+Integer.toString(numero));
return codigoDcto;
}
}