What is method?
- Method is block of code or collection(group) of statement that perform a specific task.All method in java belong to a class.method similar to function and expose the behavior of objects.which only runs when it is called.
 - method must have return type weather void or return data like int , string...etc
 - Method Naming convention in java first letter should be lowercase verb and use camel case for multiple words.
 
Syntax
AccessModifer returntype methodName(Parameter List)
{
// method body 
}
Access Modifiers:-
=> public, private, protected, default – controls method access
Method overloading:
Same class same method name , different parameters 
(compile-time polymorphism)
Method Overriding:-
Different class (extend(is an-relationship) )parent and child relationship and Redefining-parent method in child class( same method name and parameters)
Types of methods:
In java is  contain predefined  and  custom method , those methods  have  static and non-static method, we will see the later predefined methods(Already defined in the Java  class libraries(Built-method)) .
 Object (java.lang.Object)
                    ↑
             Your Custom Class
- In java Object class have already told static method and non static method, that object class contain mostly non-static method that method public-ally accessible and static methods have private or package-private(default-both classes have same package not to be subclass). they are not accessible for normal java developers,most of them used Jvm internally.
 
Predefine Static methods:
Example:-
1.Math  -> Math.pow(x, y)   -> Power (x^y)
2.Arrays -> Arrays.sort(arr)    -> Sorts an array
3.Collections   -> Collections.sort(list) ->Sorts a list.
Redefine Non-Static methods:
1.String    -> str.length() Returns string length
2.String    -> str.toUpperCase()    Converts to 3.uppercase -> Scanner  scanner.nextInt()   Reads an int from user input
4.ArrayList -> list.add(x)  Adds element to list
- Static method
 - Instance method
 - Construtor(special method)
 
