1 / 82

Chapter 6 Methods

Chapter 6 Methods. Objectives. To define methods, invoke methods, and pass arguments to a method (§6.2-5.5). To develop reusable code that is modular, easy-to-read, easy-to-debug, and easy-to-maintain. (§6.6). To use method overloading and understand ambiguous overloading (§6.7).

mccormickl
Download Presentation

Chapter 6 Methods

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 6 Methods

  2. Objectives • To define methods, invoke methods, and pass arguments to a method (§6.2-5.5). • To develop reusable code that is modular, easy-to-read, easy-to-debug, and easy-to-maintain. (§6.6). • To use method overloading and understand ambiguous overloading (§6.7). • To design and implement overloaded methods (§6.8). • To determine the scope of variables (§6.9). • To know how to use the methods in the Math class (§§6.10-6.11). • To learn the concept of method abstraction (§6.12). • To design and implement methods using stepwise refinement (§6.12).

  3. Calling a Methods • In order to use the method, you need to call or invoke the methods; • Two ways to call a methods depend upon if method: • return value int larger = max (3, 4); // calling max (3, 4) ad assigns the result to larger System.out.println(max(3, 4); • not returns a value • the method returns void, a call to method must be a statement. System.out.println(“Welcome to Java!”);

  4. Method A Javamethod is a collection of statements that are grouped together to perform an operation. When you call the System.out.println method, for example, the system actually executes several statements in order to display a message on the console. Now you will learn how to create your own methods with or without return values, invoke a method with or without parameters, overload methods using the same names, and apply method abstraction in the program design. modifier returnValueType methodName(list of parameters) { // Method body; } A method definition consists of a method header and a method body. The Java Tutorials – Defining Methods

  5. // this program contains the main method and max method. // The main method is just like any other method except that it is invoked by JVM. public class TestMax { /** Main method */ public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); // is calling method max System.out.println("The maximum between " + i + " and " + j + " is " + k); }/** when the max method is calling, variable i’s value 5 is passing to num1, and variable j’s value 2 is passing to num in the max method */ /** 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; }} Listing 5.1 –TestMax

  6. Methods headers Here are all the parts of a method: Modifiers: The modifier, which is optional, tells the compiler how to call the method. This defines the access type of the method. Return Type:A method may return a value. The returnValueType is the data type of the value the method returns. Method Name: This actual name of method, named max, has two int parameters, num1 & num2, the larger of which it returned by the methods.. The method name and the parameter list together constitute the method signature. Parameters: A parameter is like a placeholder. When a method is invoked, you pass a value to the parameter. Method Body: The method body contains a collection of statements that define what the method does.

  7. Object-Oriented Programming Concepts • Defining Methods • http://docs.oracle.com/javase/tutorial/java/concepts/index.html

  8. Problem Find the sum of integers from 1 to 10, from 20 to 30, and from 35 to 45, respectively. int sum = 0; for (int i = 1; i <= 10; i++) sum += i; System.out.println("Sum from 1 to 10 is " + sum); sum = 0; for (int i = 20; i <= 30; i++) sum += i; System.out.println("Sum from 20 to 30 is " + sum); sum = 0; for (int i = 35; i <= 45; i++) sum += i; System.out.println("Sum from 35 to 45 is " + sum);

  9. Problem int sum = 0; for (int i = 1; i <= 10; i++) sum += i; System.out.println("Sum from 1 to 10 is " + sum); sum = 0; for (int i = 20; i <= 30; i++) sum += i; System.out.println("Sum from 20 to 30 is " + sum); sum = 0; for (int i = 35; i <= 45; i++) sum += i; System.out.println("Sum from 35 to 45 is " + sum);

  10. Solution public class SumRang { public static int sum(int i1, int i2) { int sum = 0; for (int i = i1; i <= i2; i++) sum += i; return sum; } public static void main(String[] args) { System.out.println("Sum from 1 to 10 is " + sum(1, 10)); System.out.println("Sum from 20 to 30 is " + sum(20, 30)); System.out.println("Sum from 35 to 45 is " + sum(35, 45)); } // end of main } //end of class SumRange

  11. Defining Methods A method is a collection of statements that are grouped together to perform an operation.

  12. Method Signature Method signature is the combination of the method name and the parameter list.

  13. Formal Parameters The variables defined in the method header are known as formal parameters. Simply parameters are place holders.

  14. Actual Parameters When a method is invoked, you pass a value to the parameter. This value is referred to as actual parameter or argument.

  15. Return Value Type A method may return a value. The returnValueType is the data type of the value the method returns. If the method does not return a value, the returnValueType is the keyword void. For example, the returnValueType in the main method is void.

  16. Calling a Method • To use a Method, you have to call or invoke it. • There are two ways to call a Methods, whether the method returns a value or not. • If the method return a value, a call to the method is usually treated as value • int larger = max (3, 4); • Call max (3, 4) and assigns the result to methods to the variable larger. • System.out.println(max(3, 4); • If the method returns void, then a call of the method must be statement • System.out.println(“Welcome to Java!”);

  17. Calling Methods Testing the max method. This program demonstrates calling a method max to return the largest of the int values- Listing 5.1 Video Link (This program contain main methodand the maxmethod.) public class TestMax { /** Main method is just like any other method except that it is invoked by the JVM*/ public static void main(String[] args) { // main method is always the sameinti = 5;int j = 2;int k = max(i, j); //the main method invokes max (i, j), then variable I’s value 5 is passed to num1, & j’s value 2System.out.println("The maximum between " + i + " and " + j + " is " + k); }/** Return the max between two numbers */public static int max(int num1, int num2) { // max methodint result; if (num1 > num2) result = num1; else result = num2; return result; // the max method is executed when the return statement in the max method is executed, the max method returns //the control to its caller }} TestMax

  18. animation Calling Methods, cont. When a program calls a method, program control is transferred to the called method. The statement in main may invoke other methods that are defined in the class. In this example, the main method invokes max(i, j), which is define in the same class with the main method.

  19. animation Trace Method Invocation i is now 5

  20. animation Trace Method Invocation j is now 2

  21. animation Trace Method Invocation invoke max(i, j)

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

  23. animation Trace Method Invocation declare variable result

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

  25. animation Trace Method Invocation result is now 5

  26. animation Trace Method Invocation return result, which is 5

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

  28. animation Trace Method Invocation Execute the print statement

  29. CAUTION A return statement is required for a value-returning method. The method shown below in (a) is logically correct, but it has a compilation error because the Java compiler thinks it possible that this method does not return any value. To fix this problem, delete if (n < 0) in (a), so that the compiler will see a return statement to be reached regardless of how the if statement is evaluated. //return -1; (does not keep all the variable)

  30. Reuse Methods from Other Classes NOTE: One of the benefits of methods is for reuse. The max method can be invoked from any class besides TestMax. If you create a new class Test, you can invoke the max method using ClassName.methodName (e.g., TestMax.max).

  31. Call Stacks Each time a method is invoked (called), the system stores parameters and variables in the memory known as a stack, which stores elements in LIFO (Last-in-first-out).

  32. animation Trace Call Stack i is declared and initialized

  33. animation Trace Call Stack j is declared and initialized

  34. animation Trace Call Stack Declare k

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

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

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

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

  39. animation Trace Call Stack Assign num1 to result

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

  41. animation Trace Call Stack Execute print statement

  42. void Method & Example void is a Java keyword. Used at method declaration and definition to specify that the method does not return any type, the method returns void. It is not a type and there is no void references The example listing 5.2 program is a type of method does not return a value. The method performs some actions. Video Link on void method TestVoidMethod

  43. Passing Parameters • The power of a method is its ability to work with parameters. • You can use println to print any string; • You can use max to find the maximum between any two int values. • When calling a method, you need to provide arguments, this know as parameter order association. The following method prints a message n times. public static void nPrintln(String message, int n) { for (int i = 0; i < n; i++) System.out.println(message); } Suppose you invoke the method using nPrintln(“Computer Science”, 15); What is the output?

  44. Pass by Value This program demonstrates passing values to the methods. public class TestPassByValue { // the program creates a method for swapping two variables. /** Main method */ public static void main(String[] args) { // Declare and initialize variables int num1 = 1; int num2 = 2; System.out.println("Before invoking the swap method, num1 is " + num1 + " and num2 is " + num2);// Invoke the swap method to attempt to swap two variablesswap(num1, num2); System.out.println("After invoking the swap method, num1 is " + num1 + " and num2 is " + num2); }/** Swap two variables- The swap method is invoked by passing two arguments. */ public static void swap(int n1, int n2) { System.out.println("\tInside the swap method"); System.out.println("\t\tBefore swapping n1 is " + n1 + " n2 is " + n2);// Swap n1 with n2 int temp = n1; n1 = n2;n2 = temp; System.out.println("\t\tAfter swapping n1 is " + n1 + " n2 is " + n2); }} Listing 5.5 Increment

  45. Pass by Value, cont. Swap method is invoked, num1 is 1 and num2 is 2. After swap method is invoked, num1 is still 1 and num2 is still 2. Their values have not been swapped, but the value of the arguments num1 and num2 are passed to n1 and n2 (use temp location) with their own memory locations independet

  46. Modularizing Code Methods can be used to reduce redundant coding and enable code reuse. Methods can also be used to modularize code and improve the quality of the program. Listing 5.6 program. Video Note Modularize GreatestCommonDivisorMethod PrimeNumberMethod

  47. Overloading Methods Overloading the max Method public static double max(double num1, double num2) { if (num1 > num2) return num1; else return num2; } TestMethodOverloading

  48. 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. Ambiguous invocation is a compilation error.

  49. 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; } }

  50. Problem: Converting Decimals to Hexadecimals Write a method that converts a decimal integer to a hexadecimal. Decimal2HexConversion

More Related