11 methods1june 151 11 methods ce00858-1: fundamental programming techniques
Post on 21-Dec-2015
227 views
TRANSCRIPT
11 Methods 118 Apr 2023 118 Apr 2023
11 Methods
CE00858-1: Fundamental Programming Techniques
11 Methods 218 Apr 2023 218 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 318 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 418 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 518 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 618 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 718 Apr 2023
11 Methods 818 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 918 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 1018 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 1118 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 1218 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;
}}
18 Apr 2023 13
Swap.java
what is output?
11 Methods 1418 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 1518 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 1618 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 1718 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 1818 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 1918 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 2018 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 2118 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 2218 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 2318 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 2418 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 2518 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)));}
18 Apr 2023 25
Largest4.java
11 Methods 2618 Apr 2023
public static int larger(int a, int b){
int largerNum;if (a > b){
largerNum = a;}else{ largerNum = b;}
return largerNum;}
}
18 Apr 2023 26
11 Methods 2718 Apr 2023 2718 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