12.6: Multiple Parameters
- Page ID
- 15233
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)
Here is an example of a method that takes two parameters:
public static void printTime(int hour, int minute) { System.out.print(hour); System.out.print(":"); System.out.println(minute); }
In the parameter list, it may be tempting to write:
public static void printTime(int hour, minute) { ...
But that format (without the second int
) is only legal for variable declarations. In parameter lists, you need to specify the type of each variable separately.
To invoke this method, we have to provide two integers as arguments:
int hour = 11; int minute = 59; printTime(hour, minute);
A common error is to declare the types of the arguments, like this:
int hour = 11; int minute = 59; printTime(int hour, int minute); // syntax error
That’s a syntax error; the compiler sees int hour
and int minute
as variable declarations, not expressions. You wouldn’t declare the types of the arguments if they were simply integers:
printTime(int 11, int 59); // syntax error