Codegym यूनिवर्सिटी कोर्स के भाग के रूप में एक परामर्शदाता के साथ एक व्याख्यान स्निपेट। पूर्ण पाठ्यक्रम के लिए साइन अप करें।


"क्या आप पहले से ही यहाँ हैं, अमीगो? मुझे पता है कि आप पहले से ही बहुत सारे जावा कमांड सीख चुके हैं। आप लगभग मेरे स्तर तक पहुँच चुके हैं!"

"क्या यह सच है, डिएगो?"

"बिल्कुल नहीं, हा-हा। आपके पास अभी भी बहुत कुछ सीखना और करना है। फिर भी, आप पहले से ही काफी जटिल प्रोग्राम लिखने के लिए पर्याप्त जानते हैं। एक प्रोग्राम में कोड की 10, 20, 30 लाइनें एक बहुत बड़ा प्रोग्राम नहीं है, सही?"

"मुझे लगता है कि आप सही हैं। खासकर यदि आप अलग-अलग लाइनों पर घुंघराले ब्रेसिज़ लगाते हैं।"

"लेकिन 100+ लाइनों का एक कार्यक्रम, अब यह बहुत बड़ा है। यहां तक ​​कि हम रोबोटों को भी इस तरह के कोड को समझने में काफी मुश्किल होती है। आपको क्या लगता है, क्या ऐसा कुछ है जो आप प्रोग्राम लिखने और पढ़ने को आसान बनाने के लिए कर सकते हैं जिसमें बहुत सारे कोड हैं?

"मैं ईमानदारी से आशा करता हूँ!"

"आपकी उम्मीदें व्यर्थ नहीं हैं। कार्यक्रमों को सरल बनाना संभव है, और इसमें हमारी मदद करने के लिए तरीके यहां हैं। उन्हें कभी-कभी फ़ंक्शन कहा जाता है ।

"फ़ंक्शंस, तरीके... उह, वे क्या हैं?"

"इसे बहुत सरलता से कहें तो, एक विधि कमांड का एक समूह है जिसका एक अद्वितीय नाम है । दूसरे शब्दों में, हम बस कई कमांड को एक समूह में रखते हैं और इसे एक अद्वितीय नाम देते हैं। और वह यह है - बूम - हमारे पास एक विधि है। अधिकांश अक्सर, इन आदेशों को एक छोटे और विशिष्ट कार्य को हल करने के लिए कुछ औचित्य के अनुसार समूहीकृत किया जाता है। उदाहरण के लिए, 'एक फ़ाइल से मुद्रण लाइनों के लिए एक विधि'। या 'एक संख्या को एक घातांक तक बढ़ाने के लिए एक विधि'।

"तो, हम प्रोग्राम को विधियों में विभाजित करते हैं?"

"हाँ, और यह कोड को सरल करता है।

उदाहरण:

बिना विधि के विधि से
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

"बाएं कॉलम में कार्यक्रम में, हम एक ही कोड को तीन बार दोहराते हैं - हमने जानबूझकर एक बिंदु को चित्रित करने के लिए ऐसा किया। लेकिन दाईं ओर के कार्यक्रम में, हमने दोहराए गए कोड को एक अलग विधि में स्थानांतरित कर दिया और इसे एक अनूठा नाम दिया - printWiFi.

और स्थानांतरित कोड के बजाय, हम printWiFi()विधि को 3 बार कॉल करते हैं।

"जब दाईं ओर कॉलम में प्रोग्राम चलाया जाता है, तो हर बार printWiFi()विधि निष्पादित होती है, विधि के अंदर सभी आदेश printWiFi()निष्पादित होते हैं। हमने अभी एक नई कमांड (विधि) बनाई है, जिसमें कई कमांड को एक समूह में जोड़ा गया है।

"किसी भी कोड को अलग-अलग विधियों में विभाजित किया जा सकता है। यह चीजों को सरल बनाने के लिए किया जाता है: विचार यह है कि एक बड़ी विधि की तुलना में कई छोटी विधियों का होना बेहतर है।

"प्रोग्राम को विधियों में विभाजित करना एक अच्छा विचार है।

"जल्द ही आपको आश्चर्य होगा कि आप अपने तरीके बनाए बिना कैसे प्रोग्राम लिखते थे।"

"मैं सुनने के लिए तैयार हूं और विधियों को लिखने का प्रयास करता हूं! बस मुझे बताएं कि यह कैसे करना है।"

जावा में एक विधि की घोषणा

"हम सबसे सरल विधि की घोषणा कैसे कर सकते हैं? यहां बताया गया है:

public static void name()
{
  method body
}

