একটি জাভা ক্লাস বা টাইপ তৈরি করুন

Create New Class ডায়ালগ এবং ফাইল টেমপ্লেটের সাহায্যে অ্যান্ড্রয়েড স্টুডিও আপনাকে দ্রুত নিম্নলিখিত নতুন ক্লাস ও টাইপগুলো তৈরি করতে সাহায্য করে:

  • জাভা ক্লাস
  • গণনা এবং একক ক্লাস
  • ইন্টারফেস এবং টীকা প্রকার

আপনি 'Create New Class' ডায়ালগ বক্সের ফিল্ডগুলো পূরণ করে ' OK' ক্লিক করার পর, অ্যান্ড্রয়েড স্টুডিও একটি .java ফাইল তৈরি করে। এই ফাইলে একটি প্যাকেজ স্টেটমেন্ট, প্রয়োজনীয় ইম্পোর্ট, একটি হেডার এবং একটি ক্লাস বা টাইপ ডিক্লারেশন সহ স্কেলেটন কোড থাকে। এরপর, আপনি এই ফাইলে আপনার কোড যোগ করতে পারেন।

ফাইল টেমপ্লেটগুলো নির্দিষ্ট করে দেয় যে অ্যান্ড্রয়েড স্টুডিও কীভাবে স্কেলেটন কোড তৈরি করবে। আপনি অ্যান্ড্রয়েড স্টুডিওর সাথে দেওয়া ফাইল টেমপ্লেটগুলো সরাসরি ব্যবহার করতে পারেন, অথবা আপনার ডেভেলপমেন্ট প্রক্রিয়ার সুবিধার্থে সেগুলোকে কাস্টমাইজ করতে পারেন।

ফাইল টেমপ্লেট দেখা এবং কাস্টমাইজ করা

অ্যান্ড্রয়েড স্টুডিও ফাইল টেমপ্লেট সরবরাহ করে, যা 'Create New Class' ডায়ালগের মাধ্যমে নতুন জাভা ক্লাস এবং টাইপ কীভাবে তৈরি হবে তা নির্ধারণ করে। আপনি এই টেমপ্লেটগুলো কাস্টমাইজ করতে পারেন।

নতুন ক্লাস তৈরি করার ডায়ালগ বক্স।

চিত্র ১। নতুন ক্লাস তৈরি করার ডায়ালগ বক্স।

অ্যান্ড্রয়েড স্টুডিও ফাইল টেমপ্লেটগুলোতে ভেলোসিটি টেমপ্লেট ল্যাঙ্গুয়েজ ( VTL ) কোড এবং ভেরিয়েবল অন্তর্ভুক্ত থাকে, যা এই অতিরিক্ত অপশনগুলো পরিচালনা করে। ' Create New Class ' ডায়ালগ বক্সটি AnnotationType , Class , Enum , Interface এবং Singleton ফাইল টেমপ্লেটগুলো ব্যবহার করে।

টেমপ্লেটগুলো দেখতে, কাস্টমাইজেশন খুঁজে পেতে এবং টেমপ্লেটগুলো পরিবর্তন করতে, এই ধাপগুলো অনুসরণ করুন:

  1. নিম্নলিখিতগুলির মধ্যে যেকোনো একটি করুন:

    • Windows বা Linux-এর জন্য, File > Settings > Editor > File and Code Templates > Files নির্বাচন করুন।
    • macOS-এর জন্য, Android Studio > Preferences > Editor > File and Code Templates > Files নির্বাচন করুন।

    টেমপ্লেট তালিকায় , অভ্যন্তরীণ টেমপ্লেটের নামগুলো গাঢ় অক্ষরে থাকে। কাস্টমাইজ করা টেমপ্লেটের নামগুলো নীল রঙের মতো একটি হাইলাইট রঙে প্রদর্শিত হয়।

  2. প্রয়োজন অনুযায়ী ফাইল টেমপ্লেটগুলো পরিবর্তন করুন।

    আপনি যদি 'Create New Class' ডায়ালগ ফিল্ডগুলো ব্যবহার করতে চান, তাহলে নিশ্চিত করুন যে আপনার পরিবর্তনগুলো অ্যান্ড্রয়েড স্টুডিও ফাইল টেমপ্লেট কোডের সাথে সঙ্গতিপূর্ণ।

VTL সহ ফাইল টেমপ্লেট সম্পর্কে আরও তথ্যের জন্য, ফাইল এবং কোড টেমপ্লেট এবং ফাইল এবং কোড টেমপ্লেট ডায়ালগ দেখুন।

