What is a Method?

A method is a block of code that performs a specific task. We can create a method once and call it whenever required.

Methods help us to reuse code and avoid repetition.

How to Create a Method?

Syntax:

accessModifier returnType methodName(parameters) { // Method body } 

Example:

public class Main { static void greet() { System.out.println("Hello World"); } public static void main(String[] args) { greet(); } } 

Types of Methods

1) Predefined Methods

Methods that are already available in Java libraries.

String name = "java"; System.out.println(name.toUpperCase()); System.out.println(name.length()); 

2) User-Defined Methods

Methods created by programmers to perform specific tasks.

static void display() { System.out.println("Learning Java"); } 

Parameters and Arguments

  • Parameters: Variables declared in the method definition.
  • Arguments: Actual values passed when calling the method.
static void add(int a, int b) { System.out.println(a + b); } add(10, 20); 

Here, a and b are parameters, whereas 10 and 20 are arguments.

Return Type

A return type specifies the type of value a method returns.

static int add(int a, int b) { return a + b; } 

Here, int is the return type, and the return keyword sends the result back to the calling method.

Void Method

When a method doesn't return any value, we use the void keyword.

static void display() { System.out.println("Hello Java"); } 

Static and Instance Methods

1) Static Method

A static method belongs to the class. We can call it without creating an object.

static void display() { System.out.println("Static Method"); } Main.display(); 

2) Instance Method

An instance method belongs to an object. We need to create an object to call it.

void display() { System.out.println("Instance Method"); } Main obj = new Main(); obj.display(); 

Method Overloading

Method overloading means creating multiple methods with the same name but different parameters.

static int add(int a, int b) { return a + b; } static int add(int a, int b, int c) { return a + b + c; } 

We can overload methods by changing the number, type or order of parameters.

Note: Changing only the return type is not method overloading.

Method Signature

A method signature consists of the method name and parameter types.

Example:

static int add(int a, int b) 

Method signature: add(int, int)

Varargs

Varargs (Variable Arguments) allows a method to accept multiple arguments.

We use three dots (...) to declare it.

static void display(int... numbers) { for (int n : numbers) { System.out.println(n); } } 

Recursion

Recursion is a process in which a method calls itself.

static int factorial(int n) { if (n == 1) return 1; return n * factorial(n - 1); } 

Here, the method calls itself until the base condition is reached.

Pass by Value

Java always follows pass by value. It means a method receives a copy of the value passed to it.

static void change(int number) { number = 100; } public static void main(String[] args) { int value = 50; change(value); System.out.println(value); } 

Output:

50 

Changing the copied value inside the method doesn't change the original variable.

Important Points

  • Methods help us reuse code.
  • void methods don't return values.
  • Static methods belong to classes.
  • Instance methods belong to objects.
  • Method overloading allows the same method name with different parameters.
  • Java always follows pass by value.
  • Recursion means a method calling itself.