nameविधि का अनूठा नाम कहां है और method bodyविधि बनाने वाले आदेशों का प्रतिनिधित्व करता है। शब्दों का अर्थ public, staticऔर voidबाद में चर्चा की जाएगी।

"एक विधि बनाने के बाद, हम इसे अपने अन्य तरीकों से कॉल कर सकते हैं। एक विधि कॉल इस तरह दिखती है:

name();

" nameजिस मेथड को हम कॉल करना चाहते हैं, उसका यूनिक नाम कहां है, यानी वह मेथड जिसके कमांड्स को हम मेथड कॉल पर पहुंचने पर निष्पादित करना चाहते हैं।

"जब प्रोग्राम मेथड कॉल पर पहुंचता है, तो यह केवल मेथड में कदम रखेगा, इसके सभी कमांड को निष्पादित करेगा, मूल मेथड पर वापस आएगा, और निष्पादन जारी रखेगा।

"और अब, अमीगो, उन आज्ञाओं को नई आँखों से देखो जो तुमने पहले ही सीख ली हैं। उदाहरण के लिए, ... क्या यह वास्तव में क्या है, इसके बारे में कुछ दिमाग में आता है?"System.out.println()

"क्या आप कह रहे हैं कि ये सभी आदेश केवल अन्य प्रोग्रामर द्वारा लिखे गए तरीके हैं?"

"सभी नहीं, लेकिन उनमें से कई। हाँ, बिल्कुल! दूसरों ने उन्हें हमारे जीवन को आसान बनाने के लिए लिखा था।"

"तो यह public static void main(String[] args)भी एक तरीका है ... अब यह और अधिक समझ में आता है!"

"बेशक, यह करता है! यह प्रोग्रामिंग है! यह पता चला है कि मुख्य विधि - कार्यक्रम के अल्फा और ओमेगा - में अन्य तरीकों से कॉल हो सकते हैं:

कोड टिप्पणी
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




हम print10TimesWiFi()विधि को कॉल करते हैं


हम print10TimesWiFiविधि की घोषणा करते हैं हम  विधि 10 को एक लूप में


कॉल करते हैं हम विधि की घोषणा करते हैं हम स्क्रीन पर " " प्रदर्शित करते हैंprintWiFi()


printWiFi

Wi-Fi

विधियों के बारे में तथ्य

"मैंने आपके लिए विधियों के बारे में कुछ उपयोगी तथ्य अलग रखे हैं। यहाँ, आनंद लें:

तथ्य 1। एक विधि हमेशा एक वर्ग का हिस्सा होती है।

एक विधि को केवल एक वर्ग में घोषित किया जा सकता है। एक विधि को दूसरी विधि के अंदर घोषित नहीं किया जा सकता है। एक वर्ग के बाहर एक विधि घोषित नहीं की जा सकती।

तथ्य 2। एक विधि के नाम का कोई पवित्र अर्थ नहीं है

इससे कोई फर्क नहीं पड़ता कि कौन सी विधियों को कहा जाता है - इससे कुछ भी प्रभावित नहीं होता है। मुख्य विधि अन्य सभी की तरह ही एक विधि है। यह सिर्फ इतना है कि यह नाम उस विधि के लिए चुना गया था जिससे जावा मशीन प्रोग्राम का निष्पादन शुरू करेगी। इसमें कुछ भी जादुई नहीं है। जो कुछ भी कहा गया है, विधि नामों को चुनना बेहतर है जो कम से कम यह स्पष्ट करते हैं कि वे किस लिए हैं। मैं इस बारे में थोड़ी देर बाद बात करूंगा।

तथ्य 3। एक वर्ग में विधियों का क्रम मायने नहीं रखता

आप अपनी विधियों को कक्षा में किसी भी क्रम में लिख सकते हैं - यह किसी भी तरह से कार्यक्रम के निष्पादन को प्रभावित नहीं करेगा। उदाहरण:

कोड
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

तथ्य 4। एक विधि के अंदर के चर किसी भी तरह से अन्य तरीकों के चर से संबंधित नहीं हैं

क्या होगा अगर वेगास, वेगास में ठहरेगा। और एक विधि के अंदर घोषित चर विधि के अंदर रहते हैं।

समान नाम वाले चर को दो आसन्न तरीकों से घोषित किया जा सकता है, और ये चर किसी भी तरह से एक दूसरे से संबंधित नहीं हैं।

विधि के नाम

"तो... मैंने आपको विधि नामों के बारे में बताने का वादा किया था। यह लंबे समय से ज्ञात है कि प्रोग्रामिंग में दो सबसे कठिन समस्याएं विधियों के लिए सही नाम चुनना और चर के लिए सही नाम चुनना हैं।"

