CodeGym /Java Blog /এলোমেলো /জাভা ক্লাস: আপনার নিজের ক্লাস, কনস্ট্রাক্টর লেখা
John Squirrels
লেভেল 41
San Francisco

জাভা ক্লাস: আপনার নিজের ক্লাস, কনস্ট্রাক্টর লেখা

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

public class Cat {

    String name;
    int age;

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

public class Cat {

    String name;
    int age;

    public static void main(String[] args) {
        Cat smudge = new Cat();
        smudge.age = 3;
        smudge.name = "Smudge";

        System.out.println("We created a cat named " + smudge.name + ". His age is " + smudge.age);
    }

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

public class Cat {

    String name;
    int age;

    static int count = 0;

    public static void main(String[] args) {
        Cat smudge = new Cat();
        smudge.age = 3;
        smudge.name = "Smudge";
        count++;

        Cat fluffy = new Cat();
        fluffy.age = 5;
        fluffy.name = "Fluffy";
        count++;

        System.out.println("We created a cat named " + smudge.name + ". His age is " + smudge.age);
        System.out.println("We created a cat named " + fluffy.name + ". His age is " + fluffy.age);

        System.out.println("Total number of cats = " + count);
    }
}
কনসোল আউটপুট: আমরা Smudge নামে একটি বিড়াল তৈরি করেছি। তার বয়স 3 আমরা ফ্লফি নামে একটি বিড়াল তৈরি করেছি। তার বয়স 5 মোট বিড়ালের সংখ্যা = 2 এখন আমাদের ক্লাসে গণনা নামে একটি নতুন চলক রয়েছে। এটি তৈরি করা বিড়াল গণনার জন্য দায়ী। প্রতিবার আমরা প্রধান একটি বিড়াল তৈরিপদ্ধতিতে, আমরা এই ভেরিয়েবলটিকে 1 দ্বারা বৃদ্ধি করি। এই ভেরিয়েবলটিকে স্ট্যাটিক কীওয়ার্ড ব্যবহার করে ঘোষণা করা হয়। এর মানে এটি ক্লাসের অন্তর্গত, ক্লাসের একটি নির্দিষ্ট বস্তুর নয়। যা, অবশ্যই, অর্থপূর্ণ: প্রতিটি বিড়ালের নাম সেই নির্দিষ্ট বিড়ালের অন্তর্গত, তবে আমাদের একটি বিড়াল কাউন্টার প্রয়োজন যা তাদের সকলের জন্য প্রযোজ্য। এটি অবিকল কীওয়ার্ড স্ট্যাটিক সম্পন্ন করে: এটি সমস্ত বিড়ালের জন্য গণনা পরিবর্তনশীলকে একটি একক পরিবর্তনশীল করে তোলে। দ্রষ্টব্য: যখন আমরা ভেরিয়েবলটি প্রদর্শন করি, তখন আমরা smudge.count বা fluffy.count ব্যবহার করছি না। এটা Smudge বা Fluffy হয় না; এটি সম্পূর্ণ বিড়াল শ্রেণীর অন্তর্গত । যে কেন এটা সহজভাবে গণনা. আপনি Cat.count লিখতে পারেন। এটাও সঠিক হবে। নাম পরিবর্তনশীল প্রদর্শন করার সময়, আমরা নিম্নলিখিতগুলি করব না:

public class Cat {

    String name;
    int age;

    static int count = 0;

    public static void main(String[] args) {
        Cat smudge = new Cat();
        smudge.age = 3;
        smudge.name = "Smudge";
        count++;

        System.out.println("We created a cat named " + name + ". His age is " + smudge.age);

        System.out.println("Total number of cats = " + count);
    }
}
এটি একটি ত্রুটি! প্রতিটি বিড়ালের নিজস্ব নাম আছে। কম্পাইলার এখানে বিভ্রান্ত হয়. "কনসোলে একটি নাম আউটপুট? কার নাম?" :/"

পদ্ধতি

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

public class Cat {

    String name;
    int age;

    public void sayMeow() {
        System.out.println("Meow!");
    }

    public void jump() {
        System.out.println("Pounce!");
    }

