Saludos,
- Mi profesor de Java me dijo los siguiente acerca de este tema:
Declarar un Array lo único que hace es dejar un espacio para una variable en el Stack, pero todavía no habrá creado el Objeto, es decir, el Array propiamente dicho no estará creado.
Lo usual es int arr[]; o int []arr;
Luego tenemos que instanciar el Array, tenemos que hacerlo sino podremos trabajar con él, un Array que solo está declarado no nos permitirá trabajar. En este momento es cuando se construye el Objeto.
Para construir un Objeto en Java hay un proceso llamado "Instanciación de un Objeto", que es cuando se crea un Objeto partiendo de una Clase. Eso lo veremos con más detall en la Programación orientada a Objetos. En este caso estamos en el mismo escenario, hay que crear un Objeto de tipo Array y para instanciar o crear este Objeto hay que utilizar un Constructor:
arr[] = new int[5];
Con esta instrucción se crea un Objeto en el Heap, de momento vacio y con valores por defecto, pero ya es un Objeto que tiene espacio para almacenar 5 enteros.
También se puede declarar e instanciar un Array en una sola instrucción, el código más tipico es:
int arr[] = new int[5];
Nunca dejar los Array solo declarados porque no sirven para nada, hay que declararlos e instanciarlos y si se puede hacerlo en una sola instrución, pues más cómodo.
También está la otra forma de declarar un Array e instanciarlo con datos:
int arr[] = {1, 2, 3, 4, 5};
- Y como una propuesta de solución:
public class Prueba{
private static final int TAMANO = 10;
public static void cargarArreglo(int arreglo[]) {
//arreglo = new int[TAMANO]; // Esto crea otro Array y desecha el pasado como argumento
for(int i = 0; i < arreglo.length; i++) {
arreglo
[i
] = (int) (Math.
random() * 10 + 1); }
}
public static void mostrarArreglo(int arreglo[]) {
for(int i = 0; i < arreglo.length; i++) {
System.
out.
print(arreglo
[i
] + " "); }
}
public static void main
(String args
[]) {
int[] vector = new int[TAMANO];
cargarArreglo(vector);
mostrarArreglo(vector);
}
}
C:\Users\EdSon\Desktop>java Prueba.java
7 1 4 7 5 10 10 1 8 2