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.