    public static void main(String[] args) {
        Cat smudge = new Cat();
        smudge.age = 3;
        smudge.name = "Smudge";

        smudge.sayMeow();
        smudge.jump();

    }
}
এটা দেখ! এখন আমাদের ক্লাস অনেক কাছাকাছি একটি বিড়াল অনুরূপ! এখন আমাদের কাছে শুধু একটি নাম ("Smudge") এবং একটি বয়স (3) সহ একটি বিড়াল নেই। সেও বলতে পারে মিউ আর লাফ! যে "কার্যকারিতা" ছাড়া বিড়াল কি ধরনের হবে? :) আমরা একটি নির্দিষ্ট বস্তু (smudge) নিচ্ছি এবং এটিকে sayMeow() এবং jump() পদ্ধতি বলছি। এর কনসোল তাকান: Meow! ধাক্কা! একটি বাস্তব বিড়াল! :)

আপনার নিজস্ব ক্লাস তৈরি করা. বিমূর্ততা

ভবিষ্যতে, আপনাকে নিজের ক্লাস লিখতে হবে। আপনি যখন সেগুলি লিখবেন তখন আপনার কী সন্ধান করা দরকার? যদি আমরা ভেরিয়েবল সম্পর্কে কথা বলি, তাহলে আপনাকে বিমূর্ততা নামক কিছু ব্যবহার করতে হবে। অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের চারটি মৌলিক নীতির মধ্যে একটি হল অ্যাবস্ট্রাকশন। এর অর্থ হল একটি আইটেমের সবচেয়ে গুরুত্বপূর্ণ এবং তাৎপর্যপূর্ণ বৈশিষ্ট্যগুলি বের করা, এবং বিপরীতভাবে, যেগুলি গৌণ বা তুচ্ছ তা বাদ দেওয়া। উদাহরণস্বরূপ, কোম্পানির কর্মচারীদের জন্য একটি ফাইলিং ক্যাবিনেট তৈরি করা যাক। কর্মচারী বস্তু তৈরি করতে, আমরা একটি কর্মচারী লিখেছিক্লাস আমাদের কোম্পানির ফাইলিং ক্যাবিনেটের জন্য একজন কর্মচারীর গুরুত্বপূর্ণ বর্ণনাকারী কী বৈশিষ্ট্য? নাম, জন্ম তারিখ, SSN, এবং কর্মচারী আইডি। কিন্তু কোম্পানির কর্মচারী রেকর্ডের জন্য আমাদের কর্মচারীর উচ্চতা, চোখের রঙ বা চুলের রঙের প্রয়োজন হবে এমন সম্ভাবনা নেই। কোম্পানির এই তথ্যের প্রয়োজন নেই। সুতরাং, কর্মচারী শ্রেণিতে, আমরা নিম্নলিখিত ভেরিয়েবলগুলি ঘোষণা করি: স্ট্রিং নাম , int বয়স , int socialSecurityNumber , এবং int employeeId. এবং আমরা অপ্রয়োজনীয় তথ্য (চোখের রঙের মতো) ছেড়ে দিই। অন্য কথায়, আমরা একটি বিমূর্ততা তৈরি করি। যাইহোক, যদি আমরা মডেলিং এজেন্সিগুলির জন্য একটি ফাইলিং ক্যাবিনেট তৈরি করি, পরিস্থিতি নাটকীয়ভাবে পরিবর্তিত হয়। একজন মডেলের উচ্চতা, চোখের রঙ এবং চুলের রঙ গুরুত্বপূর্ণ বৈশিষ্ট্য, কিন্তু তার SSN আমাদের কাছে একেবারেই অপ্রাসঙ্গিক। সুতরাং, মডেল ক্লাসে, আমাদের নিম্নলিখিত ভেরিয়েবলগুলি তৈরি করতে হবে: স্ট্রিং উচ্চতা , স্ট্রিং চুল , স্ট্রিং চোখ । এভাবেই বিমূর্ততা কাজ করে - এটা সহজ! :)

কনস্ট্রাক্টর

আসুন আমাদের বিড়ালের উদাহরণে ফিরে যাই।

public class Cat {

    String name;
    int age;

