1.8 Paso de parámetro y ámbito de las variables
1.8.1 Parámetros actuales y formales:
- Parámetros actuales: Son los argumentos que aparecen en la llamada a un método. Contienen los valores que se le pasan al método. Puede ser una variables, un objeto, un valor literal válido, etc.
- Parámetros formales: Son los argumentos que aparecen en la cabecera del método. Reciben los valores que se envían en la llamada al método. Se utilizan como variables normales dentro del método
Ambos tipo de parámetros deben coincidir en número, orden y tipo.
1.8.2 Ámbito de las variables
El ámbito o alcance de una variables es la zona del programa donde la variables es accesible. Se clasifican en tres grupos:
- Variables miembro de una clase o atributos de una clase: Son las declaradas dentro de una clase y fuera de cualquier método. Características: - Son accesibles en cualquier método de la clase - Pueden ser inicializadas
- Variables locales: Son las declaradas dentro de un método. Características: - Su ámbito comienza desde donde se declara - Son accesibles desde su declaración hasta el final del método - No son visibles desde otros métodos - Distintos métodos de la clase pueden contener variables con el mismo nombre - El nombre de la variables local debe ser único dentro del método - Si se declara una variable local con el mismo nombre que una variable miembro de la clase, la variable miembro queda inaccesible en el ámbito de la local - Se crean en memoria cuando se declaran y se destruyen cuando acaba la ejecución del método - Los parámetros formales son variables locales al método
- Variables de bloque: Se declaran dentro de un bloque de instrucciones (p.e. dentro de un bucle o ciclo) delimitado por llaves. Características: - Su ámbito comienza desde su declaración - Son accesibles desde su declaración hasta el final del bloque - No son visibles desde otros métodos - Distintos bloques pueden contener variables con el mismo nombre - El nombre debe ser único dentro del bloque, incluso si hay otro bloque dentro de este Se crean en memoria cuando se declaran y se destruyen cuando acaba la ejecución del bloque
1.8.3 Paso de parámetros
Hay dos formas de pasar parámetros a un método:
- Por valor: Cuando se invoca el método se crea una nueva variable y se le copia el valor del parámetro actual. El método no puede modificar el valor de la variable original.
- Por referencia: Cuando se invoca el método se crea una nueva variable a la que se le asigna la dirección de memoria donde se encuentra el parámetro actual. El método puede modificar el valor de la variables original.
¿Cómo se realiza el paso de parámetros?
En Java todos los parámetros se pasan por valor
Cuando se realiza la llamada a un método, los parámetros formales reservan un espacio en memoria y reciben los valores de los parámetros actuales.
Cuando el argumento es de tipo primitivo (int, double, char, boolean, float, short, byte), el paso por valor significa que cuando se invoca al método se reserva un nuevo espacio en memoria para el parámetro formal. El método no puede modificar el parámetro actual.
Cuando el argumento es una referencia a un objeto (por ejemplo, un array o cualquier otro objeto) el paso por valor significa que el método recibe una copia de la dirección de memoria donde se encuentra el objeto. La referencia no puede modificarse pero sí se pueden modificar los contenidos de los objetos durante la ejecución del método.
Ejemplo de paso de parámetros por valor. La variables n no se modifica,
- int n = 1;
- incrementar(n); // Pasamos la variable n al método incrementar
- }
- public static void incrementar(int n){
- n++;
- }
La salida de este programa es:
Valor de n en main antes de llamar al método: 1
Valor de n en main despues de llamar al método: 2
Valor de n en el mñetodo despues de incrementar: 1
No hay comentarios:
Publicar un comentario