Como pasar arrays (matrices)???

Ondo
22 de Enero del 2005
Hola, tengo un problema, alguien sabe como hacer esto? tengo una matriz declarada en una clase en la cual se van guardando usuarios(con codigo, contraseña y apodo), y necesito tener esa matriz en otra clase. como puedo llevarla de un lado a otro, ya sea copiando la matriz o importandola directamente??? Es bastante urgente...
Gracias de antemano.

Mario Arias
22 de Enero del 2005
1.
public class MiClase
{
int[] miMatriz
//culaquier codigo
public int[] getMatriz()
{
return miMatriz;
}
}
suponiendo que sea de int[] o puedes reemplazarla por culaquier tipo primitivo o Object

en la otra clase lo invocas asi

MiClase miclase = new MiClase();
int[] mi array = miclase.getMatriz();

Lemony Snicket
22 de Enero del 2005
Hola,...

Tienes varias opciones,...
1) Declarar la variable que contiene la referencia al objeto array como variable miembro de una de las clases con el modificador de acceso (private, protected, public, o el acceso por defecto) que más te interese. Si declaras la variable private, ésta sólo será accesible en esa clase y tendrás que suministrar en la misma métodos para acceder a ella (getElementoArray(), setElementoArray()). Si la declaras protected podrás acceder a ella en clases del mismo paquete o en subclases en paquetes distintos. Si la declaras public podrás acceder desde cualquier clase. Finalmente si no pones ningún modificador el acceso por defecto será para todas las clases del mismo paquete. Además, si declaras dicha variable como static podrás acceder a ella desde la segunda clase -siempre considerando el modificador de acceso- con NombreClase.NombreVariable. Si no la declaras como static podrás acceder a ella trás la creación de una instancia de la clase en la que la definiste. Así por ejemplo...

public class MiClase{

public static int[][] miArray ={{1,2,3},{4,5,6}}

}

public class MiAcceso{
public static void main (String arg[]){

System.out.println(MiClase.miArray[0][1]);
}
}


2)La otra opción es, considerando que un array es un objeto a todos los efectos, pasar el array desde la clase donde se define como argumento en la llamada método donde sea requerido. En este caso tienes que tener en cuenta que el método llamado recibirá una copia de la referencia al objeto array pero no una copia de las referencias a los objetos contenidos en el array si los hubiera, de modo que la actuación sobre el array en este método resultará en modificaciones sobre el array original.

Espero que te sirva. Un saludo.