Más sobre los argumentos y los parámetros
Al declarar un método, debe especifi car si el método requiere datos para realizar su tarea. Para ello es necesario
colocar información adicional en la
lista de parámetros
del método, la cual se encuentra en los paréntesis que van
después del nombre del método. La lista de parámetros puede contener cualquier número de parámetros, incluso
ninguno. Los paréntesis vacíos después del nombre del método (como en la fi gura 3.1, línea 7) indican que un
método no requiere parámetros. En la fi gura 3.4, la lista de parámetros de
mostrarMensaje
(línea 7) declara que
el método requiere un parámetro. Cada parámetro debe especifi car un tipo y un identifi cador. En este caso, el tipo
String
y el identifi cador
nombreDelCurso
indican que el método
mostrarMensaje
requiere un objeto
String
para realizar su tarea. En el instante en que se llama al método, el valor del argumento en la llamada se asigna
al parámetro correspondiente (en este caso,
nombreDelCurso
) en el encabezado del método. Después, el cuerpo
del método utiliza el parámetro
nombreDelCurso
para acceder al valor. Las líneas 9 y 10 de la fi gura 3.4 muestran
el valor del parámetro
nombreDelCurso
, mediante el uso del especifi cador de formato
%s
en la cadena de formato
de
printf
. Observe que el nombre de la variable de parámetro (fi gura 3.4, línea 7) puede ser igual o distinto al
nombre de la variable de argumento (fi gura 3.5, línea 24).
Un método puede especifi car múltiples parámetros; sólo hay que separar un parámetro de otro mediante una
coma (en el capítulo 6 veremos un ejemplo de esto). El número de argumentos en la llamada a un método debe
coincidir con el número de parámetros en la lista de parámetros de la declaración del método que se llamó. Ade-
más, los tipos de los argumentos en la llamada al método deben ser “consistentes con” los tipos de los parámetros
correspondientes en la declaración del método (como veremos en capítulos posteriores, no siempre se requiere
que el tipo de un argumento y el tipo de su correspondiente parámetro sean idénticos). En nuestro ejemplo, la
llamada al método pasa un argumento de tipo
String
(
nombreDelCurso
se declara como
String
en la línea 19
de la fi gura 3.5) y la declaración del método especifi ca un parámetro de tipo
String
(línea 7 en la fi gura 3.4).
Por lo tanto, en este ejemplo, el tipo del argumento en la llamada al método coincide exactamente con el tipo del
parámetro en el encabezado del método.
Error común de programación 3.2
Si el número de argumentos en la llamada a un método no coincide con el número de parámetros en la declaración
del método, se produce un error de compilación.
Error común de programación 3.3
Si los tipos de los argumentos en la llamada a un método no son consistentes con los tipos de los parámetros corres-
pondientes en la declaración del método, se produce un error de compilación.
Diagrama de clases de UML actualizado para la clase
LibroCalificaciones
El diagrama de clases de UML de la fi gura 3.6 modela la clase
LibroCalificaciones
de la fi gura 3.4. Al igual
que la Figura 3.1, esta clase
LibroCalificaciones
contiene la operación
public
llamada
mostrarMensaje
. Sin
embargo, esta versión de
mostrarMensaje
tiene un parámetro. La forma en que UML modela un parámetro es
un poco distinta a la de Java, ya que lista el nombre del parámetro, seguido de dos puntos y del tipo del parámetro
entre paréntesis, después del nombre de la operación. UML tiene sus propios tipos de datos, que son similares a
los de Java (pero como veremos, no todos los tipos de datos de UML tienen los mismos nombres que los tipos
correspondientes en Java). El tipo
String
de UML corresponde al tipo
String
de Java. El método
mostrarMen-
saje
de
LibroCalificaciones
(fi gura 3.4) tiene un parámetro
String
llamado
nombreDelCurso
, por lo que en
la fi gura 3.6 se lista a
nombreDelCurso : String
entre los paréntesis que van después de
mostrarMensaje
.
Figura 3.6
| Diagrama de clases de UML, que indica que la clase
LibroCalificaciones
tiene una operación
llamada
mostrarMensaje
, con un parámetro llamado
nombreDelCurso
de tipo
String
de UML.
LibroCalificaciones
+ mostrarMensaje( nombreDelCurso : String )
3.4 Declaración de un método con un parámetro
83
03_MAQ_CAP_03.indd83
4/19/081:19:49AM