    public static void main(String[] args) {
        Cat smudge = new Cat();

        System.out.println("Here the program does something for 2 hours...");

        smudge.age = 3;
        smudge.name = "Smudge";

    }
}
এই কোডটি দেখুন এবং আমাদের প্রোগ্রামে কি ভুল আছে তা বের করার চেষ্টা করুন। আমাদের প্রোগ্রামে একটি বিড়াল ছিল যার নাম বা বয়স নেই 2 ঘন্টা! অবশ্যই, এটি সহজাত ভুল। ভেটেরিনারি ক্লিনিকের ডাটাবেসে কোনো তথ্য ছাড়া বিড়াল অন্তর্ভুক্ত করা উচিত নয়। বর্তমানে, আমাদের বিড়াল প্রোগ্রামারের করুণায় রয়েছে। আমরা বিশ্বাস করি যে তিনি একটি নাম এবং বয়স উল্লেখ করতে ভুলবেন না এবং সবকিছু ঠিক হয়ে যাবে৷ যদি তিনি ভুলে যান, ডাটাবেসে একটি সমস্যা হবে: নামহীন বিড়াল। কিভাবে আমরা এই সমস্যার সমাধান করতে পারি? আমাদের অবশ্যই কোনো না কোনোভাবে বিড়ালদের নাম ও বয়স ছাড়া তৈরি হওয়া থেকে বিরত রাখতে হবে। এখানেই কনস্ট্রাক্টররা উদ্ধার করতে আসে। একটি উদাহরণ দেওয়া যাক:

public class Cat {

    String name;
    int age;

    // Constructor for the Cat class
    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {

        Cat smudge = new Cat("Smudge", 5);
    }
}
মূলত, একটি কনস্ট্রাক্টর হল একটি শ্রেণীর বস্তুর জন্য একটি টেমপ্লেট। এই ক্ষেত্রে, আমরা নির্দেশ করি যে দুটি আর্গুমেন্ট, একটি স্ট্রিং এবং একটি int , প্রতিটি বিড়াল বস্তুর জন্য নির্দিষ্ট করা আবশ্যক। আমরা যদি এখন একটি নামহীন বিড়াল তৈরি করার চেষ্টা করি তবে এটি কাজ করবে না।

public class Cat {

    String name;
    int age;

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {

        Cat smudge = new Cat(); // Error!
    }
}
এখন যেহেতু ক্লাসের একটি কনস্ট্রাক্টর আছে, জাভা কম্পাইলার জানে যে অবজেক্টগুলি কেমন হওয়া উচিত এবং আর্গুমেন্টগুলি নির্দিষ্ট না করে অবজেক্ট তৈরি করার অনুমতি দেয় না। এখন, আসুন এই কীওয়ার্ডটি তদন্ত করি, যা আপনি কনস্ট্রাক্টরের ভিতরে দেখতে পাচ্ছেন। এটা খুব সহজ. এই কীওয়ার্ডটি একটি নির্দিষ্ট বস্তুকে নির্দেশ করার জন্য। কন্সট্রাক্টরের কোড

public Cat(String name, int age) {
    this.name = name;
    this.age = age;
}
প্রায় শাব্দিকভাবে ব্যাখ্যা করা যেতে পারে: "এই বিড়ালের নাম (আমরা যেটি তৈরি করছি) = কনস্ট্রাক্টরের নামের প্যারামিটারের জন্য আর্গুমেন্ট পাস করা হয়েছে। এই বিড়ালের বয়স (যা আমরা তৈরি করছি) = কনস্ট্রাক্টরের পক্ষে যুক্তি পাস করা হয়েছে বয়সের প্যারামিটার।" কনস্ট্রাক্টর চালানোর পরে, আপনি যাচাই করতে পারেন যে সমস্ত প্রয়োজনীয় মান আমাদের বিড়ালকে বরাদ্দ করা হয়েছে:

public class Cat {

    String name;
    int age;

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {

        Cat smudge = new Cat("Smudge", 5);
        System.out.println(smudge.name);
        System.out.println(smudge.age);
    }
}
কনসোল আউটপুট: Smudge 5 যখন কনস্ট্রাক্টরকে কল করা হয়েছিল:

Cat smudge = new Cat("Smudge", 5);
এটি আসলে অভ্যন্তরীণভাবে ঘটেছে:

this.name = "Smudge";
this.age = 5;
এবং কনস্ট্রাক্টরের কাছে পাঠানো আর্গুমেন্টের মানগুলি স্মাজ অবজেক্টের জন্য বরাদ্দ করা হয়েছিল (এই ক্ষেত্রে এটিই বোঝায়)। প্রকৃতপক্ষে, এমনকি যদি আপনি একটি ক্লাসে কোনো কনস্ট্রাক্টর ঘোষণা না করেন, তবুও এটি একটি কনস্ট্রাক্টরকে কল করবে! কিন্তু কিভাবে সম্ভব? О_О কারণ, সমস্ত জাভা ক্লাসে একটি তথাকথিত ডিফল্ট কনস্ট্রাক্টর থাকে। এটি কোনো আর্গুমেন্ট নেয় না, কিন্তু আপনি যখনই কোনো ক্লাসের কোনো অবজেক্ট তৈরি করেন তখন এটিকে আহ্বান করা হয়।

