में एक विधि को कैसे कॉल करें, जावा में उसी पैकेज का एक और वर्ग? मुझे पता है कि किसी ऑब्जेक्ट का उपयोग करके हम एक अलग वर्ग से एक विधि कॉल कर सकते हैं। क्या विभिन्न वर्ग की विधि को कॉल करने का कोई अन्य तरीका है?जावा में कोई विधि कैसे कॉल करें?
उत्तर
यदि यह एक स्थिर विधि है, तो आप किसी ऑब्जेक्ट के स्थान पर कक्षा का नाम उपयोग करके इसे कॉल कर सकते हैं।
यदि आप विधि को स्थिर के रूप में परिभाषित करते हैं तो आप कक्षा को तुरंत चालू किए बिना इसका उपयोग कर सकते हैं, लेकिन फिर आपके पास उपयोग के लिए ऑब्जेक्ट चर उपलब्ध नहीं हैं।
public class Foo {
public static String Bar() {
return "bla";
}
}
उस स्थिति में आप इसे Foo.Bar()
से कॉल कर सकते हैं।
तरीके ऑब्जेक्ट विधियां या कक्षा विधियों हैं।
ऑब्जेक्ट विधियां: यह किसी ऑब्जेक्ट पर लागू होता है।
instance.method(args...);
कक्षा तरीके:: यह एक वर्ग के ऊपर लागू होता है आप एक उदाहरण का उपयोग करना होगा। इसका कोई अंतर्निहित उदाहरण नहीं है। आपको कक्षा का उपयोग करना होगा। यह प्रक्रियात्मक प्रोग्रामिंग की तरह है।
ClassWithStaticMethod.method(args...);
प्रतिबिंब
प्रतिबिंब आप प्रोग्राम तरीकों का उपयोग करने के लिए एक एपीआई है के साथ, वे वस्तु या वर्ग के तरीकों हो।
उदाहरण तरीके: methodRef.invoke(instance, args...);
कक्षा तरीके: methodRef.invoke(null, args...);
आप एक स्थिर विधि बना सकते हैं या निर्माता में फ़ंक्शन को कॉल अपने वर्ग के एक सदस्य के रूप में अन्य वर्ग उपयोग कर सकते हैं।
public class aClass {
private SomeOtherClass oc;
public class aClass(SomeOtherClass otherClass) {
oc = otherClass;
}
public callOtherClassMethod() {
oc.otherClassMethod();
}
}
कक्षा बी का एक उदाहरण बनाएँ:
B b=new B();
b.method();
या कक्षा बी में एक स्थिर विधि को परिभाषित:
class B
{
static void staticMethod();
}
और इसे इस तरह कहते हैं:
B.staticMethod();
इसे इस प्रारूप में करें:
classmehodisin.methodname();
उदाहरण के लिए:
MyClass1.clearscreen();
मुझे आशा है कि इस helped.` नोट: विधि स्थिर होना चाहिए।
फ्रेड Swartz (fredosaurus) नोट्स से:
तरीकों में से दो प्रकार के होते हैं।
उदाहरण तरीकों एक वस्तु के साथ जुड़े और उस वस्तु की उदाहरण चर का उपयोग कर रहे हैं। यह डिफ़ॉल्ट है।
स्टेटिक तरीकों क्लास में उन्हें परिभाषित कर रहे हैं की किसी भी वस्तु का कोई उदाहरण चर का उपयोग करें। आप स्थिर होने के लिए एक विधि को परिभाषित हैं, तो आप संग्राहक द्वारा अशिष्ट संदेश दिया जाएगा अगर आप किसी भी उदाहरण तक पहुँचने का प्रयास चर। आप स्थैतिक चर का उपयोग कर सकते हैं, लेकिन स्थिरांक को छोड़कर, यह असामान्य है। स्टेटिक विधियां आमतौर पर पैरामीटर से वे सभी डेटा लेती हैं और चर के संदर्भ के बिना उन पैरामीटर से कुछ गणना करती हैं। यह उन तरीकों से विशिष्ट है जो किसी प्रकार की सामान्य गणना करते हैं। इसका एक अच्छा उदाहरण पूर्वनिर्धारित
Math
कक्षा में कई उपयोगिता विधियां हैं।
एक स्थिर कॉल
योग्यता परिभाषित वर्ग बाहर से, एक उदाहरण विधि, जैसे, inputTF.setText("");
क्लास नाम के साथ इसे उपसर्ग करके एक स्थिर विधि कहा जाता है, उदाहरण के लिए, Math.max(i,j);
। उत्सुकता से, यह किसी ऑब्जेक्ट के साथ भी योग्यता प्राप्त की जा सकती है, जिसे अनदेखा कर दिया जाएगा, लेकिन ऑब्जेक्ट की कक्षा का उपयोग किया जाएगा।
class MyUtils {
. . .
//================================================= mean
public static double mean(int[] p) {
int sum = 0; // sum of all the elements
for (int i=0; i<p.length; i++) {
sum += p[i];
}
return ((double)sum)/p.length;
}//endmethod mean
. . .
}
केवल डेटा इस विधि का उपयोग करता है या परिवर्तन मानकों (या निश्चित रूप से स्थानीय चर) से है:
उदाहरण
यहाँ एक ठेठ स्थिर तरीका है।
क्यों ऊपर mean()
विधि बस के रूप में अच्छी तरह से करता है, तो यह स्थिर घोषित नहीं किया गया था, जब तक कि यह एक ही कक्षा के भीतर से बुलाया गया था काम करेगा एक विधि static
घोषणा करते हैं। यदि कक्षा के बाहर से बुलाया जाता है और इसे स्थैतिक घोषित नहीं किया गया था, तो उसे किसी वस्तु के साथ योग्य (बेकार) होना होगा। यहां तक कि जब कक्षा के भीतर उपयोग किया जाता है, तब भी एक विधि को यथासंभव स्थैतिक रूप से परिभाषित करने के अच्छे कारण होते हैं।
- दस्तावेज़ीकरण। कोई भी व्यक्ति जो एक विधि को स्थिर मानता है उसे पता चलेगा कि इसे कैसे कॉल करें (नीचे देखें)। इसी प्रकार, कोड को देखने वाले किसी भी प्रोग्रामर को पता चलेगा कि एक स्थिर विधि इंस्टेंस चर के साथ बातचीत नहीं कर सकती है, जो पढ़ने और डिबगिंग को आसान बनाता है।
- क्षमता। एक कंपाइलर आम तौर पर थोड़ा अधिक कुशल कोड उत्पन्न करेगा क्योंकि विधि में कोई अंतर्निहित ऑब्जेक्ट पैरामीटर पारित नहीं होना चाहिए।
कॉलिंग स्थिर तरीकों
वहाँ दो मामले हैं।
एक ही कक्षा
के भीतर से कहा जाता है बस स्थिर विधि नाम लिखें। उदाहरण के लिए:
// Called from inside the MyUtils class
double avgAtt = mean(attendance);
वर्ग
तो एक विधि (स्थिर या उदाहरण) अन्य वर्ग से कहा जाता है बाहर से बुलाया, कुछ वर्ग निर्दिष्ट करने के लिए विधि नाम से पहले दिया जाना चाहिए जहां विधि है परिभाषित। उदाहरण के लिए, यह ऑब्जेक्ट है कि विधि का उपयोग होगा। स्थिर तरीकों के लिए, कक्षा का नाम निर्दिष्ट किया जाना चाहिए। उदाहरण के लिए:
// Called from outside the MyUtils class.
double avgAtt = MyUtils.mean(attendance);
एक वस्तु से पहले निर्दिष्ट है, तो वस्तु मूल्य नजरअंदाज कर दिया जाएगा और वस्तु की कक्षा इस्तेमाल किया जाएगा।
एक्सेस करना स्थैतिक चर
हालांकि एक static
विधि उदाहरण चर का उपयोग नहीं कर सकते हैं, यह static
चर पहुँच सकते हैं। स्थैतिक चर का एक सामान्य उपयोग "स्थिरांक" को परिभाषित करना है। जावा लाइब्रेरी के उदाहरण Math.PI
या Color.RED
हैं। वे कक्षा के नाम से योग्य हैं, इसलिए आप जानते हैं कि वे static
हैं। कोई भी विधि, static
या नहीं, static
चर का उपयोग कर सकते हैं। इंस्टेंस वैरिएबल को केवल इंस्टेंस विधियों द्वारा एक्सेस किया जा सकता है।
वैकल्पिक कॉल
क्या एक छोटे से अजीब है, और अनुशंसित नहीं, कि एक वर्ग की एक वस्तु स्थिर तरीकों का उपयोग करने में वर्ग के नाम के स्थान पर इस्तेमाल किया जा सकता है। यह बुरा है क्योंकि यह इंप्रेशन बनाता है कि ऑब्जेक्ट में कुछ इंस्टेंस चर का उपयोग किया जाता है, लेकिन ऐसा नहीं है।
विधि बुला
public class a
{
void sum(int i,int k)
{
System.out.println("THe sum of the number="+(i+k));
}
}
class b
{
public static void main(String[] args)
{
a vc=new a();
vc.sum(10 , 20);
}
}
कक्षा का एक उदाहरण घोषित करके, उदाहरण में 'vc' नाम दिया गया है और विधि को कॉल करना है उदाहरण – bradbury9
- 1. किसी सेवा से गतिविधि में कोई विधि कैसे कॉल करें
- 2. जावा 7 डायमंड ऑपरेशन विधि कॉल में
- 3. क्यूइंग विधि कॉल - कोई विचार कैसे?
- 4. जावा - वस्तु राज्य विधि कॉल
- 5. स्टोरीबोर्ड समाप्त होने के बाद कोई विधि कैसे कॉल करें?
- 6. जावा ग्रैंड माता-पिता की विधि कैसे कॉल करें?
- 7. जावा क्लास से पाइथन विधि कैसे कॉल करें?
- 8. विधि कॉल जावा में प्रदर्शन को कैसे प्रभावित करता है?
- 9. जावा में एसओएपी कॉल कैसे करें
- 10. जावा से सी ++ कैसे कॉल करें?
- 11. सी # में विशिष्ट समय पर, विधि को कैसे कॉल करें?
- 12. जावा में, मैं व्युत्पन्न वर्ग में ओवरराइडिंग विधि से बेस क्लास की विधि कैसे कॉल करूं?
- 13. jQuery $। नियंत्रक में विधि को कॉल करें
- 14. क्या ऐसी कोई विधि कॉल है "getBackgroundColor"?
- 15. आप जावा से स्कैला सिंगलटन विधि कैसे कॉल करते हैं?
- 16. जावा में sprintf के समान कोई विधि?
- 17. एक्सेल वीबीए में मॉड्यूल से इस वर्कबुक में कोई विधि कैसे कॉल करें?
- 18. जावा कोई नाम स्थिर विधि
- 19. स्प्रिंग लेनदेन प्रबंधन में कस्टम रोलबैक विधि कैसे कॉल करें?
- 20. विधि कॉल
- 21. सी ++ एप्लिकेशन में जावा विधि का उपयोग कैसे करें
- 22. जैस्पर रीपॉर्ट्स: रिपोर्ट टेम्पलेट में जावा बीन विधि कैसे कॉल करें?
- 23. जावा में एक बुलियन विधि कैसे वापस करें?
- 24. टर्मिनल के साथ जार फ़ाइल में विधि कैसे कॉल करें?
- 25. कंसोल में रेल 3 मॉडल विधि को कैसे कॉल करें
- 26. उल्का Meteor.methods() में परिभाषित विधि को कैसे कॉल करें?
- 27. जावा विधि के साथ कास्टिंग कॉल
- 28. कॉल विधि
- 29. विधि कॉल
- 30. मैं जावास्क्रिप्ट से जावा इंस्टेंस की विधि कैसे कॉल करूं?
संपादित करें द्वारा: लिंक अब मान्य नहीं है - करने के लिए ओरेकल जावा ट्यूटोरियल लिंक बदल दिया है। [जावा स्टेटिक तरीके] (http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) – Yeonho