martes, 11 de julio de 2017

Todo sobre: Parámetros y argumentos en Java

Parámetros y argumentos
Los parámetros de un método definen la cantidad y el tipo de dato de los valores que recibe un método para su ejecución. Los argumentos son los valores que se pasan a un método durante su invocación. El método recibe los argumentos correspondientes a los parámetros con los que ha sido declarado.

Un método puede tener tantos parámetros como sea necesario. La lista de parámetros de la cabecera de un método se define con la siguiente sintaxis: tipo nombre [tipo nombre]
Por ejemplo, el método constructor de la clase Vehiculo tiene cinco parámetros, la matrícula, la marca, el modelo, el color del vehículo y su tarifa. Los parámetros matricula, marca, modelo y color son de tipo String, tarifa es de tipo double.

public Vehiculo(String matricula,
String marca,
String modelo,
String color,
double tarifa) {
}

El método setTarifa(double tarifa) de la clase Vehiculo tiene un parámetro tarifa de tipo double.

public void setTarifa(double tarifa) {
}

Durante la invocación de un método es necesario que el número y el tipo de argumentos coincidan con el número y el tipo de parámetros declarados en la cabecera del método.
Por ejemplo, es correcto invocar al método setTarifa(double tarifa)del objeto vehiculo1 pasando un argumento de tipo double.

vehiculo1.setTarifa(100.0); // invocación correcta vehiculo1.setTarifa(90.0); // invocación correcta

La invocación del método no es correcta si se pasan dos argumentos de tipo
double o un argumento de tipo String porque la cabecera del método solo incluye un parámetro double. Las invocaciones del método setTarifa(double tarifa) son incorrectas.

vehiculo1.setTarifa(100.0, 20.0); // no es correcto
vehiculo1.setTarifa("100.0"); // no es correcto

Los dos ejemplos anteriores no son válidos porque la lista de argumentos del método setTarifa(double tarifa) no coincide con la lista de parámetros de la declaración de este método.

Durante el proceso de compilación se comprueba que durante la invocación de un método se pasan tantos argumentos como parámetros tiene declarados y que además coinciden los tipos. Esta es una característica de los lenguajes que se denominan “strongly typed” o “fuertemente tipados”.


Paso de parámetros
Cuando se invoca un método se hace una copia de los valores de los argumentos en los parámetros. Esto quiere decir que si el método modifica el valor de un parámetro, nunca se modifica el valor original del argumento.

Cuando se pasa una referencia a un objeto se crea un nuevo alias sobre el objeto, de manera que esta nueva referencia utiliza el mismo espacio de memoria del objeto original y esto permite acceder al objeto original.