1 / 27

11 Methods

11 Methods. CE00858-1: Fundamental Programming Techniques. November 14. 1. Objectives. In this session, we will: introduce methods and look at the main() method implement methods and call them pass values into methods return values from methods. November 14. 2. Methods.

Download Presentation

11 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. 11 Methods CE00858-1: Fundamental Programming Techniques November 14 11 Methods 1

  2. Objectives In this session, we will: • introduce methods and look at the main() method • implement methods and call them • pass values into methods • return values from methods November 14 11 Methods 2

  3. Methods • named block of code that can be invoked one or more times in an application • performs a well defined task • has no side effects • is easily understood • advantages: • can focus on what a block of code does, not how • can call method as many times as needed • reduces length of code • simplifies testing 11 Methods

  4. Methods in Java method header • method header: • returnType: • type of data that is returned by method • void if method doesn’t return anything • methodName • parameters enclosed by brackets: • information needed by method • brackets must be included even if no parameters needed • method body: • enclosed by braces • 1 or more statements to be executed returnType methodName (parameters) { statements; } method body 11 Methods

  5. main() method • all Java applications must have a main method • automatically invoked when program run • can include calls to other methods public class MyClass { public static void main (String [] args) { //method body //calls to other methods } } 11 Methods

  6. Structure of a class public class MyClass { public static void main (String [] args) { //method body for main } public static void myMethod1 () { //method body for myMethod1 } public static void myMethod2() { //method body for myMethod2 } } • class may have many methods 11 Methods

  7. Method implementation • if a program is to be implemented using methods, need to: • select meaningful name for method • consider values needed by method to perform its task • consider values returned by method • analyse operations performed inside method body 11 Methods

  8. Method example – greet() • problem: • a method is required to output a greeting to the user on two separate lines • method: • method name: greet • method parameters: none • method returns: nothing • analysis for method body: 2 output statements to greet user public static void greet () { System.out.println("Hello and welcome"); System.out.println("How are you?"); } 11 Methods

  9. Calling methods example – GreetUser • once a method has been written it can be called as many times as required by specifying its name and any parameters required public class GreetUser { public static void main (String [] args) { greet (); greet (); } public static void greet () { System.out.println("Hello and welcome"); System.out.println("How are you?"); } } 11 Methods

  10. greet() method with parameters • problem: • the greet() method is to be modified so that a name is passed as a parameter to be output • method: • method name: greet • method parameters: name – String to be output • method returns: nothing • analysis for method body: 2 output statements to greet user parameter public static void greet (String name) { System.out.println("Hello " + name + " and welcome"); System.out.println("How are you?"); } 11 Methods

  11. Calling methods with parameters • if the method has parameters, these must be given a value when the method is called import java.util.*; public class GreetUser { public static void main (String [] args) { Scanner kybd = new Scanner(System.in); String myName = kybd.next(); greet (myName); String yourName = kybd.next(); greet (yourName); } public static void greet (String name) { System.out.println("Hello " + name + " and welcome"); System.out.println("How are you?"); } } value for parameter value for parameter 11 Methods

  12. Call by value • when a value is passed into a method, a copy of it is taken and used within the method • after the method finishes, changes to the value are not kept 11 Methods

  13. Swap.java public class Swap { public static void main (String [] args) { int x = 3; int y = 4; System.out.println("x is: " + x + ", y is: " + y); swap(x, y); System.out.println("x is: " + x + ", y is: " + y); } public static void swap (int a, int b) { int temp = a; a = b; b = temp; } } what is output? 11 Methods

  14. greet() method with return value • problem: • the greet() method is to be modified so that a name is read inside the method, the greeting is output and the name is returned to the calling program • method: • method name: greet • method parameters: none • method returns: String name • analysis for method body: • create Scanner • prompt user for name • input name • 2 output statements to greet user • return name 11 Methods

  15. return type public static String greet () { Scanner kybd = new Scanner(System.in); System.out.print("Enter name: "); String name = kybd.next(); System.out.println("Hello " + name + " and welcome"); System.out.println("How are you?"); return name; } return statement 11 Methods

  16. Calling methods with return values • if the method returns a value the calling program should do something with that value: • output it • store it • use it in a comparison 11 Methods

  17. import java.util.*; public class GreetUser { public static void main (String [] args) { String aName = greet (); if (aName.equals("Elizabeth")) { System.out.println("Are you the queen?"); } } public static String greet () { Scanner kybd = new Scanner(System.in); System.out.print("Enter name: "); String name = kybd.next(); System.out.println("Hello " + name + " and welcome"); System.out.println("How are you?"); return name; } } GreetUser.java 11 Methods

  18. Analysis and methods • when faced with a specification the designer does not consider how the solution will be implemented • the use of methods is an implementation decision which should be taken after analysis 11 Methods

  19. Method example – Underline • analysis: • output a row of 10 * • output a row of 15 @ • implementation • as same actions will be done, but with different values, this is a candidate for implementation using methods and parameters • method name: underline() • method parameters: • ch – character to be output • times – integer number of times character is to be output • method doesn't return a value • problem: • a program is required to output a row of 10 stars, followed by a row of 15 @ symbols 11 Methods

  20. underline() method analysis • analysis for method body: • what data is used? • ch: character, passed as parameter • times: integer, passed as parameter • what operations are performed? • iteration needed as ch is output several times • what operations are done once before the loop? • none • how many times is loop repeated? • times = 1 to times • what operations are done inside the loop? • output ch • what operations are done after the loop? • output new line 11 Methods

  21. //passing parameters to methods public class Underline { public static void main (String [] args) { underline('*', 10); underline('@', 15); } public static void underline (char ch, int times) { for (int i = 0; i < times; i++) { System.out.print(ch); } System.out.println(); } } Underline.java 11 Methods

  22. Method example – Largest4 • problem: • output the largest of 4 numbers input by the user • analysis • what data is used? • num1, num2, num3 and num4: integers input by user • what operations are performed? • determine larger of num1 and num2 • determine larger of num3 and num4 • determine larger of two previous results • output largest number 11 Methods

  23. larger() method analysis • implementation • as same actions will be done, but with different values, this is a candidate for implementation using methods and return values • method name: larger() • method parameters: • a, b – integers to compare • method returns: • larger integer 11 Methods

  24. larger() method analysis cont. • method body analysis • what data is used? • a: integer passed as parameter • b: integer passed as parameter • what operations are performed? • selection needed as a larger dealt with differently to b larger • what operations are done before the selection? • none • what operations are done if a larger? • store a • what operations are done if b larger? • store • what operations are done after the selection? • return larger 11 Methods

  25. //program to show return values import java.util.*; public class Largest4 { public static void main (String [] args) { //input data Scanner kybd = new Scanner(System.in); System.out.print("Enter 4 numbers: "); int num1 = kybd.nextInt(); int num2 = kybd.nextInt(); int num3 = kybd.nextInt(); int num4 = kybd.nextInt(); //determine larger of num1 and num2 //determine larger of num3 and num4 //determine larger of two previous results //output largest System.out.println("Largest is: " + larger(larger(num1, num2), larger(num3, num4))); } Largest4.java November 14 11 Methods 25

  26. public static int larger(int a, int b) { int largerNum; if (a > b) { largerNum = a; } else { largerNum = b; } return largerNum; } } November 14 11 Methods 26

  27. Summary In this session we have: • looked at implementing methods in Java • seen how methods are called from within the main() method • passed parameters into methods • returned results from methods In the next session we will: • look at making methods even more flexible November 14 11 Methods 27

More Related