Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | isabella-walsh |
View: | 50 times |
Download: | 1 times |
11 Methods 220 Apr 2023 220 Apr 2023
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
11 Methods 320 Apr 2023
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 420 Apr 2023
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
11 Methods 520 Apr 2023
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 620 Apr 2023
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
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 720 Apr 2023
11 Methods 820 Apr 2023
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 userpublic static void greet (){ System.out.println("Hello and welcome"); System.out.println("How are you?");}
11 Methods 920 Apr 2023
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 1020 Apr 2023
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 userpublic static void greet (String name){ System.out.println("Hello " + name + " and welcome"); System.out.println("How are you?");}
parameter
11 Methods 1120 Apr 2023
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 parametervalue for parameter
11 Methods 1220 Apr 2023
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
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;
}}
20 Apr 2023 13
Swap.java
what is output?
11 Methods 1420 Apr 2023
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 1520 Apr 2023
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
11 Methods 1620 Apr 2023
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 1720 Apr 2023
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 1820 Apr 2023
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 1920 Apr 2023
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 2020 Apr 2023
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 2120 Apr 2023
//passing parameters to methodspublic 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 2220 Apr 2023
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
11 Methods 2320 Apr 2023
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 2420 Apr 2023
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 2520 Apr 2023
//program to show return valuesimport 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 largestSystem.out.println("Largest is: " + larger(larger(num1, num2), larger(num3,
num4)));}
20 Apr 2023 25
Largest4.java
11 Methods 2620 Apr 2023
public static int larger(int a, int b){
int largerNum;if (a > b){
largerNum = a;}else{ largerNum = b;}
return largerNum;}
}
20 Apr 2023 26
11 Methods 2720 Apr 2023 2720 Apr 2023
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