public class Cat {

    public static void main(String[] args) {

        Cat smudge = new Cat(); // The default constructor is invoked here
    }
}
প্রথম নজরে, এটি সুস্পষ্ট নাও হতে পারে। আমরা একটি বস্তু তৈরি করেছি, তাই কি? কন্সট্রাকটর এখানে কিছু করছে কোথায়? এটি দেখতে, আসুন স্পষ্টভাবে ক্যাট শ্রেণীর জন্য একটি খালি কনস্ট্রাক্টর লিখুন। ভিতরে, এটি, আমরা কনসোলে কিছু বাক্যাংশ আউটপুট করব। যদি বাক্যাংশটি প্রদর্শিত হয়, তাহলে কনস্ট্রাক্টরকে আহ্বান করা হয়েছিল।

public class Cat {

    public Cat() {
        System.out.println("A cat has been created!");
    }

    public static void main(String[] args) {

        Cat smudge = new Cat(); // The default constructor is invoked here
    }
}
কনসোল আউটপুট: একটি বিড়াল তৈরি করা হয়েছে! নিশ্চিতকরণ আছে. ডিফল্ট কনস্ট্রাক্টর সবসময় আপনার ক্লাসে অদৃশ্যভাবে উপস্থিত থাকে। তবে এ সম্পর্কে আপনার আরও একটি বিষয় জানতে হবে। আপনি আর্গুমেন্ট সহ একটি কনস্ট্রাক্টর তৈরি করার পরে ডিফল্ট কনস্ট্রাক্টর একটি ক্লাস থেকে মুছে ফেলা হয়। আসলে, আমরা ইতিমধ্যে উপরে এর প্রমাণ দেখেছি। এটি এই কোডে ছিল:

public class Cat {

    String name;
    int age;

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {

        Cat smudge = new Cat(); // Error!
    }
}
আমরা নাম এবং বয়স ছাড়া একটি বিড়াল তৈরি করতে পারিনি, কারণ আমরা স্ট্রিং এবং int প্যারামিটার সহ একটি ক্যাট কনস্ট্রাক্টর ঘোষণা করেছি। এর ফলে ডিফল্ট কনস্ট্রাক্টর ক্লাস থেকে অবিলম্বে অদৃশ্য হয়ে যায়। তাই মনে রাখবেন যে যদি আপনার ক্লাসে নো-আর্গুমেন্ট কনস্ট্রাক্টর সহ বেশ কয়েকটি কনস্ট্রাক্টরের প্রয়োজন হয় তবে আপনাকে এটি আলাদাভাবে ঘোষণা করতে হবে। আমাদের ক্লিনিক ভাল কাজ করতে এবং গৃহহীন বিড়ালছানাদের সাহায্য করতে চায় যাদের নাম এবং বয়স অজানা। তারপর আমাদের কোড এই মত হওয়া উচিত:

public class Cat {

    String name;
    int age;

    // For cats with owners
    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // For street cats
    public Cat() {
    }

    public static void main(String[] args) {
        
        Cat smudge = new Cat("Smudge", 5);
        Cat streetCat = new Cat();
    }
}
এখন যেহেতু আমরা একটি স্পষ্ট ডিফল্ট কনস্ট্রাক্টর নির্দিষ্ট করেছি, আমরা উভয় ধরনের বিড়াল তৈরি করতে পারি। কনস্ট্রাক্টরে, আপনি সরাসরি মান নির্ধারণ করতে পারেন। আপনি সবসময় যুক্তি থেকে তাদের নিতে হবে না. উদাহরণস্বরূপ, আমরা একটি টেমপ্লেট হিসাবে "রাস্তার বিড়াল নম্বর <count>" ব্যবহার করে ডাটাবেসের সমস্ত রাস্তার বিড়ালকে লেবেল করতে পারি। :

public class Cat {

    String name;
    int age;

    static int count = 0;

    public Cat() {
        count++;
        this.name = "Street cat No. " + count;
    }

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {

        Cat streetCat1 = new Cat();
        Cat streetCat2 = new Cat();
        System.out.println(streetCat1.name);
        System.out.println(streetCat2.name);
    }
}
আমাদের একটি গণনা পরিবর্তনশীল আছে, যা আমাদের রাস্তার বিড়াল গণনা করে। প্রতিবার ডিফল্ট কনস্ট্রাক্টর কার্যকর করা হলে, আমরা গণনা 1 দ্বারা বৃদ্ধি করি এবং এই সংখ্যাটিকে বিড়ালের নামের সাথে সংযুক্ত করি। কনস্ট্রাক্টরদের জন্য আর্গুমেন্টের ক্রম খুবই গুরুত্বপূর্ণ। আসুন নাম এবং বয়সের আর্গুমেন্টগুলি অদলবদল করি যা আমাদের কনস্ট্রাক্টরকে দেওয়া হয়েছে।

