1 Math class methods User defined methods Math

  • Slides: 19
Download presentation
1 Math class methods & User defined methods

1 Math class methods & User defined methods

Math class methods Math. sqrt(4. 0) Math. random() • java. lang is the library/package

Math class methods Math. sqrt(4. 0) Math. random() • java. lang is the library/package that provides Math class methods such as – Math. random() to generate random numbers • Java. lang is accessed by all java programs by default. – YOU do not have to include it at the beginning of the program as you do with javax package.

3 Random-Number Generation • Often we want our programs to generate random numbers. –

3 Random-Number Generation • Often we want our programs to generate random numbers. – games of chance – testing without user interaction • Java random-number generators – Math. random() • Returns a double value with a positive sign, greater than or equal to 0. 0 and less than 1. 0. – What if we want to generate random integers? 2000 Prentice Hall, Inc. All rights reserved.

4 Random-Number Generation – Math. random() • Produces double • from 0. 0 to

4 Random-Number Generation – Math. random() • Produces double • from 0. 0 to 1. 0 (excluding 1) • ( int ) ( Math. random() * 6 ) • Produces integers from 0– 5 Scaling – 1 + ( int ) ( Math. random() * 6 ) • Produces integers from Shifting 2000 Prentice Hall, Inc. All rights reserved. 1– 6

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Outline // Fig. 6. 7: Random. Integers. java // Shifted, scaled random integers. import javax. swing. JOption. Pane; 5 public class Random. Integers { public static void main( String args[] ) { int value; String output = ""; Produce integers in range 1 -6 // loop 20 times for ( int counter = 1; counter <= 20; counter++ ) { // pick random integer between 1 and 6 value = 1 + ( int ) ( Math. random() * 6 ); output += value + " "; // append value to output // if counter divisible by 5, append newline to String output if ( counter % 5 == 0 ) Math. random returns doubles. We cast the double as an int output += "n"; } // end for 2000 Prentice Hall, Inc. All rights reserved.

26 27 28 29 30 31 32 33 34 JOption. Pane. show. Message. Dialog(

26 27 28 29 30 31 32 33 34 JOption. Pane. show. Message. Dialog( null, output, "20 Random Numbers from 1 to 6", JOption. Pane. INFORMATION_MESSAGE ); System. exit( 0 ); // terminate application } // end main } // end class Random. Integers. java 2000 Prentice Hall, Inc. All rights reserved. Outline 6

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 // Fig. 6. 8: Roll. Die. java // Roll a six-sided die 6000 times. import javax. swing. *; Outline public class Roll. Die { 7 Produce integers in range 1 -6 public static void main( String args[] ) { int frequency 1 = 0, frequency 2 = 0, frequency 3 = 0, frequency 4 = 0, frequency 5 = 0, frequency 6 = 0, face; String output; // summarize results for ( int roll = 1; roll <= 6000; roll++ ) { face = 1 + ( int ) ( Math. random() * 6 ); // determine roll value and increment appropriate counter switch ( face ) { case 1: ++frequency 1; break; case 2: ++frequency 2; break; case 3: ++frequency 3; break; 2000 Prentice Hall, Inc. All rights reserved. Increment appropriate frequency counter, depending on randomly generated number

31 32 33 34 35 36 37 38 39 40 41 42 43 44

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 case 4: ++frequency 4; break; case 5: ++frequency 5; break; case 6: ++frequency 6; break; } // end switch } // end for Output = "Facet. Frequency" + "n 1t" + frequency 1 + "n 2t" + frequency 2 + "n 3t" + frequency 3 + "n 4t" + frequency 4 + "n 5t" + frequency 5 + "n 6t" + frequency 6 ; JOption. Pane. show. Message. Dialog( null, output, "Rolling a Die 6000 Times", JOption. Pane. INFORMATION_MESSAGE ); System. exit( 0 ); // terminate application } // end main } // end class Roll. Die 2000 Prentice Hall, Inc. All rights reserved. Outline 8

9 2000 Prentice Hall, Inc. All rights reserved.

9 2000 Prentice Hall, Inc. All rights reserved.

10 Benefits of Methods n n Experience has shown that the best way to

10 Benefits of Methods n n Experience has shown that the best way to develop and maintain large programs is to build it from smaller components or modules. In Java, one such module is the method. Each module is generally simpler and more manageable than the entire program. This concept is known as Divide and Conquer, also with Abstraction in the mix.

11 User defined Method returning a value • General format of method declaration: Method

11 User defined Method returning a value • General format of method declaration: Method header modifiers return-value-type method-name( parameter 1, …, parameter. N ) { Method body Scope of local variables declarations and statements } • Method can return one value: return expression; • Or, it can returns nothing using keyword void in the header. 2000 Prentice Hall, Inc. All rights reserved.

12 Return Value Types • You can only return one value from a method.

12 Return Value Types • You can only return one value from a method. • Returning void – void: means nothing – A method that returns void therefore returns nothing. – Hence, there is no need for the optional return statement. But using one can force early exit from the method. – Example: public static void print. Intro (int n);

13 Parameter Data Types • Unlike return values, you can pass as many parameters

13 Parameter Data Types • Unlike return values, you can pass as many parameters as you like. • To pass more than one parameter, you need to separate the parameters with commas. public static int maximum (int x, int y) { /*body*/ }

14 Warning • Unlike declaring variables, you must specifically state the type for multiple

14 Warning • Unlike declaring variables, you must specifically state the type for multiple variables – For example take. In. Two. Floats( float x, y ) is incorrect – Instead you must write take. In. Two. Floats(float x, float y)

15 No parameters • You can also have a method that accepts no parameters.

15 No parameters • You can also have a method that accepts no parameters. In such case, you would just have an empty parameter list. E. g. public static int roll. Die () public static void print. Intro ()

16 6. 5 Argument Promotion • Coercion of arguments – Forcing arguments to appropriate

16 6. 5 Argument Promotion • Coercion of arguments – Forcing arguments to appropriate type to pass to method • e. g. , System. out. println( Math. sqrt( 4 ) ); – Evaluates Math. sqrt( 4 ) – Then evaluates System. out. println() • Promotion rules – Specify how to convert types without data loss 2000 Prentice Hall, Inc. All rights reserved.

17 2000 Prentice Hall, Inc. All rights reserved.

17 2000 Prentice Hall, Inc. All rights reserved.

Lets write a program in class to convert temperatures – Use two methods to

Lets write a program in class to convert temperatures – Use two methods to write a program that prints charts showing the Fahrenheit equivalent of all Celsius temperatures from 0 to 100 degrees – and the Celsius equivalents of all Fahrenheit temperatures from 32 to 212 degrees. – Print the output in a neat tabular format. • Use the following methods: – Method Celsius returns the Celsius equivalent of a Fahrenheit temperature (( 5. 0 / 9. 0 * ( f. Temp - 32 ) ) – Method Fahrenheit returns the Fehrenheit equivalent of a Celsius temperature ( 9. 0 / 5. 0 * c. Temp + 32 ) 2000 Prentice Hall, Inc. All rights reserved. 18

19 review • What is a method? • What information can you learn about

19 review • What is a method? • What information can you learn about a method from its header? • What does it mean to invoke a method? • What is call by value? • What is scope of local variables within a method? • Why don’t we have to import the Math class? • What is abstraction in computer science?