हम इस ट्यूटोरियल में सीखने वाले है कि जावा मेथड्स (Java Methods in Hindi) और हम इसे कैसे इस्तमाल कर सकते हैं? एक जावा विधि कथनों का एक संग्रह है जो एक ऑपरेशन करने के लिए एक साथ grouped होते हैं। जब आप System.out.println() विधि को कॉल करते हैं, उदाहरण के लिए, कंसोल पर एक संदेश प्रदर्शित करने के लिए सिस्टम वास्तव में कई कथनों को निष्पादित करता है।
Table of Contents
अब आप सीखेंगे कि रिटर्न वैल्यू के साथ या उसके बिना अपने तरीके कैसे बनाएं, पैरामीटर के साथ या बिना किसी विधि को कैसे लागू करें और प्रोग्राम डिजाइन में विधि abstraction लागू करें।
बनाने की विधि (Creating Java Methods in Hindi)
एक विधि के सिंटैक्स की व्याख्या करने के लिए निम्नलिखित उदाहरण पर विचार करते हुए –
Syntax
public static int methodName(int a, int b) {
// body
}
यहाँ,
- public static − modifier
- int − return type
- methodName − name of the method
- a, b − formal parameters
- int a, int b − list of parameters
मेथड डेफिनिशन में मेथड हेडर और मेथड बॉडी होती है। इसे निम्नलिखित सिंटैक्स में दिखाया गया है –
Syntax
modifier returnType nameOfMethod (Parameter List) {
// method body
}
ऊपर दिखाए गए सिंटैक्स में शामिल हैं –
- modifier − यह विधि के एक्सेस प्रकार को परिभाषित करता है और यह उपयोग करने के लिए वैकल्पिक है।
- returnType – विधि एक मान वापस कर सकती है।
- nameOfMethod – यह विधि का नाम है। विधि हस्ताक्षर में विधि का नाम और पैरामीटर List शामिल है।
- Parameter List − पैरामीटर की List, यह एक विधि के पैरामीटर का प्रकार, क्रम और संख्या है। ये वैकल्पिक हैं, विधि में शून्य पैरामीटर हो सकते हैं।
- method body − मेथड बॉडी परिभाषित करती है कि मेथड स्टेटमेंट्स के साथ क्या करती है।
उदाहरण
यहाँ उपरोक्त परिभाषित विधि का स्रोत कोड है जिसे min() कहा जाता है। यह विधि दो पैरामीटर num1 और num2 लेती है और दोनों के बीच अधिकतम रिटर्न देती है –
/** the snippet returns the minimum between two numbers */
public static int minFunction(int n1, int n2) {
int min;
if (n1 > n2)
min = n2;
else
min = n1;
return min;
}
कॉलिंग विधि (Method Calling in Hindi)
एक विधि का उपयोग करने के लिए, इसे बुलाया जाना चाहिए। ऐसे दो तरीके हैं जिनमें एक विधि को कहा जाता है यानी, विधि एक मान लौटाती है या कुछ भी नहीं लौटाती है (कोई वापसी मूल्य नहीं)।
मेथड कॉलिंग की प्रक्रिया सरल है। जब कोई प्रोग्राम किसी विधि का आह्वान करता है, तो प्रोग्राम नियंत्रण कॉल की गई विधि में स्थानांतरित हो जाता है। यह तथाकथित विधि कॉल करने वाले को दो स्थितियों में नियंत्रण लौटाती है, जब –
- रिटर्न स्टेटमेंट निष्पादित किया गया है।
- यह मेथड एंडिंग क्लोजिंग ब्रेस तक पहुंचता है।
शून्य लौटने वाली विधियों को एक कथन के लिए कॉल माना जाता है। एक उदाहरण पर विचार करते हैं –
System.out.println(“This is tutorialspoint.com!”);
मेथड रिटर्निंग वैल्यू को निम्न उदाहरण से समझा जा सकता है –
int result = sum(6, 9);
किसी विधि को कैसे परिभाषित किया जाए और इसे कैसे कॉल किया जाए, यह प्रदर्शित करने के लिए उदाहरण निम्नलिखित है
Example
public class ExampleMinNumber {
public static void main(String[] args) {
int a = 11;
int b = 6;
int c = minFunction(a, b);
System.out.println(“Minimum Value = ” + c);
}
/** returns the minimum of two numbers */
public static int minFunction(int n1, int n2) {
int min;
if (n1 > n2)
min = n2;
else
min = n1;
return min;
}
}
यह निम्नलिखित परिणाम देगा –
Output
Minimum value = 6
The void Keyword
The void Keyword हमें ऐसी विधियाँ बनाने की अनुमति देता है जो कोई मान नहीं लौटाती हैं। यहाँ, निम्नलिखित उदाहरण में हम एक शून्य विधि पद्धति RankPoints पर विचार कर रहे हैं। यह विधि एक शून्य विधि है, जो कोई मान नहीं लौटाती है। कॉल टू ए वॉइस मेथड एक स्टेटमेंट यानी मेथड रैंकपॉइंट्स (255.7); होना चाहिए। यह एक Java Statement है जो अर्धविराम के साथ समाप्त होता है जैसा कि निम्नलिखित उदाहरण में दिखाया गया है।
Example
public class ExampleVoid {
public static void main(String[] args) {
methodRankPoints(255.7);
}
public static void methodRankPoints(double points) {
if (points >= 202.5) {
System.out.println(“Rank:A1”);
}else if (points >= 122.4) {
System.out.println(“Rank:A2”);
}else {
System.out.println(“Rank:A3”);
}
}
}
यह निम्नलिखित परिणाम देगा –
Output
Rank:A1
मान द्वारा पैरामीटर पास करना (Passing Parameters by Value)
कॉलिंग प्रक्रिया के तहत काम करते समय Argument को पास करना होता है। ये विधि विनिर्देश में उनके संबंधित पैरामीटर के समान क्रम में होने चाहिए। पैरामीटर मान या संदर्भ द्वारा पारित किए जा सकते हैं।
मान द्वारा पैरामीटर पास करने का अर्थ है पैरामीटर के साथ एक विधि को कॉल करना। इसके माध्यम से Argument मान को पैरामीटर में पास किया जाता है।
उदाहरण
निम्न प्रोग्राम मान द्वारा पैरामीटर पास करने का एक उदाहरण दिखाता है। विधि मंगलाचरण के बाद भी Argument का मान समान रहता है।
public class swappingExample {
public static void main(String[] args) {
int a = 30;
int b = 45;
System.out.println(“Before swapping, a = ” + a + ” and b = ” + b);
// Invoke the swap method
swapFunction(a, b);
System.out.println(“\n**Now, Before and After swapping values will be same here**:”);
System.out.println(“After swapping, a = ” + a + ” and b is ” + b);
}
public static void swapFunction(int a, int b) {
System.out.println(“Before swapping(Inside), a = ” + a + ” b = ” + b);
// Swap n1 with n2
int c = a;
a = b;
b = c;
System.out.println(“After swapping(Inside), a = ” + a + ” b = ” + b);
}
}
यह निम्नलिखित परिणाम देगा –
Output
Before swapping, a = 30 and b = 45
Before swapping(Inside), a = 30 b = 45
After swapping(Inside), a = 45 b = 30
**Now, Before and After swapping values will be same here**:
After swapping, a = 30 and b is 45
विधि ओवरलोडिंग (Method Overloading in Hindi)
जब किसी वर्ग में एक ही नाम से दो या दो से अधिक विधियाँ होती हैं, लेकिन अलग-अलग पैरामीटर होते हैं, तो इसे मेथड ओवरलोडिंग के रूप में जाना जाता है। यह ओवरराइडिंग से अलग है। ओवरराइडिंग में, एक विधि का एक ही विधि नाम, प्रकार, logical की संख्या आदि होती है।
पूर्णांक प्रकार की न्यूनतम संख्या ज्ञात करने के लिए पहले Discussion किए गए उदाहरण पर विचार करें। यदि, मान लें कि हम न्यूनतम संख्या में दोहरे प्रकार का पता लगाना चाहते हैं। फिर ओवरलोडिंग की अवधारणा को एक ही नाम के साथ दो या दो से अधिक तरीके बनाने के लिए पेश किया जाएगा, लेकिन अलग-अलग पैरामीटर।
निम्नलिखित उदाहरण उसी की व्याख्या करता है –
Example
public class ExampleOverloading {
public static void main(String[] args) {
int a = 11;
int b = 6;
double c = 7.3;
double d = 9.4;
int result1 = minFunction(a, b);
// same function name with different parameters
double result2 = minFunction(c, d);
System.out.println(“Minimum Value = ” + result1);
System.out.println(“Minimum Value = ” + result2);
}
// for integer
public static int minFunction(int n1, int n2) {
int min;
if (n1 > n2)
min = n2;
else
min = n1;
return min;
}
// for double
public static double minFunction(double n1, double n2) {
double min;
if (n1 > n2)
min = n2;
else
min = n1;
return min;
}
}
यह निम्नलिखित परिणाम देगा –
Output
Minimum Value = 6
Minimum Value = 7.3
ओवरलोडिंग के तरीके प्रोग्राम को पठनीय बनाते हैं। यहाँ, एक ही नाम से दो विधियाँ दी गई हैं लेकिन अलग-अलग logical के साथ। पूर्णांक और दोहरे प्रकार से न्यूनतम संख्या परिणाम है।
कमांड-लाइन Argument का उपयोग करना (Using Command-Line Arguments)
जब आप इसे चलाते हैं तो कभी-कभी आप कुछ जानकारी को किसी प्रोग्राम में पास करना चाहेंगे। यह कमांड-लाइन Argument को मुख्य () में पास करके पूरा किया जाता है।
एक कमांड-लाइन Argument वह सूचना है जो सीधे कमांड लाइन पर प्रोग्राम के नाम का अनुसरण करती है जब इसे निष्पादित किया जाता है। जावा प्रोग्राम के अंदर कमांड-लाइन आर्ग्युमेंट्स को एक्सेस करना काफी आसान है। वे मुख्य () को पारित स्ट्रिंग सरणी में स्ट्रिंग्स के रूप में संग्रहीत हैं।
उदाहरण
निम्न प्रोग्राम सभी कमांड-लाइन Argument को प्रदर्शित करता है जिसे इसे – के साथ कहा जाता है
public class CommandLine {
public static void main(String args[]) {
for(int i = 0; i<args.length; i++) {
System.out.println(“args[” + i + “]: ” + args[i]);
}
}
}
इस प्रोग्राम को क्रियान्वित करने का प्रयास करें जैसा कि यहाँ दिखाया गया है –
$java CommandLine this is a command line 200 -100
यह निम्नलिखित परिणाम देगा –
Output
args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100
कीवर्ड (The this keyword)
यह जावा में एक कीवर्ड है जिसे वर्तमान वर्ग की वस्तु के संदर्भ के रूप में प्रयोग किया जाता है, जिसमें एक उदाहरण विधि या कन्स्ट्रक्टर होता है। इसका उपयोग करके आप एक वर्ग के सदस्यों जैसे कि कंस्ट्रक्टर, चर और विधियों को संदर्भित कर सकते हैं।
नोट − इस कीवर्ड का उपयोग केवल इंस्टेंस मेथड्स या कंस्ट्रक्टर्स के भीतर किया जाता है
सामान्य तौर पर, यह कीवर्ड – के लिए प्रयोग किया जाता है
- उदाहरण चर को स्थानीय चर से अलग करें यदि उनके पास एक ही नाम है, एक निर्माता या एक विधि के भीतर।
class Student {
int age;
Student(int age) {
this.age = age;
}
}
- कक्षा में एक प्रकार के कन्स्ट्रक्टर (पैरामीटरकृत कन्स्ट्रक्टर या डिफ़ॉल्ट) को दूसरे से कॉल करें। इसे स्पष्ट कन्स्ट्रक्टर आमंत्रण के रूप में जाना जाता है।
class Student {
int age
Student() {
this(20);
}
Student(int age) {
this.age = age;
}
}
उदाहरण
यहाँ एक उदाहरण दिया गया है जो किसी वर्ग के सदस्यों तक पहुँचने के लिए इस कीवर्ड का उपयोग करता है। निम्नलिखित प्रोग्राम को एक फ़ाइल में नाम के साथ कॉपी और पेस्ट करें, This_Example.java।
public class This_Example {
// Instance variable num
int num = 10;
This_Example() {
System.out.println(“This is an example program on keyword this”);
}
This_Example(int num) {
// Invoking the default constructor
this();
// Assigning the local variable num to the instance variable num
this.num = num;
}
public void greet() {
System.out.println(“Hi Welcome to Tutorialspoint”);
}
public void print() {
// Local variable num
int num = 20;
// Printing the local variable
System.out.println(“value of local variable num is : “+num);
// Printing the instance variable
System.out.println(“value of instance variable num is : “+this.num);
// Invoking the greet method of a class
this.greet();
}
public static void main(String[] args) {
// Instantiating the class
This_Example obj1 = new This_Example();
// Invoking the print method
obj1.print();
// Passing a new value to the num variable through parametrized constructor
This_Example obj2 = new This_Example(30);
// Invoking the print method again
obj2.print();
}
}
यह निम्नलिखित परिणाम देगा –
Output
This is an example program on keyword this
value of local variable num is : 20
value of instance variable num is : 10
Hi Welcome to Tutorialspoint
This is an example program on keyword this
value of local variable num is : 20
value of instance variable num is : 30
Hi Welcome to Tutorialspoint
परिवर्तनीय Argument (var-args) (Variable Arguments(var-args))
JDK 1.5 आपको एक ही प्रकार के Argument की एक चर संख्या को एक विधि में पारित करने में सक्षम बनाता है। विधि में पैरामीटर निम्नानुसार घोषित किया गया है –
typeName… parameterName
विधि घोषणा में आप दीर्घवृत्त (…) के बाद के प्रकार को निर्दिष्ट करते हैं। एक विधि में केवल एक चर-लंबाई पैरामीटर निर्दिष्ट किया जा सकता है, और यह पैरामीटर अंतिम पैरामीटर होना चाहिए। किसी भी नियमित पैरामीटर को इससे पहले होना चाहिए।
Example
public class VarargsDemo {
public static void main(String args[]) {
// Call method with variable args
printMax(34, 3, 3, 2, 56.5);
printMax(new double[]{1, 2, 3});
}
public static void printMax( double… numbers) {
if (numbers.length == 0) {
System.out.println(“No argument passed”);
return;
}
double result = numbers[0];
for (int i = 1; i < numbers.length; i++)
if (numbers[i] > result)
result = numbers[i];
System.out.println(“The max value is ” + result);
}
}
यह निम्नलिखित परिणाम देगा –
Output
The max value is 56.5
The max value is 3.0
अंतिम रूप विधि (The finalize( ) Method)
एक विधि को परिभाषित करना संभव है जिसे कचरा संग्राहक द्वारा किसी वस्तु के अंतिम विनाश से ठीक पहले बुलाया जाएगा। इस विधि को The finalize( ) कहा जाता है, और इसका उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि कोई वस्तु साफ-सुथरी हो।
उदाहरण के लिए, आप यह सुनिश्चित करने के लिए The finalize( ) का उपयोग कर सकते हैं कि उस वस्तु के स्वामित्व वाली एक खुली फ़ाइल बंद है।
किसी वर्ग में फ़ाइनलाइज़र जोड़ने के लिए, आप बस फ़ाइनलाइज़ () विधि को परिभाषित करते हैं। जावा रनटाइम उस विधि को कॉल करता है जब भी वह उस वर्ग की किसी वस्तु को रीसायकल करने वाला होता है।
The finalize( ) Method के अंदर, आप उन कार्यों को निर्दिष्ट करेंगे जो किसी वस्तु के नष्ट होने से पहले किए जाने चाहिए।
The finalize( ) Method का यह सामान्य रूप है –
protected void finalize( ) {
// finalization code here
}
यहां संरक्षित कीवर्ड एक विनिर्देशक है जो अपनी कक्षा के बाहर परिभाषित कोड द्वारा अंतिम रूप देने () तक पहुंच को रोकता है।
इसका मतलब यह है कि आप यह नहीं जान सकते हैं कि The finalize( ) कब निष्पादित किया जाएगा या नहीं। उदाहरण के लिए, यदि आपका प्रोग्राम कचरा संग्रह होने से पहले समाप्त हो जाता है, तो finalize() निष्पादित नहीं होगा।
हम उम्मीद करते है कि आपको “जावा मेथड्स (Java Methods in Hindi)” से सम्बंधित जानकारी हिंदी में समझ में आयी होंगी यदि आपको बताई गई जानकारी अच्छी लगी हो तो अपने दोस्तों में ऐसे शेयर करे जिससे उनकी भी हेल्प हो सके धन्यवाद!