|
JavaFAQ Home » Java Lessons by Jon Huhtala

The Java Lesson 12
Class methods and how they are called
Methods
-
Are named modules of code
-
May optionally receive one or
more parameters (arguments)
-
May optionally return a single
value
-
Are associated with either a
class or an object of a class. The former are called "class methods" and are
the focus of this lesson. The latter are called "instance methods" and will
be covered in a later lesson.
Calling a class method
class-name.method-name(arguments)
If the method is defined within the current class, the class
name may be omitted and the general syntax for the call expression is:
method-name(arguments)
Example 1: Calling the skip() method of my Utility class to skip a single line on the screen.
The method requires no parameters and returns no value so is called using
the stand-alone statement
Utility.skip();
The parenthesis are required by the compiler and must be coded
even though no parameters are being passed.
Example 2: Calling the separator() method of my Utility class to draw a line consisting of a
particular character on the screen. The method requires two parameters. The
first is an integer indicating the length of a line of characters to be
drawn. The second parameter specifies the character to be used in drawing
the line. The method returns no value so is called using a stand-alone
statement such as
Utility.separator(40, '$');
which will draw a line consisting of 40 dollar signs.
Example 3: Calling the moneyFormat() method of my Utility class to convert a
numeric value into a formatted currency string having correct punctuation.
The method requires a single parameter of type double that represents the value to be formatted.
It returns the formatted string. Because it returns a value, it is called
within another expression such as
System.out.println("Balance: " + Utility.moneyFormat(4567.89));
which will convert the double literal 4567.89
into the string "$4,567.89", append it
to the string "Balance: ", and pass
the resulting string to the println() method of System.out for display on the console. Such nesting of calls is
sometimes referred to as "cascading" and is one of the most powerful
features of Java.
In these examples, literals
were used as parameters. In most real programs, a variable or an expression
that evaluates to the appropriate data type for the parameter is used. A sample program
The following program processes multiple line items for an order.
It uses several class methods of my Utility and Keyboard classes:
public class App { public static void main(String[]
args) {
// Variables.
int quantity;
double price; double extendedPrice; int lineItems = 0;
double totalDue = 0; char again = 'y';
// Main loop to
process one line item.
while (again == 'Y' || again =='y') {
// Prompt for and read quantity and price.
Utility.separator(40, '='); System.out.print("Quantity: ");
quantity = Keyboard.readInt(); System.out.print("Price: ");
price = Keyboard.readDouble();
Utility.skip();
// If the data is invalid, display an error
message. Otherwise, // calculate and display the extended price,
add to the total due // for the entire order, and increment the
number of line items.
if (quantity <= 0 || price < 0) {
System.out.println(" Invalid data");
} else { extendedPrice = quantity * price;
System.out.println(" Extended price: " +
Utility.moneyFormat(extendedPrice));
totalDue += extendedPrice;
lineItems++;
}
// Ask the user if they want to do it again and repeat the loop
as // requested.
Utility.separator(40, '=');
System.out.print("Again? (Y/N): "); again = Keyboard.readChar();
}
// Display the order summary.
Utility.separator(40,
'='); System.out.println(" Line items: " + lineItems);
System.out.println(" Total due: " + Utility.moneyFormat(totalDue));
Utility.separator(40, '='); System.out.println(" END");
} }
Note: For more details,
refer to the documentation for
my
Keyboard class and my Utility class.
Looking ahead
Knowing how to call class
methods is an important part of Java programming. Future lessons will introduce
some useful class methods within the Math class of Java's packaged code. You will also learn how to
define your own custom class methods.
Lab exercise for Ferris
students
E-mail your answers to this
assignment no later than
the due date listed in the class schedule.
Review questions
-
Assume that someMethod is a class method of a class named
SomeClass that requires no parameters
and returns no value. Which one of the following statements would be valid
for calling someMethod from a class
named
MyClass?
-
someMethod;
-
someMethod();
-
SomeClass.someMethod;
-
SomeClass.someMethod();
-
none of the above
-
Assume that getValue is a class method of a class named
Calculate that requires no parameters
and returns an integer value. Which of the following statements would be
valid for calling getValue from a
different class? (choose three)
-
int x = Calculate.getValue(3);
-
int x = Calculate.getValue();
-
System.out.println("Value: " + (5 * Calculate.getValue()));
-
Calculate.getValue();
-
double y = getValue();
-
Assuming all unseen code is
correct and using the methods of my Keyboard and Utility
classes, what will happen when an attempt is made to compile and execute the
following statements?
System.out.print("Enter an integer: ");
System.out.println("You entered: " + Keyboard.readInt());
-
the first statement will
not compile
-
the second statement will
not compile
-
the statements will
compile but an error will occur at run time when the second statement is
executed
-
the statements will
compile and run. If the user enters the integer 7, the message "You entered: 7"
will be displayed on the console.
-
the statements will
compile and run. If the user enters the integer 7, the message "You entered:
" will be displayed on the console.
-
Assuming all unseen code is
correct and using the methods of my Keyboard and Utility
classes, what will happen when an attempt is made to compile and execute the
following statements? Note that the line numbers are for reference purposes
only.
1 2 3 4 |
Utility.separator('^', 50); System.out.print("Enter interest
rate as .nnn: "); float rate = Keyboard.readFloat();
System.out.println("You entered: " + Utility.percentFormat(rate, 1)); |
-
a compile error will occur
at line 1
-
a compile error will occur
at line 3
-
a compile error will occur
at line 4
-
the statements will
compile and run. Assuming that the user enters 5.7 in response to the prompt, the following will appear on
the console:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Enter
interest rate as .nnn: .057 You entered: 5.7%
-
the statements will
compile and run. Assuming that the user enters 5.7 in response to the prompt, the following will appear on
the console:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Enter
interest rate as .nnn: .057 You entered: 6%
Printer Friendly Page
Send to a Friend
..
Search here again if you need more info!
|