Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Table of contents
1.
Introduction
2.
What is Method Signature in Java
3.
Syntax of Method Signature
4.
Example of Method Signature
5.
Need of Java Method Signature
6.
Example of Method Overloading
6.1.
Java
7.
Example Type 1: Java Method Signature
7.1.
Without return type and no Parameters
7.2.
Java
7.3.
Without Return Type and with Parameter
7.4.
Java
7.5.
With return type and no Parameter
7.6.
Java
7.7.
With return type and with Parameter
7.8.
Java
8.
Example Type 2: Class with Two Methods with the Same Signature
8.1.
Java
9.
Frequently Asked Questions
9.1.
What is the difference between signature and parameter in Java?
9.2.
Can method signature be overloaded in Java?
9.3.
How do you change the signature of a method in Java?
9.4.
Can two methods in Java have the same signature?
9.5.
Can we change the method signature in Java?
10.
Conclusion
Last Updated: Mar 27, 2024
Medium

Method Signature in Java

Author Nilesh Kumar
0 upvote

Introduction

Hey, Ninjas! Have you ever come across a situation where you need to call a method, but you're not sure what arguments to pass or what the method returns? This is where the method signature comes into play. 

In Java, a method's signature is the programmer-defined structure consisting of its name and parameter list. Having two methods with identical signatures in a class leads to a compilation error. Therefore, uniqueness in method signatures is crucial to avoid conflicts. 

Java Method Signature

This blog post will dive deeper into the concept of method signature in Java, its syntax, and its significance in Java programming.

What is Method Signature in Java

In Java, a method signature combines the method name and its parameter list. The method name is a unique identifier for a method, while the parameter list specifies the input to the method. The Java compiler uses the signature of a method to differentiate between methods with the same name but different parameter types or the number of parameters. The return type is not included in the method signature.

Get the tech career you deserve, faster!
Connect with our expert counsellors to understand how to hack your way to success
User rating 4.7/5
1:1 doubt support
95% placement record
Akash Pal
Senior Software Engineer
326% Hike After Job Bootcamp
Himanshu Gusain
Programmer Analyst
32 LPA After Job Bootcamp
After Job
Bootcamp

Syntax of Method Signature

The syntax for a Java method signature is as follows:

return_type method_name(parameter_list)

 

Here, the return_type is the data type of the value returned by the method. If the method does not return anything, the return type is specified as void. The method_name is a unique identifier for the method. The parameter_list specifies the type and name of each parameter separated by commas. An empty parameter list is used if a method does not take any parameters.

Example of Method Signature

Consider the following method signature:

public int add(int num1, int num2)

 

Here, the public keyword specifies the access modifier for the method, int is the return type, add is the method name, and (int num1, int num2) is the parameter list, which specifies that the method takes two integer parameters named num1 and num2.

Need of Java Method Signature

The Java method signature plays a crucial role in Java programming for the following reasons:

Need of method signature
  • Overloading
    Java allows multiple methods with the same name but different parameter types or a number of parameters. The method signature is used to differentiate between these methods during compilation. Using method overloading, developers can provide multiple ways of invoking a method, making the code more flexible and easier to use.
     
  • Method invocation 
    When a method is called, the method signature is used by the Java Virtual Machine (JVM) to locate the correct method to execute. Without the method signature, the JVM would not be able to determine which method to invoke, resulting in a compilation error.
     
  • Polymorphism
    Java supports polymorphism, which allows a variable to hold objects of different types. Java Method signature plays a critical role in polymorphism as it enables the JVM to determine which method to execute at runtime based on the object's actual type.
     
  • Code maintenance
    As the codebase grows, the number of methods also increases. Using the Java method signature to differentiate between methods with the same name but different parameter types makes the code more manageable and easier to maintain.

Example of Method Overloading

An example of method overloading in Java using different method signatures:

  • Java

Java

public class CodingNinjas{
public int add(int num1, int num2) {
return num1 + num2;
}

// method to add three integers
public int add(int num1, int num2, int num3) {
return num1 + num2 + num3;
}

// method to add two double values
public double add(double num1, double num2) {
return num1 + num2;
}

public static void main(String args[]) {
// Creating an object of the class
CodingNinjas ob = new CodingNinjas();
// Calling the first method
int a=ob.add(2, 3);
System.out.println(a);
// Calling the second method.
int b=ob.add(4, 8, 9);
System.out.println(b);
// Calling the third method.
double c=ob.add(1.4, 2.4);
System.out.println(c);
}
}

Output

output

In the above example, the MathUtils class contains three methods with the same name add, but with different Java method signatures. The first method, add(int num1, int num2) adds two integers, and the second method add(int num1, int num2, int num3), adds three integers. And the third method add(double num1, double num2) adds two double values.

Using different method signatures, the Java compiler can differentiate between these methods during compilation and execute the appropriate method based on the argument type passed at the time of method invocation.

