700 likes | 728 Views
Java Programming: From Problem Analysis to Program Design, 4e. 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
E N D
Java Programming: From Problem Analysis to Program Design, 4e 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 Java Programming: From Problem Analysis to Program Design, 4e
Chapter Objectives (continued) • Explore how to construct and use a value-returning, 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 Java Programming: From Problem Analysis to Program Design, 4e
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 Java Programming: From Problem Analysis to Program Design, 4e
Predefined Classes (continued) Java Programming: From Problem Analysis to Program Design, 4e
Predefined Classes (continued) Java Programming: From Problem Analysis to Program Design, 4e
Predefined Classes (continued) Java Programming: From Problem Analysis to Program Design, 4e
Predefined Classes (continued) Java Programming: From Problem Analysis to Program Design, 4e
class Character(Package: java.lang) Java Programming: From Problem Analysis to Program Design, 4e
class Character(Package: java.lang) (continued) Java Programming: From Problem Analysis to Program Design, 4e
class Character(Package: java.lang) (continued) Java Programming: From Problem Analysis to Program Design, 4e
Syntax: Value-Returning Method Java Programming: From Problem Analysis to Program Design, 4e
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 the value that the method calculates and returns (using return statement) • methodName: Java identifier; name of method Java Programming: From Problem Analysis to Program Design, 4e
Syntax • Syntax: formal parameter list -The syntax of the formal parameter list is: • Method call -The syntax to call a value-returning method is: Java Programming: From Problem Analysis to Program Design, 4e
Syntax (continued) • Syntax: actual parameter list -The syntax of the actual parameter list is: • Syntax: return statement -The return statement has the following syntax: • return expr; Java Programming: From Problem Analysis to Program Design, 4e
Equivalent Method Definitions public static double larger(double x, double y) { doublemax; if(x >= y) max = x; else max = y; returnmax; } Java Programming: From Problem Analysis to Program Design, 4e
Java Programming: From Problem Analysis to Program Design, 4e 17
Java Programming: From Problem Analysis to Program Design, 4e 18
Equivalent Method Definitions (continued) public static doublelarger(doublex, doubley) { if(x >= y) returnx; else returny; } Java Programming: From Problem Analysis to Program Design, 4e
Equivalent Method Definitions (continued) public static doublelarger(doublex, doubley) { if(x >= y) returnx; returny; } Java Programming: From Problem Analysis to Program Design, 4e
The int variable num contains the desired sum to be rolled Java Programming: From Problem Analysis to Program Design, 4e 21
Palindrome Number • Palindrome: integer or string that reads the same forwards and backwards • The method isPalindrome takes a string as a parameter and returns true if the string is a palindrome, false otherwise Java Programming: From Problem Analysis to Program Design, 4e
Solution: isPalindrome Method public static boolean isPalindrome(String str) { int len = str.length(); int i, j; j = len - 1; for (i = 0; i <= (len - 1) / 2; i++) { if (str.charAt(i) != str.charAt(j)) return false; j--; } return true; } Java Programming: From Problem Analysis to Program Design, 4e
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 Java Programming: From Problem Analysis to Program Design, 4e
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 two numbers • For loop: calls method largest number on each number received and compares to current largest number Java Programming: From Problem Analysis to Program Design, 4e
Solution: Largest Number static Scanner console = new Scanner(System.in); public static void main(String[] args) { double num; double max; int count; System.out.println("Enter 10 numbers."); num = console.nextDouble(); max = num; for (count = 1; count < 10; count++) { num = console.nextDouble(); max = larger(max, num); } System.out.println("The largest number is " + max); } Java Programming: From Problem Analysis to Program Design, 4e
Sample Run: Largest Number • Sample Run • Enter 10 numbers: • 10.5 56.34 73.3 42 22 67 88.55 26 62 11 • The largest number is 88.55 Java Programming: From Problem Analysis to Program Design, 4e
Void Methods • Similar in structure to value-returning methods • Call to method is always stand-alone statement • Can use return statement to exit method early Java Programming: From Problem Analysis to Program Design, 4e
Void Methods with Parameters: Syntax Java Programming: From Problem Analysis to Program Design, 4e
Void Methods with Parameters: Syntax (continued) Java Programming: From Problem Analysis to Program Design, 4e
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 Java Programming: From Problem Analysis to Program Design, 4e
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 the object where actual data is stored • Both formal and actual parameter refer to same object Java Programming: From Problem Analysis to Program Design, 4e
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 Java Programming: From Problem Analysis to Program Design, 4e
Reference Variables as Parameters: type String Java Programming: From Problem Analysis to Program Design, 4e
Reference Variables as Parameters: type String (continued) Java Programming: From Problem Analysis to Program Design, 4e
Reference Variables as Parameters: type String (continued) Java Programming: From Problem Analysis to Program Design, 4e
Reference Variables as Parameters: type String (continued) Java Programming: From Problem Analysis to Program Design, 4e
Reference Variables as Parameters: type String (continued) String str = "Hello"; //Line 5 Java Programming: From Problem Analysis to Program Design, 4e 38
Reference Variables as Parameters: type String (continued) stringParameter(str); //Line 7 Java Programming: From Problem Analysis to Program Design, 4e 39
Reference Variables as Parameters: type String (continued) pStr = "Sunny Day"; //Line 14 Java Programming: From Problem Analysis to Program Design, 4e 40
Reference Variables as Parameters: type String (continued) Variables before the statement in Line 8 executes Java Programming: From Problem Analysis to Program Design, 4e
The classStringBuffer contains the method append, which allows you to append a string to an existing string, and the method delete, which allows you to delete all the characters of the string • The assignment operator cannot be used with StringBuffer variables; you must use the operator new (initially) to allocate memory space for a string Java Programming: From Problem Analysis to Program Design, 4e
Java Programming: From Problem Analysis to Program Design, 4e 43
Java Programming: From Problem Analysis to Program Design, 4e 44
Java Programming: From Problem Analysis to Program Design, 4e 45
Java Programming: From Problem Analysis to Program Design, 4e 46
Java Programming: From Problem Analysis to Program Design, 4e 47
Primitive Type Wrapper Classes as Parameters • If a formal parameter is of the primitive data type and the corresponding actual parameter is a variable, then the formal parameter cannot change the value of the actual parameter • Only reference variables can pass values outside the method (except, of course, for the return value) • Corresponding to each primitive data type, Java provides a class so that the values of primitive data types can be wrapped in objects • The class Integer does not provide a method to change the value of an existing Integer object • The same is true of other wrapper classes Java Programming: From Problem Analysis to Program Design, 4e
Primitive Type Wrapper Classes as Parameters (continued) • If we want to pass a String object as a parameter and also change that object, we can use the class StringBuffer • Java does not provide any class that wraps primitive type values in objects and when passed as parameters changes their values • If a method returns only one value of a primitive type, then you can write a value-returning method • If you encounter a situation that requires you to write a method that needs to pass more than one value of a primitive type, then you should design your own classes • Appendix D provides the definitions of such classes and shows how to use them in a program Java Programming: From Problem Analysis to Program Design, 4e 49
Scope of an Identifier within a Class • Local identifier: identifier declared within a method or block, which is visible only within that method or block • Java does not allow the nesting of methods; you cannot include the definition of one method in the body of another method • Within a method or a block, an identifier must be declared before it can be used; a block is a set of statements enclosed within braces Java Programming: From Problem Analysis to Program Design, 4e