Why use methods?
To reuse code: define the code once , and use it many times
without method
public class Test_Withoutmethod {
    public static void main(String[] args) {
        int a =5 , b=3;
        int sum = a+b;
        System.out.println("Sum: "+ sum);
        int x=10, y=2;
        int result =x*y;
        System.out.println("Sum: "+result);
    }
}
with method:
public class Test_withMethod {
    static  void  add(int a , int b)
    {
        int sum =a+b;
        System.out.println("Sum: "+ sum);
    }
public static int minFunction(int n1, int n2)
{
    int min;
//  System.out.println("Min value is : "+min); you can not initialize local variable  ,when printing came compile time error.
    if (n1>n2)
    {
        min =n2;
    System.out.println("Min:n2 is : "+min);
    return min;
    }
            else
            {   
    min=n1;
    System.out.println("Min:n1 is : "+min);
    return min;
            }
    }
    public static void main(String[] args) {
   add(5,3);// callmethod 
   add(10,2); // reuse method 
   minFunction(1,2);
    }
}
Method Defining and Calling with  return types and void :-
// method  defining and  calling
public class Method_Example1 {
    public static void main(String[] args) {
  int total= add(210,210);
  System.out.println(" Return value example => Total: 210+210 = "+total);
  twlethMark(550);
    }
    //  method using to void example 
    public static void twlethMark(int mark)
    {
        if(mark>580)
        {
            System.out.println("Rank:A1");
        }
        else if (mark >=550)
        {
            System.out.println("Rank:A2");
        }
        else
        {
            System.out.println("Rank:A3");
        }
    }
    public static int add (int n1,int n2)
    {
        int total = n1+n2;
        return total;
    }
}
swapping values inside method:-
public class Method_SwappingValue {
public static void main(String[] args) {
    int a =30;
    int b =45;
    System.out.println("Before swapping, a =" +a+ " and b ="+b);
    swapValueinFunction(a,b);
    System.out.println("\n Now ,Before and After swapping values will be same here");
    System.out.println("After swapping, a = "+a + ", b = "+b);
}
public static void swapValueinFunction(int a, int b) {
    System.out.println("Before swapping(Inside), a = "+a + ", b = "+b);
int c =a;  // a(30) value moved to c (),now a (empty) is  empty
a= b;  // b(45) value moved  a, because a is empty, now a is 45
b=c;  // c(30)  value   moved  to b(empty) , now b is 30
System.out.println("After swapping(Inside), a = "+a + ", b = "+b);
}
}
Method&Calling_Passing_Parameters
public class Method_Passing_Parameters {
    static String letter = " open the letter\n \n"
            + "To Smantatha,\n"
            + "\n"
            + "You are my heartbeat 💓\n"
            + "My heart is not beeping... because you're not near to hear it.\n"
            + "Come close and make it beep again.\n"
            + "Make my heart lovable with your presence. ❤️\n"
            + "\n"
            + "Forever yours,\n"
            + "Prasanth 💌";
    public static void main(String[] args) {
     sendLetter("prasanth","Java Developer"); //passing string parameter
    }
 static void readLetter(String reader,String career,int age) {
        System.out.println(reader+" read the letter from prasanth:");
        System.out.println(reader + letter);
    }
static void sendLetter(String sender,String career) {
System.out.println(sender+" sent a letter to samantha");    
//System.out.println("Message: "+letter);
System.out.println();
readLetter("samantha","Actress",35);
    }
}
Example: method using to return value and void 
public class JavaReturnandVoid{
    public static void main(String[] args) {
        int Balance =myAccountBalance(100);
System.out.println("Balance: "+Balance);
System.out.println("\n");
samInfo(25,55);
char [] data=samInfo(25,55,5.9);
System.out.println(data);
    }
static void samInfo(int i, int j) {
    System.out.println("Age: "+i);
    System.out.println("Weight: "+j);
    }
// differen  paremeter if you have ,  how to return  ?
static char[] samInfo(int i, int j, double d) {
    System.out.println("differen  paremeter if you have ?  how to return ");
    String data = "Age:" +i+", weight"+j+", Height:"+d;
    return data.toCharArray(); //convert to char[]
}
static int myAccountBalance(int AccountBalnce ) {
    int myPurse = 1;
    int Balance =myPurse+AccountBalnce;
        return Balance;
    }
}
<u>How to different way return the value:-</u>
public class MethodReturnExample {
public static void main(String[] args) {
    // 1. calling void method 
     greet();
     // 2. calling int return method
       int sum=add(210,210);
       System.out.println("sum: "+ sum);
       //3.calling  String return method
       String message=getMessage("Prasanth");
       System.out.println(message);
       //4. calling method that returns both and string
          Object[] data=getUserinfo();
          System.out.println("Id "+ data[0]);
          System.out.println("Name "+ data[1]);
}
// 1.void method - just print 
     static void greet() {
System.out.println("Hello ,Welcome to java ");
     }
//2. return int
static int add(int num1,int num2)
{
    int sum= num1+num2;
    return sum;
}
//3. return string
static String getMessage(String name)
{
    return "Hi My name is " + name +" i am Javadeveloper";
}
//4. return  int and string  using object[] or Array
static Object[] getUserinfo()
{
    int id =101;
    String name ="Hellow";
    return new Object[] {id,name};
}
}
<u> Important Return Type Scenarios</u>
int return 5 + 3;   Return a number
String  return "Hello"; Return a message or text
boolean return a > b;   Return true/false
char[]  return name.toCharArray();  Return letters from a string
Array   return new int[]{1,2,3};    Return multiple numbers
Object  return new Person(...); Return class object
void    System.out.println("Hi");   Just perform action, no return
// method ovlerloading and overriding we will see Java Oops concept
<u>Method&Block Scope:-</u>
public class MethodandBlock_Scope_Example {
public static void main(String[] args) {
//System.out.println(x);
        int a =100;
        System.out.println(a);
        //method Scope: x is visible any where inside main method
        //Anywhere in the method
        int x =100;
        System.out.println("x in method:"+x);
    if(x>50)
    {
        //Block Scope: y is only visible inside this if block
        //only inside the block
        int y =200;
        System.out.println("Y in if block: "+y);
    }
    // try to access y outside the block
//  System.out.println("y is outside if block: "+y); //error not visible out of block
    }
}
<u>Java Recursion:-</u>
package java_Method;
// Factorial Using Recursion 
public class Recursion_Example {
int fact(int n)
{
    int result;
    if (n==1)
        return 1;
        result =fact(n-1) * n;
        /*fact(3-1) *3 -> fact (2) * 3  becomes -> (fact(1) *2)*3)
         * fact(4-1) *4 -> fact (3) * 3  
         * 
         * 
         * 
         * 
         */
        return result ;
}
public static void main(String[] args) {
    Recursion_Example obj1 = new Recursion_Example();
    System.out.println("Factorial of 3 is "+ obj1.fact(3));
    System.out.println("Factorial of 4 is "+ obj1.fact(4));
    System.out.println("Factorial of 5 is "+ obj1.fact(5));
- fact(5) = 5 x 4 x 3 x 2 x 1 =120
 - fact(1) = 1
 - fact(2) =1*2 =3
 - fact(3) =2*3 =6
 - fact(4) =6*4 = 24
 - fact(5) =24*5 =120
 - ------------------
 - fact(4) = 4 × 3 × 2 × 1 = 24
 - fact(1) =1
 - fact(2) =1*2 =3
 - fact(3) =2*3 =6
 - fact(4) =6*4 =24
 - fact(4) =24
 - ------------------
 - fact(3) = 3 × 2 × 1 = 6
 - fact(1) =1
 - fact(2) =1*2 =2
 - fact(3) =2*3 =6
 - ------------
 - 
*
}
 
}
// Sum of Natural Numbers Using Recursion
public class RecursionExample1 {
public static void main(String[] args) {
    int result = sum(10);
    System.out.println(result);
}
public static int sum(int k)
{
    if(k>0)
    {
        return k+ sum(k-1);
    }
    else
    {
        return 0;
    }
}
}
<u>Feature of Static Method:-</u>
- A static Method  in java manage to the class, not with object (or) instance.
- It can be accessed by all instance  of in  the class, but it does not relay on specific instance.
- static method can accessed directly  static variable without need to create object ,you can access directly. but can not  access non-static member  directly you need to create to object. 
- you can call static method directly another static method and non-static method.
<u>Features of Non-static Method:-</u>
-  In an instance method, you can access both instance and static members (field(use) and methods(calling) directly, without creating an object.
-static variable can not declare to instance and non-static method is useless , you can use only class level not inside of methods. 
Types of instance Method:-
1.Accessor Method (Getters)
Used to read/access the value of a private instance variable, start with the  get.
public class Person {
private String name;  /private variable
//Accessor method (getter)
public String getName()
{
return name;
}
2.Mutator methods (Setters)
used to update/modify  the value of private instance variable.Also supports encapsulation.start with set.
public class person
private String name;
//Mutator method (setter)
public void setName(String name)
{
this.name =name;
}
{
this.name = name;
}
    
Top comments (0)