Example Type 1: Java Method Signature

In Java, there are four forms of method signatures, which are discussed below.

Without return type and no Parameters

This method takes no parameter and the return type is void. 

  • Java

Java

public class CodingNinjas{

// method signature for a method that prints "Hello, World!"
public void printHello() {
System.out.println("Hello, World!");
}

// main method to run the program
public static void main(String[] args) {
CodingNinjas hello = new CodingNinjas();
hello.printHello();
}
}

Output

output

In this example, we have a class CodingNinjas with a method signature public void printHello(). This method simply prints "Hello, World!" to the console.

The main method is the entry point of the program and is where the printHello method is invoked. The main method creates a new instance of the CodingNinjas class and calls the printHello method on it.

Without Return Type and with Parameter

This method takes a parameter and with return type as void.

  • Java

Java

public class CodingNinjas{
public static void myMethod(int num) {
System.out.println("The number is: " + num);
}

public static void main(String[] args) {
CodingNinjas example = new CodingNinjas();
int number = 42;
example.myMethod(number);
}
}

Output

output

In this example, the method myMethod takes an int parameter called num, and it simply prints out the value of that parameter to the console using System.out.println(). The main function creates an int variable called number with the value 42, and then calls myMethod with number as its argument.

With return type and no Parameter

This method will take no Parameter and have return type. 

  • Java

Java

public class CodingNinjas {

public String returnHelloWorld() {
return "Hello World!";
}

public static void main(String[] args) {
CodingNinjas example = new CodingNinjas();
String result = example.returnHelloWorld();
System.out.println(result);
}
}

Output

output

In this example, the returnHelloWorld() method is called by creating an instance of the CodingNinjas and then calling the method on that instance. The returned String is then stored in a variable called result and printed to the console using System.out.println(). The main function is marked as public and static and takes an array of String arguments (args) as a parameter.

With return type and with Parameter

This method will take parameters and have a return type.

  • Java

Java

public class CodingNinjas {

// Method signature with return type and parameters
public static int multiply(int a, int b) {
int result = a * b;
return result;
}

// Main function to call the method and print the result
public static void main(String[] args) {
int num1 = 5;
int num2 = 10;
CodingNinjas example = new CodingNinjas();
int product = example.multiply(num1, num2);
System.out.println("The product of " + num1 + " and " + num2 + " is " + product);
}
}

Output

output

In this example, we have a method named multiply that takes two int parameters and returns their product as an int. The main function calls this method with the values 5 and 10, stores the result in a variable named product, and then prints out a message showing the original values and the computed product.

Example Type 2: Class with Two Methods with the Same Signature

In Java, it is possible to have methods with the same signature. It is generally not considered good practice because it can lead to confusion and unexpected behavior. It is usually better to use different method names or parameter types to distinguish between methods.

  • Java

Java

public class CodingNinjas {
public void add(int x, int y) {
System.out.println(x + y);
}

public int add(int x, int y) {
return x + y;
}

public static void main(String[] args) {
CodingNinjas myClass = new CodingNinjas();
myClass.add(1, 2);
}
}

Output

error

In this example, class CodingNinjas has two add methods with the same signature. The first method takes two int parameters and prints the result, while the second method takes two int parameters and returns an int. In the main method, we create an instance of class CodingNinjas and call both add methods with different arguments. Even if the return types differ, two methods with the same signatures will throw a compile-time error.

Frequently Asked Questions

What is the difference between signature and parameter in Java?

The signature of a method or constructor in Java consists of its name and parameter types. It uniquely identifies the method. On the other hand, parameters are the variables declared within the method or constructor that receive values passed to them.

Can method signature be overloaded in Java?

Yes, method signature can be overloaded in Java as long as the number or type of parameters is different.

How do you change the signature of a method in Java?

To change a method's signature in Java, locate the method, modify its name, return type, and parameters, update its implementation and calls, test for errors, and update documentation.

Can two methods in Java have the same signature?

No, two methods in Java cannot have the same signature, which includes the method name and its parameters. However, they can have the same name with different parameters or vice versa.

Can we change the method signature in Java?

Yes, in Java, you can change a method's signature by altering its parameter list or return type. This process, known as method overloading, allows multiple methods with the same name but different parameters to coexist within a class.

Conclusion

In this blog, we have discussed method signature in Java along with the need for method signature, examples, and code. We hope the blog has helped you enhance your knowledge regarding the Java method signature. 

If you wish to learn more about Java, you can refer to blogs on 

Refer to our guided paths on Coding Ninjas Studio to learn more about DSA, Competitive Programming, JavaScript, System Design, etc. To learn more about Data Structures and Algorithms, you can enroll in our course on DSA in Java.

Happy Learning!

Previous article
HashCode() Method in Java
Next article
Java Program to Check Leap Year
Live masterclass