জাভা ক্লাস বা টাইপ তৈরি করা

অ্যান্ড্রয়েড স্টুডিও আপনাকে ফাইল টেমপ্লেটের উপর ভিত্তি করে নতুন জাভা ক্লাস; এনুমারেশন ও সিঙ্গেলটন ক্লাস; এবং ইন্টারফেস ও অ্যানোটেশন টাইপ তৈরি করতে সাহায্য করে।

একটি নতুন জাভা ক্লাস বা টাইপ তৈরি করতে, এই ধাপগুলো অনুসরণ করুন:

  1. প্রজেক্ট উইন্ডোতে, একটি জাভা ফাইল বা ফোল্ডারে রাইট-ক্লিক করুন এবং New > Java Class নির্বাচন করুন।
  2. বিকল্পভাবে, প্রজেক্ট উইন্ডোতে একটি জাভা ফাইল বা ফোল্ডার নির্বাচন করুন, অথবা কোড এডিটরে একটি জাভা ফাইলে ক্লিক করুন। তারপর ফাইল > নতুন > জাভা ক্লাস নির্বাচন করুন।

    আপনার নির্বাচিত আইটেমটি নতুন ক্লাস বা টাইপের জন্য ডিফল্ট প্যাকেজ নির্ধারণ করে।

  3. নতুন ক্লাস তৈরি করার ডায়ালগ বক্সে, নিম্নলিখিত ক্ষেত্রগুলি পূরণ করুন:
    • নাম - নতুন ক্লাস বা টাইপের নাম। এটি অবশ্যই জাভার নামকরণের নিয়মাবলী মেনে চলতে হবে। কোনো ফাইল নেম এক্সটেনশন টাইপ করবেন না।
    • ধরণ - শ্রেণী বা প্রকারের বিভাগ নির্বাচন করুন।
    • সুপারক্লাস - যে ক্লাস থেকে আপনার নতুন ক্লাসটি ইনহেরিট করবে। আপনি প্যাকেজ এবং ক্লাসের নাম টাইপ করতে পারেন, অথবা শুধু ক্লাসের নাম লিখে ড্রপ-ডাউন তালিকার কোনো একটি আইটেমে ডাবল-ক্লিক করে তা স্বয়ংক্রিয়ভাবে পূরণ করতে পারেন।
    • ইন্টারফেস(সমূহ) - এক বা একাধিক ইন্টারফেস যা নতুন ক্লাস বা টাইপটি ইমপ্লিমেন্ট করে। একাধিক ইন্টারফেসকে একটি কমা এবং তারপরে একটি ঐচ্ছিক স্পেস দিয়ে আলাদা করতে হবে। আপনি প্যাকেজ এবং ইন্টারফেসের নাম টাইপ করতে পারেন, অথবা শুধু ইন্টারফেসের নাম টাইপ করে ড্রপ-ডাউন তালিকার কোনো একটি আইটেমে ডাবল-ক্লিক করে তা স্বয়ংক্রিয়ভাবে পূরণ করতে পারেন।
    • অটোকমপ্লিট শুধুমাত্র প্রথম ইন্টারফেস নামের জন্য কাজ করে। মনে রাখবেন যে, কমা এবং তার পরের ইন্টারফেস নামটি একটি টুলটিপ ত্রুটি দেখাতে পারে, কিন্তু আপনি সেই ত্রুটিটি উপেক্ষা করতে পারেন কারণ এটি তৈরি হওয়া কোডকে প্রভাবিত করে না।

    • প্যাকেজ - যে প্যাকেজের মধ্যে ক্লাস বা টাইপটি থাকবে। ডিফল্ট নামটি স্বয়ংক্রিয়ভাবে ফিল্ডে প্রদর্শিত হয়। আপনি যদি ফিল্ডে একটি প্যাকেজের নাম টাইপ করেন, তাহলে প্যাকেজ আইডেন্টিফায়ারের যে অংশগুলো বিদ্যমান নেই, সেগুলো লাল রঙে হাইলাইট করা হয়; এক্ষেত্রে, আপনি 'ওকে' (OK) ক্লিক করার পর অ্যান্ড্রয়েড স্টুডিও প্যাকেজটি তৈরি করে। এই ফিল্ডে অবশ্যই একটি ভ্যালু থাকতে হবে; অন্যথায়, জাভা ফাইলে কোনো package স্টেটমেন্ট থাকবে না এবং ক্লাস বা টাইপটি প্রজেক্টের কোনো প্যাকেজের মধ্যে স্থাপন করা হবে না।
    • আপনি কীভাবে 'Create New Class' ডায়ালগ বক্সটি চালু করেছেন, তার উপর ডিফল্ট নির্ভর করে। আপনি যদি প্রথমে 'Project' উইন্ডোতে কোনো জাভা ফাইল বা ফোল্ডার নির্বাচন করে থাকেন, তাহলে ডিফল্ট হবে আপনার নির্বাচিত আইটেমটির প্যাকেজ। আর যদি আপনি প্রথমে 'Code Editor'-এ কোনো জাভা ফাইলে ক্লিক করে থাকেন, তাহলে ডিফল্ট হবে সেই প্যাকেজটি, যেটিতে এই ফাইলটি রয়েছে।

    • দৃশ্যমানতা - ক্লাস বা টাইপটি সকল ক্লাসের কাছে, নাকি শুধু তার নিজের প্যাকেজের অন্তর্ভুক্ত ক্লাসগুলোর কাছে দৃশ্যমান হবে, তা নির্বাচন করুন।
    • মডিফায়ার - একটি ক্লাসের জন্য অ্যাবস্ট্রাক্ট বা ফাইনাল মডিফায়ার নির্বাচন করুন, অথবা কোনোটিই নয়।
    • 'শো সিলেক্ট ওভাররাইডস ডায়ালগ' - কোনো নির্দিষ্ট ' ক্লাস'-এর জন্য, 'ওকে' ক্লিক করার পর 'সিলেক্ট মেথডস টু ওভাররাইড/ইমপ্লিমেন্ট' ডায়ালগটি খোলার জন্য এই অপশনটি চেক করুন। এই ডায়ালগে, আপনি যে মেথডগুলো ওভাররাইড বা ইমপ্লিমেন্ট করতে চান, সেগুলো নির্বাচন করতে পারেন এবং অ্যান্ড্রয়েড স্টুডিও এই মেথডগুলোর জন্য স্কেলেটন কোড তৈরি করবে।

    যেসব ফিল্ড Kind- এর ক্ষেত্রে প্রযোজ্য নয়, সেগুলো লুকানো থাকে।

  4. OK ক্লিক করুন।
  5. অ্যান্ড্রয়েড স্টুডিও স্কেলেটন কোডসহ একটি জাভা ফাইল তৈরি করে, যা আপনি পরিবর্তন করতে পারেন। এটি কোড এডিটরে ফাইলটি খোলে।

