Presentation is loading. Please wait.

Presentation is loading. Please wait.

Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "___________________" in Java Purpose –Reuse code –Modularize.

Similar presentations


Presentation on theme: "Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "___________________" in Java Purpose –Reuse code –Modularize."— Presentation transcript:

1 Methods Chapter 6

2 2 Program Modules in Java What we call "functions" in C++ are called "___________________" in Java Purpose –Reuse code –Modularize the program This can be done by putting the code in a method –Various objects in a program can invoke the same method

3 3 Predefined Methods The Math class These methods are called by –The __________ of the class –The dot. operator –The name of the _____________ Example: double x = Math.sqrt(900.0);

4 4 Method Declaration Syntax modifiers returnType methodName (parameterDeclaration) { statements } modifiers : describers (____________________, etc.) returnType : type of value returned by method, or __________ if it does not return a value methodName : identifier that names the method parameterDeclaration : list of parameters, separated by ______________________ statements : define the behavior of the method

5 5 Argument Promotion Coercion of arguments –Forcing arguments to appropriate type to pass to method System.out.println( Math.sqrt( 4 ) ); –Evaluates Math.sqrt( 4 ) –Then evaluates System.out.println()

6 6 Argument Promotion Promotion rules –Specify how to ______________ types without data loss

7 7 Method Definitions Consider a method to square a number public int square( int y ) { return y * y; // return square of y } // end method square We will place it in an ____________ SquareIntegers.java

8 8 Method Definitions Consider a method to find the maximum of three numbers in an adapted version of Figure 6.4 Note –It is an _____________ –The maximum function must be __________ –____________ not needed

9 9 Java API Packages Predefined classes grouped into categories of related classes –Called ________________ Called the Java Application Programming Interface (API) Note the often used API packages

10 10 Random-Number Generation Consider the random method in the Math class –Generates a random double 0 <= n < 1.0 –The number can be manipulated and ____________ as an int to get desired range –For the roll of a die 1 + (int) (Math.random() * 6) Note Figure 6.7 and Figure 6.8

11 11 Game of Chance Rules for "Craps" Roll dice first time –If sum equals 7 or 11, the player wins –If sum equals 2, 3 or 12, the player loses –Any other sum (4, 5, 6, 8, 9, 10) is that player’s point Keep rolling dice until… –Sum matches player point Player wins –Sum equals 7 Player loses

12 12 Game of Chance Note the adapted version of Figure 6.9 –An application Note –___________ class variables –Public ____________ –The toUpperClass function requires Character. (a _________________ class)

13 13 Scope of Declarations Scope of a parameter is body of __________ where declaration appears Scope of local variable is from point of declaration to ______________ Scope of label in labeled break/continue is statement enclosed by labeled statement Scope of local-variable in initialization of for( ) is for ___________ of for and rest of header Scope of method or field of class is body of class

14 14 Methods of Class JApplet public void init() –Called once by ____________ container when applet loaded –Initializes fields, creates GUI components, load sounds, images public void start() –Called ________________ init –Completes execution –Called again if browser _______________ to this page

15 15 Methods of Class JApplet public void paint (Graphics g) –Called after init finishes and start has started –Called each time applet needs to be ______________ –Typical actions include drawing with Graphics object g passed to the method public void stop() –Called when applet should stop (when browser leaves the HTML page) –Performs tasks to suspend applet's execution public void destroy() –Called when applet is being removed from memory –Destroys resources allocated to the applet

16 16 Method Overloading Multiple methods with same name can be declared in same class Methods must have different signatures –Different numbers, types, order of parameters Example –Figure 6.12Figure 6.12 –Multiple square methods

17 17 Recursion Recursive method Calls itself (directly or indirectly) through another method Method knows how to solve only a base case Method divides problem –Base case –Simpler problem – Method now divides simpler problem until solvable Recursive call Recursive step

18 18 2! = 2 * 1 = 2 is returned (a) Sequence of recursive calls. (b) Values returned from each recursive call. Final value = 120 5! = 5 * 24 = 120 is returned 4! = 4 * 6 = 24 is returned 3! = 3 * 2 = 6 is returned 1 returned 5! 1 4 * 3! 3 * 2! 2 * 1! 5! 1 4 * 3! 3 * 2! 2 * 1! 5 * 4! Recursive Evaluation of 5!

19 19 Recursive Factorial Program Function factorial() in Figure 6.15Figure 6.15 Note –Initial call to factorial() –Anchor or base case –Recursive call

20 20 Recursive Fibonacci Program Consider function from program public long fibonacci( long n ) { // base case if ( n == 0 || n == 1 ) return n; // recursive step else return fibonacci( n - 1 ) + fibonacci( n - 2 ); } // end method fibonacci Note why this would be extremely inefficient

21 21 Recursive Fibonacci Program return + + return 1 fibonacci( 2 )fibonacci( 1 ) fibonacci( 0 ) return 0 fibonacci( 3 )

22 22 Recursion vs. Iteration Both the recursive functions shown can be done with either for or while loops In fact they are done more efficiently iteratively Recursion has overhead –Processor time –Memory space General rule: If it can be done either recursively or iteratively … choose iteratively


Download ppt "Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "___________________" in Java Purpose –Reuse code –Modularize."

Similar presentations


Ads by Google