11 methods1june 151 11 methods ce00858-1: fundamental programming techniques
Post on 21-Dec-2015
222 views
TRANSCRIPT
![Page 1: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/1.jpg)
11 Methods 118 Apr 2023 118 Apr 2023
11 Methods
CE00858-1: Fundamental Programming Techniques
![Page 2: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/2.jpg)
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
![Page 3: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/3.jpg)
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
![Page 4: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/4.jpg)
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
![Page 5: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/5.jpg)
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}
}
![Page 6: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/6.jpg)
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
![Page 7: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/7.jpg)
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
![Page 8: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/8.jpg)
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?");}
![Page 9: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/9.jpg)
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?");}
}
![Page 10: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/10.jpg)
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
![Page 11: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/11.jpg)
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
![Page 12: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/12.jpg)
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
![Page 13: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/13.jpg)
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?
![Page 14: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/14.jpg)
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
![Page 15: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/15.jpg)
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
![Page 16: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/16.jpg)
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
![Page 17: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/17.jpg)
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
![Page 18: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/18.jpg)
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
![Page 19: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/19.jpg)
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
![Page 20: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/20.jpg)
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
![Page 21: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/21.jpg)
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
![Page 22: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/22.jpg)
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
![Page 23: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/23.jpg)
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
![Page 24: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/24.jpg)
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
![Page 25: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/25.jpg)
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
![Page 26: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/26.jpg)
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
![Page 27: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques](https://reader031.vdocuments.us/reader031/viewer/2022032704/56649d5e5503460f94a3e860/html5/thumbnails/27.jpg)
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