দ্রষ্টব্য: আপনি File > New > Singleton অথবা File > New > Java Class নির্বাচন করে একটি সিঙ্গেলটন ক্লাস তৈরি করতে পারেন; পরের পদ্ধতিটিতে আরও বেশি বিকল্প রয়েছে।

অ্যান্ড্রয়েড স্টুডিও ফাইল টেমপ্লেট

এই বিভাগে VTL স্ক্রিপ্টিং ভাষায় লেখা অ্যান্ড্রয়েড স্টুডিও ফাইল টেমপ্লেট কোড এবং এর পরে ভেরিয়েবলগুলোর সংজ্ঞা দেওয়া হয়েছে। আপনি 'Create New Class' ডায়ালগে যে মানগুলো প্রদান করেন, সেগুলোই টেমপ্লেটের ভেরিয়েবল মান হয়ে যায়। লক্ষ্য করুন যে, #if (${VISIBILITY} দিয়ে শুরু হওয়া লাইনগুলো একেবারে ওপেন ব্রেস ( { ) পর্যন্ত বিস্তৃত থাকে।

টীকা প্রকার ফাইল টেমপ্লেট

#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}() {
    }
}

ফাইল টেমপ্লেট ভেরিয়েবল

অ্যান্ড্রয়েড স্টুডিও তৈরি হওয়া জাভা ফাইলে ফাইল টেমপ্লেট ভেরিয়েবলগুলোকে মান দিয়ে প্রতিস্থাপন করে। আপনি 'Create New Class' ডায়ালগে মানগুলো প্রবেশ করান। টেমপ্লেটটিতে নিম্নলিখিত ভেরিয়েবলগুলো রয়েছে যা আপনি ব্যবহার করতে পারেন:

  • IMPORT_BLOCK - যেকোনো সুপারক্লাস বা ইন্টারফেস সমর্থন করার জন্য প্রয়োজনীয় জাভা import স্টেটমেন্টগুলোর একটি নিউলাইন-ডিলিমিটেড তালিকা, অথবা একটি খালি স্ট্রিং ( "" )। উদাহরণস্বরূপ, যদি আপনি শুধুমাত্র 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 হতে পারে।