नई क्लास बनाएं डायलॉग और फ़ाइल टेंप्लेट की मदद से, Android Studio आपको इन नई क्लास और टाइप को तुरंत बनाने में मदद करता है:
- Java क्लास
- इन्यूमरेशन और सिंगलटन क्लास
- इंटरफ़ेस और एनोटेशन के टाइप
नई क्लास बनाएं डायलॉग के फ़ील्ड भरने और ठीक है पर क्लिक करने के बाद, Android Studio एक .java
फ़ाइल बनाता है. इसमें पैकेज स्टेटमेंट, ज़रूरी इंपोर्ट, हेडर, और क्लास या टाइप डिक्लेरेशन के साथ-साथ स्केलेटन कोड भी होता है. इसके बाद, इस फ़ाइल में अपना कोड जोड़ा जा सकता है.
फ़ाइल टेंप्लेट से यह तय होता है कि Android Studio, स्केलेटन कोड कैसे जनरेट करता है. Android Studio के साथ दिए गए फ़ाइल टेंप्लेट का इस्तेमाल किया जा सकता है. इसके अलावा, उन्हें अपनी डेवलपमेंट प्रोसेस के हिसाब से बनाया जा सकता है.
फ़ाइल टेंप्लेट देखना और उन्हें पसंद के मुताबिक बनाना
Android Studio, फ़ाइल टेंप्लेट उपलब्ध कराता है. इनसे यह तय होता है कि नई क्लास बनाएं डायलॉग की मदद से, नई Java क्लास और टाइप कैसे बनाए जाते हैं. इन टेंप्लेट को अपनी ज़रूरत के हिसाब से बनाया जा सकता है.
पहली इमेज. नई क्लास बनाएं डायलॉग बॉक्स.
Android Studio के फ़ाइल टेंप्लेट में, Velocity Template Language (VTL) कोड और ऐसे वैरिएबल शामिल होते हैं जो इन अतिरिक्त विकल्पों को मैनेज करते हैं. नई क्लास बनाएं डायलॉग, AnnotationType, Class, Enum, Interface, और Singleton फ़ाइल टेंप्लेट का इस्तेमाल करता है.
टेंप्लेट देखने, उन्हें पसंद के मुताबिक बनाने, और उनमें बदलाव करने के लिए, यह तरीका अपनाएं:
निम्न में से कोई एक कार्य करें:
- Windows या Linux के लिए, File > Settings > Editor > File and Code Templates > Files चुनें.
- macOS के लिए, Android Studio > Preferences > Editor > File and Code Templates > Files चुनें.
टेंप्लेट की सूची में, इंटरनल टेंप्लेट के नाम बोल्ड फ़ॉन्ट में होते हैं. कस्टम टेंप्लेट के नाम, हाइलाइट किए गए रंग में दिखते हैं. जैसे, नीला.
फ़ाइल टेंप्लेट को अपनी ज़रूरत के मुताबिक बनाएं.
अगर आपको नई क्लास बनाएं डायलॉग फ़ील्ड का इस्तेमाल करना है, तो पक्का करें कि आपके बदलाव, Android Studio फ़ाइल टेंप्लेट कोड के मुताबिक हों.
वीटीएल के साथ-साथ फ़ाइल टेंप्लेट के बारे में ज़्यादा जानकारी के लिए, फ़ाइल और कोड टेंप्लेट और फ़ाइल और कोड टेंप्लेट डायलॉग देखें.
Java क्लास या टाइप बनाना
Android Studio की मदद से, नई Java क्लास, इन्यूमरेशन और सिंगलटन क्लास, इंटरफ़ेस, और एनोटेशन टाइप बनाए जा सकते हैं. ये सभी फ़ाइल टेंप्लेट पर आधारित होते हैं.
नई Java क्लास या टाइप बनाने के लिए, यह तरीका अपनाएं:
- Project विंडो में, किसी Java फ़ाइल या फ़ोल्डर पर राइट-क्लिक करें. इसके बाद, New > Java Class को चुनें.
- नई क्लास बनाएं डायलॉग बॉक्स में, ये फ़ील्ड भरें:
- नाम - नई क्लास या टाइप का नाम. यह Java के नाम से जुड़ी ज़रूरी शर्तों का पालन करता हो. फ़ाइल के नाम का एक्सटेंशन न डालें.
- टाइप - क्लास की कैटगरी या टाइप चुनें.
- सुपरक्लास - वह क्लास जिससे आपकी नई क्लास इनहेरिट करती है. पैकेज और क्लास का नाम टाइप किया जा सकता है. इसके अलावा, सिर्फ़ क्लास का नाम टाइप करके ड्रॉप-डाउन सूची में मौजूद किसी आइटम पर दो बार क्लिक करके, उसे अपने-आप पूरा होने दिया जा सकता है.
- इंटरफ़ेस - एक या उससे ज़्यादा ऐसे इंटरफ़ेस जिन्हें नई क्लास या टाइप लागू करता है. एक से ज़्यादा इंटरफ़ेस को कॉमा से अलग किया जाना चाहिए. इसके बाद, स्पेस देना ज़रूरी नहीं है. पैकेज और इंटरफ़ेस का नाम टाइप किया जा सकता है. इसके अलावा, सिर्फ़ इंटरफ़ेस का नाम टाइप करके, ड्रॉप-डाउन सूची में मौजूद किसी आइटम पर दो बार क्लिक करके भी इसे अपने-आप पूरा किया जा सकता है.
- पैकेज - वह पैकेज जिसमें क्लास या टाइप मौजूद होगा. डिफ़ॉल्ट वैल्यू, फ़ील्ड में अपने-आप दिखती है. अगर फ़ील्ड में कोई पैकेज का नाम डाला जाता है, तो पैकेज आइडेंटिफ़ायर के वे हिस्से लाल रंग में हाइलाइट हो जाते हैं जो मौजूद नहीं हैं. इस मामले में, ठीक है पर क्लिक करने के बाद Android Studio पैकेज बनाता है. इस फ़ील्ड में कोई वैल्यू होनी चाहिए. ऐसा न होने पर, Java फ़ाइल में
package
स्टेटमेंट नहीं होगा. साथ ही, क्लास या टाइप को प्रोजेक्ट में किसी पैकेज के अंदर नहीं रखा जाएगा. - किसको दिखे - चुनें कि क्लास या टाइप सभी क्लास को दिखे या सिर्फ़ उसी पैकेज में शामिल क्लास को.
- मॉडिफ़ायर - किसी क्लास के लिए, ऐब्स्ट्रैक्ट या फ़ाइनल मॉडिफ़ायर चुनें या इनमें से कोई भी नहीं चुनें.
- Select Overrides Dialog दिखाएं - Kind Class के लिए, इस विकल्प को चुनें. इससे OK पर क्लिक करने के बाद, Select Methods to Override/Implement dialog खुल जाएगा. इस डायलॉग बॉक्स में, उन तरीकों को चुना जा सकता है जिन्हें आपको बदलना है या लागू करना है. इसके बाद, Android Studio इन तरीकों के लिए स्केलेटन कोड जनरेट करेगा.
- ठीक है पर क्लिक करें.
इसके अलावा, Project विंडो में कोई Java फ़ाइल या फ़ोल्डर चुनें या Code Editor में किसी Java फ़ाइल पर क्लिक करें. इसके बाद, फ़ाइल > नई > Java क्लास चुनें.
आपने जो आइटम चुना है उसके हिसाब से, नई क्लास या टाइप के लिए डिफ़ॉल्ट पैकेज तय होता है.
अपने-आप पूरा होने की सुविधा, सिर्फ़ पहले इंटरफ़ेस के नाम के लिए काम करती है. ध्यान दें कि कॉमा और उसके बाद इंटरफ़ेस का नाम डालने पर, टूलटिप में गड़बड़ी दिख सकती है. हालांकि, इस गड़बड़ी को अनदेखा किया जा सकता है, क्योंकि इससे जनरेट किए गए कोड पर कोई असर नहीं पड़ता.
डिफ़ॉल्ट सेटिंग इस बात पर निर्भर करती है कि आपने नई क्लास बनाएं डायलॉग कैसे लॉन्च किया. अगर आपने प्रोजेक्ट विंडो में कोई Java फ़ाइल या फ़ोल्डर चुना है, तो डिफ़ॉल्ट रूप से, आपके चुने गए आइटम का पैकेज दिखेगा. अगर आपने कोड एडिटर में किसी Java फ़ाइल पर क्लिक किया है, तो डिफ़ॉल्ट रूप से यह फ़ाइल जिस पैकेज में मौजूद है उसे चुना जाता है.
टाइप से जुड़े नहीं होने वाले फ़ील्ड छिपे होते हैं.
Android Studio, स्केलेटन कोड वाली एक Java फ़ाइल बनाता है. इसमें बदलाव किया जा सकता है. इससे फ़ाइल, कोड एडिटर में खुल जाती है.
ध्यान दें: फ़ाइल > नया > सिंगलटन या फ़ाइल > नया > Java क्लास चुनकर, सिंगलटन क्लास बनाई जा सकती है. बाद वाले तरीके में ज़्यादा विकल्प मिलते हैं.
Android Studio के फ़ाइल टेंप्लेट
इस सेक्शन में, VTL स्क्रिप्टिंग भाषा में लिखा गया Android Studio फ़ाइल टेंप्लेट कोड दिया गया है. इसके बाद, वैरिएबल की परिभाषाएं दी गई हैं. नई क्लास बनाएं डायलॉग बॉक्स में दी गई वैल्यू, टेंप्लेट में वैरिएबल वैल्यू बन जाती हैं.
ध्यान दें कि #if (${VISIBILITY}
से शुरू होने वाली लाइनें, ओपन ब्रेस ({
) तक फैली होती हैं.
AnnotationType फ़ाइल का टेंप्लेट
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end @interface ${NAME} #if (${INTERFACES} != "")extends ${INTERFACES} #end { }
क्लास फ़ाइल का टेंप्लेट
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end #if (${ABSTRACT} == "TRUE")abstract #end #if (${FINAL} == "TRUE")final #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end { }
Enum फ़ाइल का टेंप्लेट
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end { }
इंटरफ़ेस फ़ाइल टेंप्लेट
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end enum ${NAME} #if (${INTERFACES} != "")implements ${INTERFACES} #end { #end { }
सिंगलटन फ़ाइल का टेंप्लेट
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #if (${IMPORT_BLOCK} != "")${IMPORT_BLOCK} #end #parse("File Header.java") #if (${VISIBILITY} == "PUBLIC")public #end class ${NAME} #if (${SUPERCLASS} != "")extends ${SUPERCLASS} #end #if (${INTERFACES} != "")implements ${INTERFACES} #end { private static final ${NAME} ourInstance = new ${NAME}(); #if (${VISIBILITY} == "PUBLIC")public #end static ${NAME} getInstance() { return ourInstance; } private ${NAME}() { } }
फ़ाइल टेंप्लेट वैरिएबल
Android Studio, फ़ाइल टेंप्लेट वैरिएबल को जनरेट की गई Java फ़ाइल में मौजूद वैल्यू से बदल देता है. नई क्लास बनाएं डायलॉग बॉक्स में वैल्यू डालें. इस टेंप्लेट में ये वैरिएबल होते हैं, जिनका इस्तेमाल किया जा सकता है:
IMPORT_BLOCK
- नई लाइन से अलग की गई Javaimport
स्टेटमेंट की सूची, जो किसी भी सुपरक्लास या इंटरफ़ेस के साथ काम करने के लिए ज़रूरी है. इसके अलावा, यह एक खाली स्ट्रिंग (""
) भी हो सकती है. उदाहरण के लिए, अगर आपने सिर्फ़Runnable
इंटरफ़ेस लागू किया है और कुछ भी एक्सटेंड नहीं किया है, तो यह वैरिएबल"import java.lang.Runnable;\n"
होगा. अगर आपनेRunnable
इंटरफ़ेस लागू किया है औरActivity
क्लास को बढ़ाया है, तो यह"import android.app.Activity;\nimportjava.lang.Runnable;\n"
होगा.VISIBILITY
- क्लास को सार्वजनिक तौर पर ऐक्सेस किया जा सकेगा या नहीं. इसकी वैल्यूPUBLIC
याPACKAGE_PRIVATE
हो सकती है.SUPERCLASS
- एक क्लास का नाम या खाली. अगर मौजूद है, तो नए क्लास के नाम के बादextends ${SUPERCLASS}
क्लॉज़ होगा.INTERFACES
- कॉमा लगाकर अलग किए गए इंटरफ़ेस की सूची या खाली. अगर यह मौजूद है, तो सुपरक्लास के बाद या सुपरक्लास न होने पर क्लास के नाम के बादimplements ${INTERFACES}
क्लॉज़ होगा. इंटरफ़ेस और एनोटेशन टाइप के लिए, इंटरफ़ेस मेंextends
कीवर्ड होता है.ABSTRACT
- क्लास को ऐब्सट्रैक्ट होना चाहिए या नहीं. इसकी वैल्यूTRUE
याFALSE
हो सकती है.FINAL
- इससे यह तय होता है कि क्लास फ़ाइनल होनी चाहिए या नहीं. इसकी वैल्यूTRUE
याFALSE
हो सकती है.