Download Syntax

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Chapter 7
User-Defined Methods
Chapter Objectives
• Understand how methods are used in Java
programming
• Learn about standard (predefined) methods
and discover how to use them in a program
• Learn about user-defined methods
• Examine value-returning methods,
including actual and formal parameters
Chapter Objectives
• Explore how to construct and use a valuereturning, user-defined method in a program
• Learn how to construct and use user-defined
void methods in a program
• Explore variables as parameters
• Learn about the scope of an identifier
• Become aware of method overloading
Predefined Classes
• Methods already written and provided by
Java
• Organized as a collection of classes (class
libraries)
• To use: import package
• Method type: data type of value returned by
method
class Math (Package: java.lang)
class Math (Package: java.lang)
class Character (Package:
java.lang)
class Character (Package:
java.lang)
class Character (Package:
java.lang)
Syntax: Value-Returning Method
modifier(s) returnType methodName(formal parameter list)
{
statements
}
User-Defined Methods
• Value-returning methods
– Used in expressions
– Calculate and return a value
– Can save value for later calculation or print value
• Modifiers: public, private, protected, static,
abstract, final
• returnType: type of value that the method
calculates and returns (using return statement)
• methodName: Java identifier; name of method
Syntax
Syntax: Formal Parameter List
The syntax of the formal parameter list is:
dataType identifier, dataType identifier,...
Method Call
The syntax to call a value-returning method is:
methodName(actual parameter list)
Syntax
Syntax: Actual Parameter List
The syntax of the actual parameter list is:
expression or variable, expression or variable, ...
Syntax: return Statement
The return statement has the following
syntax:
return expr;
Equivalent Method Definitions
public static double larger(double x, double y)
{
double max;
if(x >= y)
max = x;
else
max = y;
return max;
}
Equivalent Method Definitions
public static double larger(double x, double y)
{
if(x >= y)
return x;
else
return y;
}
Programming Example:
Palindrome Number
• Palindrome: integer or string that reads the
same forwards and backwards
• Input: integer or string
• Output: Boolean message indicating
whether integer string is a palindrome
Solution: isPalindrome Method
Sample Runs:
Palindrome Number
Flow of Execution
• Execution always begins with the first statement
in the method main
• User-defined methods execute only when called
• Call to method transfers control from caller to
called method
• In method call statement, specify only actual
parameters, not data type or method type
• Control goes back to caller when method exits
Programming Example: Largest
Number
• Input: Set of 10 numbers
• Output: Largest of 10 numbers
• Solution:
– Get numbers one at a time
– Method largest number: returns the larger of 2 numbers
– For loop: calls method largest number on each number
received and compares to current largest number
Solution: Largest Number
Sample Run: Largest Number
Sample Run: (When you execute this
program, enter all numbers in the same
line.)
Enter 10 numbers in the same line.
10.5 56.34 73.3 42 22 67 88.55 26 62 11
The largest number is 88.55
Void Methods
• Similar in structure to value-returning
methods
• No method type
• Call to method is always stand-alone
statement
• Can use return statement to exit method
early
Void Methods: Syntax
Method Definition
The general form (syntax) of a void method without parameters is as
follows:
modifier(s) void methodName()
{
statements
}
Method Call (Within the Class)
The method call has the following syntax:
methodName();
Void Methods with Parameters:
Syntax
Method Definition
The definition of a void method with parameters has the
following syntax:
modifier(s) void methodName(formal parameter list)
{
statements
}
Formal Parameter List
The formal parameter list has the following syntax:
dataType variable, dataType variable, ...
Void Methods with Parameters:
Syntax
Method Call
The method call has the following syntax:
methodName(actual parameter list);
Actual Parameter List
The actual parameter list has the following syntax:
expression or variable, expression or variable, ...
Primitive Data Type Variables as
Parameters
• A formal parameter receives a copy of its
corresponding actual parameter
• If a formal parameter is a variable of a
primitive data type
– Value of actual parameter is directly stored
– Cannot pass information outside the method
– Provides only a one-way link between actual
parameters and formal parameters
Reference Variables as
Parameters
• If a formal parameter is a reference variable
– Copies value of corresponding actual parameter
– Value of actual parameter is address of object
where actual data is stored
– Both formal and actual parameter refer to same
object
Uses of Reference Variables as
Parameters
• Can return more than one value from a
method
• Can change the value of the actual object
• When passing address, would save memory
space and time, relative to copying large
amount of data
Reference Variables as
Parameters: type String
Scope of an Identifier Within a
Class
• Scope (of an identifier): refers to those parts
of a program where the identifier is
accessible
• Local variables: variables declared within a
method (or block)
• Within a class
– Any method can call any other method
– Exception: static method cannot call a nonstatic
method
Scope Rules
• Identifier declared within a block is
accessible
– Only within the block from the point at which it
is declared until the end of the block
– By those blocks nested within that block if the
nested block does not have an identifier with
the same name as the identifier in the outside
block
*Outside block: block that encloses nested block
Scope Rules: Demonstrated
Scope Rules: Demonstrated
public class ScopeRules
{
static final double rate = 10.50;
static int z;
static double t;
public static void main(String[] args)
{
int num;
double x, z;
char ch;
//...
}
public static void one(int x, char y)
{
//...
}
public static int w;
public static void two(int one, int z)
{
char ch;
int a;
//block three
{
int x = 12;
//...
}//end block three
//...
}
}
Scope Rules: Demonstrated
Method Overloading: An
Introduction
• Method overloading: more than one method can
have the same name
• Overloading Rules
– Every method must have a different number of formal
parameters
OR
– If the number of formal parameters is the same, then the
data type of the formal parameter (in the order listed),
must differ in at least one position
– Types of parameters determine which method executes
Programming Example: Data
Comparison
• Input: Data from 2 different files
• Data format: Course Number followed by scores
• Output: Course Number, Group Number, Course
Average
• Solution:
– Read from more than one file, write output to file
– Generate bar graphs
– User-defined methods and re-use (calculateAverage and
printResult)
– Parameter passing
Programming Example: Data
Comparison
Chapter Summary
• Predefined methods
• User-defined methods
–
–
–
–
Value-returning methods
Void methods
Formal parameters
Actual parameters
• Flow of Execution
Chapter Summary
• Primitive data type variables as parameters
– One-way link between actual parameters and
formal parameters (limitations caused)
• Reference variables as parameters
– Can pass one or more variables from a method
– Can change value of actual parameter
• Scope of an identifier within a class
• Method overloading
Related documents