Java - Vectores como atributos

   
Vista:

Vectores como atributos

Publicado por Miguel (1 intervención) el 14/07/2015 05:13:27
Hola. ¿Alguien podría echarme una mano con este programa?
Este programa consta de dos clases: la Principal y Operario.
La clase Operario tiene varios atributos, pero el que me ocasiona el problema es el atributo que es vector de enteros.
El programa principal tiene dos objetos de la clase Operario: operario1 y operario2.
El problema consiste en que cuando introduzco datos en el atributo vector tanto de operario1 como de operario2 y a pesar de que ambos vectores tienen diferentes datos, ambos vectores quedan con los datos de operario2.
¿Alguien sabe por qué sucede esto?



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package paqueteFabrica;
 
public class Principal {
 
    public static void main(String[] args) {
 
        Operario operario1 = new Operario();
        Operario operario2 = new Operario();
 
        int i = 0;
        int vec[] = new int[2];
 
        operario1.setNombre("Pedro");
        vec[0] = 34;
        vec[1] = 53;
        operario1.setNumContacto(vec);
 
        operario2.setNombre("Luis");
        vec[0] = 1;
        vec[1] = 4;
        operario2.setNumContacto(vec);
 
        System.out.println("VERIFICAR GUARDADO... Operario 2");
        operario2.getNumContacto();
        System.out.println("Y que pasó con Operario 1?");
        operario1.getNumContacto();
 
    }
}


---------


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package paqueteFabrica;
 
public class Operario {
 
    private String nombre;
    private int numContacto[];
 
    public Operario() {
        this.nombre = "";
        this.numContacto = new int[2];
    }
 
    public int[] getNumContacto() {
        System.out.print("GET " + nombre.toUpperCase()+": ");
        System.out.println(numContacto[0]+" "+numContacto[1]);
        return numContacto;
    }
 
    public void setNumContacto(int[] numContacto) {
        System.out.print("SET " + nombre.toUpperCase()+": ");
        System.out.println(numContacto[0]+" "+numContacto[1]);
        this.numContacto = numContacto;
    }
 
    public String getNombre() {
        return nombre;
    }
 
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder