Java methods or Subroutines or Functions

DrKuppusamyP 166 views 24 slides Jul 22, 2021
Slide 1
Slide 1 of 24
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24

About This Presentation

Java Methods, Method Overloading, Recursion


Slide Content

User defined Subroutines/ Methods
/ Functions
in Java
Dr. Kuppusamy.P
Associate Professor / SCOPE

UserdefinedmethodsinJava
•Methodisacollectionofstatementsgroupedtogethertoperforman
operation.
•Usercanalsodefinemethodsinsideaclasscalleduser-defined
methodsorsubroutinesorfunctions.
•Anuserdefinedmethodwillrunonlywhenitiscalled.
•Usercanpassdata,knownasparameters/arguments,intoa
method.
•Whyaremethodsneeded?
•CodeReusability:Definethecodeonce,useitmanytimes.
Dr. Kuppusamy P

CreatingMethod
•Methoddefinitionconsistsofamethodheaderandamethodbody.
Syntax
modifierreturnTypenameOfMethod(ParameterList)
{
//bodywithSetofStatements
}
•modifier−definestheaccesstypeofthemethodanditisoptional.
•returnType−Methodmayreturnavalueorvoidanditismandatory.
•nameOfMethod−methodnameisanyuserdefinedname.
•ParameterList−Thelistofparameters,datatype,order,andnumberof
parameters.Theseareoptional,methodmaycontainzeroparameters.
•methodbody−Setofstatementsperformaspecifictask.
Dr. Kuppusamy P

Method-Example
publicstaticvoidfindFact()//MethodDefinition
{
Scannersin=newScanner(System.in);
intn=sin.nextInt();
intf=1;
for(inti=1;i<=n;i++)
f=f*i;
System.out.println(f);
}
//Methodcalling
publicstaticvoidmain(Stringargs[])
{
findFact();
}
Dr. Kuppusamy P

CreatingMethod
Methodcanbecreatedinthefollowingfourways
1.Methodwithoutreturn-typewithoutparameters
2.Methodwithoutreturn-typewithparameters
3.Methodwithreturn-typewithoutparameters
4.Methodwithreturn-typewithparameters
5.Staticmethods
6.Non-staticmethods
Dr. Kuppusamy P

CreatingMethod-Example
1.Methodwithoutreturn-typewithoutparameters
publicclassFactEx
{
publicvoidFact() //MethodDefinition
{
Scannersin=newScanner(System.in);
intn=sin.nextInt();
intf=1;
for(inti=1;i<=n;i++)
f=f*i;
System.out.println(f);
}
//Methodcalling
publicstaticvoidmain(Stringargs[])
{
Fact();
}
}
Dr. Kuppusamy P

CreatingMethod-Example
2.Methodwithoutreturn-typewithparameters
publicclassFactEx1
{
publicvoidFact(intn) //MethodDefinition
{
intf=1;
for(inti=1;i<=n;i++)
f=f*i;
System.out.println(f);
}
//Methodcalling
publicstaticvoidmain(Stringargs[])
{
Scannersin=newScanner(System.in);
intn=sin.nextInt();
Fact(n);
}
}
Dr. Kuppusamy P

CreatingMethod-Example
3.Methodwithreturn-typewithoutparameters
publicclassFactEx2
{
publicintFact() //MethodDefinition
{
Scannersin=newScanner(System.in);
intn=sin.nextInt();
intf=1;
for(inti=1;i<=n;i++)
f=f*i;
returnf;
}
//Methodcalling
publicstaticvoidmain(Stringargs[])
{
intfactorial=Fact();
System.out.println(factorial);
}
}
Dr. Kuppusamy P

CreatingMethod-Example
4.Methodwithreturn-typewithparameters
publicclassFactEx3
{
publicintFact(intn) //MethodDefinition
{
intf=1;
for(inti=1;i<=n;i++)
f=f*i;
returnf;
}
//Methodcalling
publicstaticvoidmain(Stringargs[])
{
Scannersin=newScanner(System.in);
intinp=sin.nextInt();
intfactorial=Fact(inp);
System.out.println(factorial);
}
}
Dr. Kuppusamy P

CreatingMethod-Example
5.Staticmethods
publicclassStaticEx{
publicstaticintFact(intn) //methoddefinition
{
intf=1;
for(inti=1;i<=n;i++)
f=f*i;
returnf;
}
publicstaticvoidmain(String[]args)
{
Scannersin=newScanner(System.in);
intnum=sin.nextInt();
intfactorial=Fact(num); //methodcalling
System.out.println(factorial);
}
}
Dr. Kuppusamy P

CreatingMethod-Example
6.Non-staticmethods
publicclassNonStaticEx{
publicintFact(intn) //methoddefinition
{
intf=1;
for(inti=1;i<=n;i++)
f=f*i;
returnf;
}
publicstaticvoidmain(String[]args)
{
Scannersin=newScanner(System.in);
intnum=sin.nextInt();
NonStaticExm=newNonStaticEx(); //objectorinstancecreationfortheclassNonStaticEx
intfactorial=m.Fact(num); //methodcalling
System.out.println(factorial);
}
}
Dr. Kuppusamy P

Passing arrays as Parameters
Dr. Kuppusamy P

PassingarraysasParameters
•Passarraystoamethodlikenormalvariables.
•Whenpassanarrayasanargument,actuallytheaddressofthe
arrayinthememoryispassed(reference).
CreatingMethodwithArrays
i.Withoutreturnanarray
modifierreturnTypeMethodname(data-typearray-name[])
{
//methodbody
}
ii.Withreturnanarray
modifierdata-type[]Methodname(data-typearray-name[])
{
//methodbody
}
Dr. Kuppusamy P

Example
importjava.util.*;
publicclassArrayPass
{
publicintmin(int[]array)
{
intmin=array[0];
for(inti=0;i<array.length;i++)
{
if(array[i]<min)
{
min=array[i];
}
}
returnmin;
}
Dr. Kuppusamy P

Example
publicstaticint[]descending(int[]array)
{
for(inti=0;i<array.length;i++)
{
for(intj=i+1;j<array.length;j++)
{
if(array[i]>array[j])
{
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
returnarray;
}
Dr. Kuppusamy P

Example
publicstaticvoidmain(Stringargs[])
{
Scannersc=newScanner(System.in);
intsize=sc.nextInt();
int[]myArray=newint[size];
for(inti=0;i<size;i++)
{
myArray[i]=sc.nextInt();
}
ArrayPassm=newArrayPass();
intmax=m.min(myArray);
System.out.println(max);
intdsc[]=m.descending(myArray);
for(inti:dsc)
System.out.println(i);
}
}
Dr. Kuppusamy P

Method Overloading in java
Dr. Kuppusamy P

MethodOverloadinginjava
•MethodOverloadingisaclasscontainsmorethanonemethodwiththesamemethod
name.Butvaryingtheargumentlistslikecount,datatypeandargumentssequence.
•Example:
•Additionoftwonumberforintegeraswellasfloat.
•Advantages
•Methodoverloadingincreasesthereadabilityoftheprogram.
Differentapproachesofmethodoverloading
1.Numberofparameters.
•add(inta,intb)
•add(inta,intb,intc)
2.Datatypeofparameters.
•add(inta,intb)
•add(inta,floatb)
3.SequenceofDatatypeofparameters.
•add(int,float)
•add(float,int)
Dr. Kuppusamy P

MethodOverloadinginjava
importjava.util.Scanner;
publicclassOverload
{
publicstaticintadd(inta,intb)
{
returna+b;
}
publicstaticfloatadd(floata,floatb)
{
returna+b;
}
publicstaticvoidadd(floata,intb)
{
System.out.println(a+b);
}
publicstaticvoidmain(Stringargs[])
{
Scannersc=newScanner(System.in);
intnum1=sc.nextInt();
intnum2=sc.nextInt();
intisum=add(num1,num2);
floatfsum=add(34.34f,34.34f);
add(10.0f,20);
System.out.println(fsum);
}
}
Dr. Kuppusamy P

Recursion in java
Dr. Kuppusamy P

Recursioninjava
•Recursionisaprocessinwhichamethodcallsitselfcontinuously.
•Amethodinjavathatcallsitselfiscalledrecursivemethod.
•Itmakesthereusabilityofcode.So,reducestheprogramsize.
•Syntax
returntypemethodname()
{
statements;
methodname();
}
Dr. Kuppusamy P

Factorialusingrecursioninjava
•Example
importjava.util.*;
publicclassRecFact
{
publicstaticintfact(intn)
{
if(n<=1)
{
System.out.println(n);
return1;
}
else
{
System.out.print(n+"*");
returnn*fact(n-1);
}
}
publicstaticvoidmain(String[]args)
{
intn;
System.out.println("Enterthenotofind
factorial");
Scannersin=newScanner(System.in);
n=sin.nextInt();
intres=fact(n);
System.out.println("Factorial"+res);
}
}
Dr. Kuppusamy P

FibonacciusingRecursioninjava
•Example
importjava.util.*;
publicclassFibRec{
publicstaticintfib(intn)
{
if(n==0)
{
return0;
}
if(n==1||n==2)
{
return1;
}
else
returnfib(n-2)+fib(n-1);
}
publicstaticvoidmain(String[]arg)
{
intn;
Scannersin=newScanner(System.in);
System.out.println("Enterthefib
series");
n=sin.nextInt();
for(inti=0;i<=n;i++)
{
System.out.print(fib(i)+"");
}
}
}
Dr. Kuppusamy P

References
Dr. Kuppusamy P
Herbert Schildt, “Java: The Complete Reference”, McGraw-Hill Education, Tenth edition,
2017.