नई क्लास बनाएं डायलॉग और फ़ाइल टेंप्लेट की मदद से, Android Studio में ये नई क्लास और टाइप तुरंत बनाए जा सकते हैं:
- Java क्लास
- इन्यूमेशन और सिंगलटन क्लास
- इंटरफ़ेस और एनोटेशन टाइप
नई क्लास बनाएं डायलॉग के फ़ील्ड भरने और
ठीक है पर क्लिक करने के बाद, Android Studio एक .java फ़ाइल बनाता है. इसमें
पैकेज स्टेटमेंट, ज़रूरी इंपोर्ट, हेडर,
और क्लास या टाइप का एलान करने वाला स्केलेटन कोड शामिल होता है. इसके बाद, इस फ़ाइल में अपना कोड जोड़ा जा सकता है.
फ़ाइल टेंप्लेट से यह तय होता है कि Android Studio, स्केलेटन कोड कैसे जनरेट करता है. Android Studio के साथ दिए गए फ़ाइल टेंप्लेट को उनके मूल फ़ॉर्मैट में इस्तेमाल किया जा सकता है. इसके अलावा, डेवलपमेंट प्रोसेस के हिसाब से उनमें बदलाव भी किया जा सकता है.
फ़ाइल टेंप्लेट देखना और उनमें बदलाव करना
Android Studio, फ़ाइल टेंप्लेट उपलब्ध कराता है. इनसे यह तय होता है कि नई क्लास बनाएं डायलॉग की मदद से, नई Java क्लास और टाइप कैसे बनाए जाते हैं. इन टेंप्लेट में बदलाव किया जा सकता है.
पहली इमेज. नई क्लास बनाएं डायलॉग.
Android Studio के फ़ाइल टेंप्लेट में, वेलोसिटी टेंप्लेट लैंग्वेज (वीटीएल) कोड और वैरिएबल शामिल होते हैं. इनसे इन अतिरिक्त विकल्पों को मैनेज किया जाता है. नई क्लास बनाएं डायलॉग में, AnnotationType, Class, Enum, Interface, और Singleton फ़ाइल टेंप्लेट का इस्तेमाल किया जाता है.
टेंप्लेट देखने, उनमें किए गए बदलावों को ढूंढने, और टेंप्लेट में बदलाव करने के लिए, यह तरीका अपनाएं:
निम्न में से कोई एक काम करें:
- Windows या Linux के लिए, फ़ाइल > सेटिंग > एडिटर > फ़ाइल और कोड टेंप्लेट > फ़ाइलें को चुनें.
- macOS के लिए, Android Studio > प्राथमिकताएं > एडिटर > फ़ाइल और कोड टेंप्लेट > फ़ाइलें को चुनें.
टेंप्लेट की सूची में, इंटरनल टेंप्लेट के नाम बोल्ड फ़ॉन्ट में दिखते हैं. पसंद के मुताबिक बनाए गए टेंप्लेट के नाम, हाइलाइट किए गए रंग में दिखते हैं. जैसे, नीला.
ज़रूरत के हिसाब से, फ़ाइल टेंप्लेट में बदलाव करें.
अगर आपको नई क्लास बनाएं डायलॉग के फ़ील्ड इस्तेमाल करने हैं, तो पक्का करें कि आपके बदलाव, Android Studio के फ़ाइल टेंप्लेट कोड के मुताबिक हों.
वीटीएल के साथ-साथ फ़ाइल टेंप्लेट के बारे में ज़्यादा जानने के लिए, फ़ाइल और कोड टेंप्लेट और फ़ाइल और कोड टेंप्लेट डायलॉग देखें.
Java क्लास या टाइप बनाना
नई Java क्लास या टाइप बनाने के लिए, यह तरीका अपनाएं:
- प्रोजेक्ट विंडो में, किसी Java फ़ाइल या फ़ोल्डर पर राइट-क्लिक करें. इसके बाद, नई > Java क्लास को चुनें.
- नई क्लास बनाएं डायलॉग में, ये फ़ील्ड भरें:
- नाम \- नई क्लास या टाइप का नाम. यह Java के नाम से जुड़ी ज़रूरी शर्तों के मुताबिक होना चाहिए. फ़ाइल के नाम का एक्सटेंशन न डालें.
- टाइप - क्लास या टाइप की कैटगरी चुनें.
- सुपरक्लास - वह क्लास जिससे आपकी नई क्लास इनहेरिट होती है. पैकेज और क्लास का नाम टाइप किया जा सकता है. इसके अलावा, सिर्फ़ क्लास का नाम टाइप करके, ड्रॉप-डाउन सूची में किसी आइटम पर डबल-क्लिक करके उसे अपने-आप पूरा किया जा सकता है.
- इंटरफ़ेस - एक या उससे ज़्यादा इंटरफ़ेस जिन्हें नई क्लास या टाइप लागू करता है. एक से ज़्यादा इंटरफ़ेस को कॉमा और उसके बाद एक स्पेस लगाकर अलग किया जाना चाहिए. पैकेज और इंटरफ़ेस का नाम टाइप किया जा सकता है. इसके अलावा, सिर्फ़ इंटरफ़ेस का नाम टाइप करके, ड्रॉप-डाउन सूची में किसी आइटम पर डबल-क्लिक करके उसे अपने-आप पूरा किया जा सकता है.
- पैकेज - वह पैकेज जिसमें क्लास या टाइप मौजूद होगा. डिफ़ॉल्ट तौर पर, यह फ़ील्ड में अपने-आप दिखता है. अगर इस फ़ील्ड में कोई पैकेज का नाम डाला जाता है, तो पैकेज आइडेंटिफ़ायर के वे हिस्से लाल रंग में हाइलाइट होते हैं जो मौजूद नहीं हैं. इस मामले में, ठीक है पर क्लिक करने के बाद, Android Studio पैकेज बनाता है. इस फ़ील्ड में कोई वैल्यू होनी चाहिए. ऐसा न होने पर, Java
फ़ाइल में
packageस्टेटमेंट नहीं होगा. साथ ही, क्लास या टाइप को प्रोजेक्ट में किसी पैकेज में नहीं रखा जाएगा. - किसको दिखे - चुनें कि क्लास या टाइप सभी क्लास को दिखे या सिर्फ़ अपने पैकेज में मौजूद क्लास को.
- मॉडिफ़ायर - क्लास के लिए, ऐब्स्ट्रैक्ट या फ़ाइनल मॉडिफ़ायर चुनें. इसके अलावा, इनमें से कोई भी मॉडिफ़ायर न चुनने का विकल्प भी है.
- ओवरराइड करने के लिए तरीके चुनें डायलॉग दिखाएं - क्लास के टाइप के लिए, इस विकल्प को चुनें. इससे ठीक है पर क्लिक करने के बाद, ओवरराइड/लागू करने के लिए तरीके चुनें डायलॉग खुलेगा. इस डायलॉग में, उन तरीकों को चुना जा सकता है जिन्हें ओवरराइड या लागू करना है. इसके बाद, Android Studio इन तरीकों के लिए स्केलेटन कोड जनरेट करेगा.
- ठीक है पर क्लिक करें.
इसके अलावा, प्रोजेक्ट विंडो में कोई Java फ़ाइल या फ़ोल्डर चुनें या कोड एडिटर में किसी Java फ़ाइल में क्लिक करें. इसके बाद, फ़ाइल > नई > Java क्लास को चुनें.
आपके चुने गए आइटम के हिसाब से, नई क्लास या टाइप के लिए डिफ़ॉल्ट पैकेज तय होता है.
अपने-आप पूरा होने की सुविधा, सिर्फ़ पहले इंटरफ़ेस के नाम के लिए काम करती है. ध्यान दें कि कॉमा और उसके बाद इंटरफ़ेस का नाम डालने पर, टूलटिप में गड़बड़ी दिख सकती है. हालांकि, इस गड़बड़ी को अनदेखा किया जा सकता है, क्योंकि इससे जनरेट किए गए कोड पर कोई असर नहीं पड़ता.
डिफ़ॉल्ट तरीका, इस बात पर निर्भर करता है कि आपने नई क्लास बनाएं डायलॉग कैसे लॉन्च किया. अगर आपने प्रोजेक्ट विंडो में पहले कोई Java फ़ाइल या फ़ोल्डर चुना है, तो डिफ़ॉल्ट तौर पर, आपके चुने गए आइटम का पैकेज दिखेगा. अगर आपने कोड एडिटर में पहले किसी Java फ़ाइल में क्लिक किया है, तो डिफ़ॉल्ट तौर पर, वह पैकेज दिखेगा जिसमें यह फ़ाइल मौजूद है.
टाइप पर लागू न होने वाले फ़ील्ड छिपे रहते हैं.
Android Studio, स्केलेटन कोड वाली एक Java फ़ाइल बनाता है. इसमें बदलाव किया जा सकता है. यह फ़ाइल, कोड एडिटर में खुलती है.
ध्यान दें: सिंगलटन क्लास बनाने के लिए, फ़ाइल > नई > सिंगलटन या फ़ाइल > नई > Java क्लास को चुनें. दूसरे तरीके में ज़्यादा विकल्प मिलते हैं.
Android Studio के फ़ाइल टेंप्लेट
इस सेक्शन में, वीटीएल स्क्रिप्टिंग लैंग्वेज में लिखे गए 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 {
}
Class फ़ाइल टेंप्लेट
#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 {
}
Interface फ़ाइल टेंप्लेट
#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 {
}
Singleton फ़ाइल टेंप्लेट
#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हो सकती है.