public class Cat {

    String name;
    int age;

    public Cat(int age, String name) {
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {

        Cat smudge = new Cat("Smudge", 10); // Error!
    }
}
আমরা একটি ত্রুটি পেয়েছি! কনস্ট্রাক্টর স্পষ্টভাবে উল্লেখ করে যে যখন একটি বিড়াল বস্তু তৈরি করা হয়, তখন এই ক্রমে একটি সংখ্যা এবং একটি স্ট্রিং পাস করতে হবে। সুতরাং, আমাদের কোড কাজ করে না. আপনার নিজের ক্লাস ঘোষণা করার সময় এই নিয়মটি মনে রাখবেন এবং সম্মান করতে ভুলবেন না:

public Cat(String name, int age) {
    this.name = name;
    this.age = age;
}

public Cat(int age, String name) {
    this.age = age;
    this.name = name;
}
এই দুটি সম্পূর্ণ ভিন্ন নির্মাণকারী! এখন, উপাদান সম্পর্কে আপনার বোধগম্যতাকে দৃঢ় করতে কয়েকটি কাজ সম্পূর্ণ করুন। :)
  1. পুরাকীর্তি যাদুঘর।

    আপনার কাজ হল একটি আর্টিফ্যাক্ট ক্লাস ডিজাইন করা ।
    জাদুঘরে তিন ধরনের নিদর্শন রাখা আছে।
    আমরা জাদুঘর দ্বারা নির্ধারিত ক্রমিক নম্বর ছাড়া প্রথম প্রকার সম্পর্কে কিছুই জানি না (উদাহরণস্বরূপ: 212121)।
    দ্বিতীয় প্রকারের জন্য, আমরা সিরিয়াল নম্বর এবং এটি তৈরি করা সংস্কৃতি জানি (উদাহরণস্বরূপ: 212121, "Aztecs")।
    তৃতীয় প্রকারের জন্য, আমরা সিরিয়াল নম্বর, যে সংস্কৃতি এটি তৈরি করেছে এবং যে শতাব্দীতে এটি তৈরি হয়েছিল তা জানি (উদাহরণস্বরূপ: 212121, "অ্যাজটেকস", 12)।

    একটি আর্টিফ্যাক্ট ক্লাস তৈরি করুন যা যাদুঘরে রক্ষিত পুরাকীর্তি বর্ণনা করে এবং ক্লাসের জন্য প্রয়োজনীয় কনস্ট্রাক্টরদের সেট লিখুন। তারপর, main() পদ্ধতিতে, প্রতিটি ধরণের একটি আর্টিফ্যাক্ট তৈরি করুন।

    
    public class Artifact {
        
        // Write your code here
    
        public static void main(String[] args) {
            // Write your code here
        }
    }
    
  2. ডেটিং ওয়েবসাইট

    আসুন একটি ডেটিং ওয়েবসাইটের জন্য একটি ব্যবহারকারী ডাটাবেস তৈরি করি।
    কিন্তু এখানে সমস্যা: আপনি আর্গুমেন্টের প্রয়োজনীয় ক্রম ভুলে গেছেন, এবং কোন প্রযুক্তিগত ডকুমেন্টেশন উপলব্ধ নেই।
    একটি ইউজার ক্লাস ডিজাইন করুন, যাতে নিম্নলিখিত ক্ষেত্রগুলি থাকবে: নাম ( স্ট্রিং ), বয়স ( ছোট ) এবং উচ্চতা ( int )।
    উপযুক্ত সংখ্যক কনস্ট্রাক্টর তৈরি করুন, যাতে নাম, বয়স এবং উচ্চতা যেকোনো ক্রমে উল্লেখ করা যায়।

    
    public class User {
    
        String name;
        short age;
        int height;
    
        // Write your code here
    
        public static void main(String[] args) {
            
        }
    }
    
আপনি যা শিখেছেন তা শক্তিশালী করার জন্য, আমরা আপনাকে আমাদের জাভা কোর্স থেকে একটি ভিডিও পাঠ দেখার পরামর্শ দিই
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION