11 methods1june 151 11 methods ce00858-1: fundamental programming techniques

27
11 Methods 1 25 Mar 2022 1 25 Mar 2022 11 Methods CE00858-1: Fundamental Programming Techniques

Post on 21-Dec-2015

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 11 Methods1June 151 11 Methods CE00858-1: Fundamental Programming Techniques

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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