Download presentation
Presentation is loading. Please wait.
1
11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques
2
11 Methods2June 152 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
3
11 Methods3June 15 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
4
11 Methods4June 15 Methods in Java 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 header method body
5
11 Methods5June 15 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 }
6
11 Methods6June 15 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
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 Methods7June 15
8
11 Methods8June 15 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?"); }
9
11 Methods9June 15 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 (); } public static void greet () { System.out.println("Hello and welcome"); System.out.println("How are you?"); }
10
11 Methods10June 15 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 public static void greet (String name) { System.out.println("Hello " + name + " and welcome"); System.out.println("How are you?"); } parameter
11
11 Methods11June 15 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
12
11 Methods12June 15 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
13
11 Methods 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; } June 1513 Swap.java what is output?
14
11 Methods14June 15 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
15
11 Methods15June 15 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 type return statement
16
11 Methods16June 15 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
17
11 Methods17June 15 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
18
11 Methods18June 15 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
19
11 Methods19June 15 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
20
11 Methods20June 15 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
21
11 Methods21June 15 //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
22
11 Methods22June 15 Method example – Largest4 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 problem: output the largest of 4 numbers input by the user
23
11 Methods23June 15 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
24
11 Methods24June 15 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
25
11 Methods25June 15 //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))); } June 1525 Largest4.java
26
11 Methods26June 15 public static int larger(int a, int b) { int largerNum; if (a > b) { largerNum = a; } else { largerNum = b; } return largerNum; } June 1526
27
11 Methods27June 1527June 15 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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.