"मैंने कभी नहीं सोचा था कि यह इतना कठिन था!"

"आप अभी दूसरे के अस्पष्ट कोड के बारे में ज्यादा नहीं जानते हैं, जहां चर और विधियों के मनमाने नाम हैं। बस उस कोड को समझने की कोशिश करें। वास्तव में, लगभग एक संपूर्ण विज्ञान सामने आया है कि तरीकों को सही तरीके से कैसे नाम दिया जाए। और प्रत्येक प्रोग्रामिंग भाषा में है इसके अपने मानक।

"जावा में, इन सिद्धांतों का पालन करना प्रथागत है:

सिद्धांत 1। एक विधि नाम को संक्षेप में वर्णन करना चाहिए कि विधि क्या करती है।

फिर आपके कोड को पढ़ने वाला एक अन्य प्रोग्रामर यह अनुमान लगाने के लिए विधि के नाम पर भरोसा कर सकता है कि कोड क्या करता है। उसे हर बार बुलाए गए तरीकों के कोड को देखने की आवश्यकता नहीं होगी। और तरीकों का उद्देश्य याद रखना आसान है।

उदाहरण के लिए, 'प्रोग्राम को सोने के लिए' रखने के लिए प्रयोग किया जाता है और 'अगले पूर्णांक को पढ़ने' के लिए प्रयोग किया जाता है। सुविधाजनक, हुह?Thread.sleep()Scanner.nextInt()

सिद्धांत 2। एक विधि का नाम कई शब्द हो सकते हैं।

हालाँकि, ऐसा करते समय कई सीमाएँ हैं:

  • आपके पास विधि के नाम में स्थान नहीं हो सकते: सभी शब्द एक साथ लिखे गए हैं।
  • पहले शब्द को छोड़कर प्रत्येक शब्द को बड़े अक्षरों में लिखा गया है।
  • एक विधि का नाम हमेशा एक छोटे अक्षर से शुरू होता है

विधि याद रखें print10TimesWiFi। उस नाम का क्या अर्थ है? "10 बार 'WiFi' शब्द प्रदर्शित करें"। आपको विधि के नाम में बहुत सारे शब्द शामिल नहीं करने चाहिए: नाम को इसके सार को प्रतिबिंबित करना चाहिए।

नामकरण के तरीकों के लिए इस मानक को कैमलकेस कहा जाता है (बड़े अक्षर ऊंट के कूबड़ की तरह होते हैं)।

सिद्धांत 3। एक विधि का नाम एक क्रिया के साथ शुरू होता है।

विधि हमेशा कुछ करती है, इसलिए विधि नाम का पहला शब्द हमेशा क्रिया होता है।

यहाँ तरीकों के लिए कुछ बुरे नाम दिए गए हैं: home, cat, car, train, ...;

कुछ अच्छे नाम हैं: run, execute, print, read, write...

सिद्धांत 4। एक विधि का नाम केवल लैटिन अक्षरों और संख्याओं का उपयोग करता है।

जावा को विभिन्न भाषाओं के लिए उत्कृष्ट समर्थन प्राप्त है। आप रूसी और साथ ही चीनी भाषा में वेरिएबल्स, विधियों और कक्षाओं के नाम लिख सकते हैं - सब कुछ काम करेगा!

लेकिन! System.out.println()कल्पना कीजिए कि यदि विधि चीनी भाषा में लिखी गई होती तो आपको कितने समय तक जावा का अध्ययन करना पड़ता ?

अभी से बहुत लंबा, है ना? वह पहला बिंदु है।

दूसरा, कई सॉफ्टवेयर विकास दल अंतर्राष्ट्रीय हैं। दुनिया भर के प्रोग्रामरों द्वारा बड़ी संख्या में जावा पुस्तकालयों का उपयोग किया जाता है।

इसलिए, विधि नामों में केवल लैटिन अक्षरों और संख्याओं का उपयोग करने की अनुशंसा की जाती है।

महत्वपूर्ण:

एक विधि का नाम एक अक्षर से शुरू होना चाहिए (यह किसी संख्या से शुरू नहीं हो सकता)।

"ये सभी बुनियादी सिद्धांत हैं जो जावा में नामकरण पद्धति को नियंत्रित करते हैं। सबक अब समाप्त हो गया है। कार्यों को हल करें!"

"मैं पहले से ही दौड़ रहा हूँ, डिएगो!"


Codegym यूनिवर्सिटी कोर्स के भाग के रूप में एक परामर्शदाता के साथ एक व्याख्यान स्निपेट। पूर्ण पाठ्यक्रम के लिए साइन अप करें।