1 / 46

Chapter One: Methods, Arrays

Chapter One: Methods, Arrays. Introducing Methods. A method is a collection of statements that are grouped together to perform an operation. Introducing Methods……. Method signature is the combination of the method name and the parameter list.

collin
Download Presentation

Chapter One: Methods, Arrays

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter One: Methods, Arrays

  2. Introducing Methods • A method is a collection of statements that are grouped together to perform an operation.

  3. Introducing Methods…… • Method signature is the combination of the method name and the parameter list. • The variables defined in the method header are known as formal parameters or simply parameter. • You need to declare a separate data type for each parameter. For instance, int num1,num2 should be replaced by int num1, int num2. • When a method is invoked, you pass a value to the parameter. This value is referred to asactual parameter or argument.

  4. Introducing Methods…… A method may return a value. • ThereturnValueTypeis the data type of the value the method returns. • If the method does not return a value, the returnValueTypeis the keyword void. • For example, thereturnValueTypein themainmethod is void.

  5. Calling a method • This program demonstrates calling a method max to return the largest of theintvalues

  6. Calling a method….. • public class TestMax { • /** Main method */ • public static void main(String[] args) { • int i = 5; • int j = 2; • int k = max(i, j); • System.out.println("The maximum between " + i + “ • and " + j + " is " + k); • } • /** Return the max between two numbers */ • public static int max(int num1, int num2) { • int result; • if (num1 > num2) • result = num1; • else • result = num2; • return result; • } • }

  7. Calling a method…..

  8. Trace Method Invocation i is now 5

  9. Trace Method Invocation…. j is now 2

  10. Trace Method Invocation…. invoke max(i, j)

  11. Trace Method Invocation…. invoke max(i, j) Pass the value of i to num1 Pass the value of j to num2

  12. Trace Method Invocation…. declare variable result

  13. animation Trace Method Invocation…. Trace Method Invocation (num1 > num2) is true since num1 is 5 and num2 is 2

  14. animation Trace Method Invocation…. Trace Method Invocation result is now 5

  15. animation Trace Method Invocation…. Trace Method Invocation return result, which is 5

  16. animation Trace Method Invocation…. Trace Method Invocation return max(i, j) and assign the return value to k

  17. animation Trace Method Invocation…. Trace Method Invocation Execute the print statement

  18. Reuse Methods from Other Classes • One of the benefits of methods is for reuse. • The max method can be invoked from any(as it is declared public) class besides TestMax. • If you create a new class Test, you can invoke the max method using ClassName.methodName(…) (because it is declared static). Example: • Math.sqrt(900.0) • TestMax.max

  19. Reuse Methods from Other Classes • If it were not declared static the method is accessed using instance of the class, object. ClassNamecn = new ClassName(…); cn.methodName(…);

  20. Call Stacks

  21. animation Trace Call Stack i is declared and initialized

  22. animation Trace Call Stack j is declared and initialized

  23. animation Trace Call Stack Declare k

  24. animation Trace Call Stack Invoke max(i, j)

  25. Trace Call Stack pass the values of i and j to num1 and num2

  26. animation Trace Call Stack pass the values of i and j to num1 and num2

  27. animation Trace Call Stack (num1 > num2) is true

  28. animation Trace Call Stack Assign num1 to result

  29. animation Trace Call Stack Return result and assign it to k

  30. animation Trace Call Stack Execute print statement

  31. Passing Parameters • There are two ways to pass a variable to the called function: pass by value and pass by reference • Example (C++ code)

  32. Passing Parameters…… • Pass by value (how it works) • The contents of memory of   i   and   j   don't change • Pass by reference (how it works) • The contents of memory of   i   and  j   don't change Java is strictly pass by value

  33. Overloading Methods • Defining more than one methods with the same name but different parameter lists within one class. • The Java compiler determines which method is used based on the method signature.

  34. Overloading Methods……

  35. Ambiguous Invocation • Sometimes there may be two or more possible matches for an invocation of a method, but the compiler cannot determine the most specific match. • This is referred to as ambiguous invocation. Example: max(1,2); • Ambiguous invocation is a compilation error.

  36. Ambiguous Invocation…. public class AmbiguousOverloading { public static void main(String[] args) { System.out.println(max(1, 2)); }  public static double max(int num1, double num2) { if (num1 > num2) return num1; else return num2; } public static double max(double num1, int num2) { if (num1 > num2) return num1; else return num2; } }

  37. Benefits of Methods • Write a method once and reuse it anywhere. Avoids “reinventing a wheel” • Information hiding. Hide the implementation from the user. • You can think of the method body as a black box that contains the detailed implementation for the method. • Reduce complexity.

  38. Methods defined in the Math Class • Class constants: • PI • E (base of natural logarithm) • Class methods: • Trigonometric Methods • Exponent Methods • Rounding Methods • min, max, abs, and random Methods

  39. Trigonometric Methods • public static double sin(double redians) • public static double cos(double redians) • public static double tan(double redians) • public static double asin(double redians) • public static double acos(double redians) • public static double atan(double redians) • public static double toRadians(double degree) • public static double toDegrees(double degree)

  40. Trigonometric Methods ……. Examples: Math.sin(0) returns 0.0 Math.sin(Math.PI / 6) returns 0.5 Math.sin(Math.PI / 2) returns 1.0 Math.cos(0) returns 1.0 Math.cos(Math.PI / 6) returns 0.866 Math.cos(Math.PI / 2) returns 0

  41. Exponent Methods • public static double exp(double a) Returns e raised to the power ofa. • public static double log(double a) Returns the natural logarithm of a. (ln(x) = loge(x)) • public static double log10(double a) Returns the 10-based logarithm of a. • public static double pow(double a, double b) Returnsaraised to the power of b. • public static double sqrt(double a) Returns the square root of a.

  42. Exponent Methods ….. Examples: Math.exp(1) returns 2.71 Math.log(2.71) returns 1.0 Math.pow(2, 3) returns 8.0 Math.pow(3, 2) returns 9.0 Math.pow(3.5, 2.5) returns 22.91765 Math.sqrt(4) returns 2.0 Math.sqrt(10.5) returns 3.24

  43. Rounding Methods • public static double ceil(double x) x rounded up to its nearest integer. This integer is returned as a double value. • public static double floor(double x) x is rounded down to its nearest integer. This integer is returned as a double value. • public static double rint(double x) x is rounded to its nearest integer. If x is equally close to two integers, the even one is returned as a double. • public static intround(float x) Return (int)Math.floor(x+0.5). • public static long round(double x) Return (long)Math.floor(x+0.5).

  44. Rounding Methods, example Math.ceil(2.1) returns 3.0 Math.ceil(2.0) returns 2.0 Math.ceil(-2.0) returns –2.0 Math.ceil(-2.1) returns -2.0 Math.floor(2.1) returns 2.0 Math.floor(2.0) returns 2.0 Math.floor(-2.0) returns –2.0 Math.floor(-2.1) returns -3.0 Math.rint(2.1) returns 2.0 Math.rint(2.0) returns 2.0 Math.rint(-2.0) returns –2.0 Math.rint(-2.1) returns -2.0 Math.rint(2.5) returns 2.0 Math.rint(-2.5) returns -2.0 Math.round(2.6f) returns 3 Math.round(2.0) returns 2 Math.round(-2.0f) returns -2 Math.round(-2.6) returns -3

  45. min, max, and abs Examples: Math.max(2, 3) returns 3 Math.max(2.5, 3) returns 3.0 Math.min(2.5, 3.6) returns 2.5 Math.abs(-2) returns 2 Math.abs(-2.1) returns 2.1 • max(a, b)and min(a, b) Returns the maximum or minimum of two parameters. • abs(a) Returns the absolute value of the parameter. • random() Returns a random double value in the range [0.0, 1.0).

  46. The random Method • Generates a random double value greater than or equal to 0.0 and less than 1.0 ( 0.0 <= Math.random() < 1.0). Examples: In general,

More Related