CodeGym /جاوا بلاگ /Random-SD /جاوا ڪلاس: پنهنجا پنهنجا ڪلاس لکڻ، تعمير ڪندڙ
John Squirrels
سطح
San Francisco

جاوا ڪلاس: پنهنجا پنهنجا ڪلاس لکڻ، تعمير ڪندڙ

گروپ ۾ شايع ٿيل
سلام اڄ اسان جاوا ۾ ڪلاس بابت ڳالهائينداسين. توھان چئي سگھوٿا ته ڪلاس جاوا پروگرامنگ جو بنياد بڻجن ٿا. جڏهن توهان هڪ پروگرامر بڻجي ويندا آهيو، تقريبن توهان جي سڄي نوڪري توهان جي پنهنجي ڪلاس لکندي هوندي جنهن ۾ مختلف ڪم آهن. اچو ته ڏسو ته ان جو مطلب ڇا آهي ۽ اهو ڪيئن ڪم ڪري ٿو. :) جيئن توهان ڄاڻو ٿا، جاوا هڪ اعتراض تي مبني پروگرامنگ ٻولي آهي. سڀئي پروگرام انهن شين تي مشتمل آهن جيڪي ڪنهن نه ڪنهن طريقي سان هڪ ٻئي سان لاڳاپيل آهن. ھڪڙو طبقو آھي، بنيادي طور تي، ھڪڙي شيء لاء ھڪڙو نمونو. اهو طئي ڪري ٿو ته ڪهڙي شيءِ نظر ايندي ۽ ان جا ڪهڙا ڪم هوندا. هر شئي ڪنهن نه ڪنهن طبقي جو اعتراض آهي. هن تمام سادي مثال تي غور ڪريو:
public class Cat {

    String name;
    int age;

}
اچو ته چئو ته اسان هڪ پروگرام لکي رهيا آهيون جنهن ۾ ٻليون شامل آهن ڪجهه سببن لاءِ (مثال طور، اسان وٽ هڪ جانورن جي ڪلينڪ آهي جيڪا آن لائن اڪائونٽ تائين رسائي فراهم ڪري ٿي). اسان هڪ Cat ڪلاس ٺاهيو آهي، ۽ ان ۾ ٻه متغيرات جو اعلان ڪيو آهي: اسٽرنگ جو نالو ۽ 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);
    }

}
هتي اهو ڪيئن ڪم ڪندو آهي! اسان هڪ ٻلي ٺاهي، ان کي نالو ۽ عمر ڏيو، ۽ اهو سڀ ڪجهه ڪنسول تي ڏيکاري. ڪيڪ جو ٽُڪر. :) گهڻو ڪري نه، طبقن شين ۽ واقعن کي حقيقي دنيا ۾ بيان ڪن ٿا. هڪ ٻلي، هڪ ٽيبل، هڪ شخص، هڪ ٻرندڙ بولٽ، هڪ ڪتاب جو هڪ صفحو، هڪ ڦيٿي- توهان اهي سڀ شيون پنهنجي پروگرامن ۾ انفرادي طبقن کي استعمال ڪندي ٺاهيندا. هينئر لاءِ، اچو ته انهن متغيرن تي ڌيان ڏيون جن کي اسان ٻلي ڪلاس ۾ بيان ڪيو آهي. انهن کي سڏيو ويندو آهي فيلڊ، يا مثال متغير. انهن جو نالو واقعي اهو سڀ ڪجهه چوي ٿو. ٻلي طبقي جي هر مثال (يا اعتراض) ۾ اهي متغير هوندا. اسان جي ٺاهيل هر ٻلي جو پنهنجو نالو متغير ۽ ان جي پنهنجي عمر متغير هوندي . اھو سمجھ ۾ اچي ٿو- اھو بنيادي طور تي آھي اھو ڪيئن آھي حقيقي ٻلين سان. :) instance variables کان علاوه، اتي پڻ طبقاتي متغير (static variables) آھن. اچو ته اسان جو مثال ختم ڪريون:
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 هاڻي اسان جي ڪلاس ۾ ڳڻپ نالي هڪ نئون variable آهي. اهو ٺاهيل ڪتن کي ڳڻڻ جو ذميوار آهي. هر دفعي جڏهن اسان مکيه طريقي سان ڪيٽ ٺاهيندا آهيون ، اسان هن متغير کي 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();

    }
}
چڪاس ڪريو! هاڻي اسان جو طبقو ٻلي وانگر وڌيڪ ويجهو آهي! هاڻي اسان وٽ صرف هڪ ٻلي ناهي جنهن جو نالو آهي ("سمج") ۽ هڪ عمر (3). هو ميائو ۽ جمپ به چئي سگهي ٿو! ان ”ڪارڪردگي“ کان سواءِ ڪهڙي ٻلي هوندي؟ :) اسان هڪ مخصوص اعتراض (smudge) وٺي رهيا آهيون ۽ ان کي sayMeow() ۽ jump() طريقن کي سڏيندا آهيون. اچو ته ڪنسول کي ڏسو: ميوو! ڇڪڻ! هڪ حقيقي ٻلي! :)

پنهنجون ڪلاسون ٺاهڻ. خلاصو

مستقبل ۾، توهان کي پنهنجو ڪلاس لکڻو پوندو. توهان کي ڇا ڏسڻ جي ضرورت آهي جڏهن توهان انهن کي لکندا آهيو؟ جيڪڏهن اسان متغيرن جي باري ۾ ڳالهائي رهيا آهيون، ته پوء توهان کي استعمال ڪرڻ جي ضرورت پوندي جنهن کي تجزيه سڏيو ويندو آهي. Abstraction اعتراض تي مبني پروگرامنگ جي چئن بنيادي اصولن مان هڪ آهي. ان جو مطلب آهي هڪ شيءِ جي سڀ کان اهم ۽ اهم خاصيتن کي ڪڍڻ، ۽ ان جي ابتڙ، انهن کي هڪ طرف اڇلائڻ جيڪي معمولي يا غير اهم آهن. مثال طور، اچو ته ڪمپني جي ملازمن لاء هڪ فائلنگ ڪابينا ٺاهي. ملازم شيون ٺاهڻ لاء، اسان هڪ ملازم ڪلاس لکيو آهي. اسان جي ڪمپني جي فائلنگ ڪابينا لاءِ ملازم جا اهم بيان ڪندڙ ڪهڙا خاصيتون آهن؟ نالو، ڄمڻ جي تاريخ، 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;
۽ دليلن جا قدر جيڪي تعمير ڪندڙ کي منظور ڪيا ويا آھن سمج اعتراض کي لڳايو ويو آھي (اھو اھو آھي جيڪو ھن معاملي ۾ اشارو ڪري ٿو). حقيقت ۾، جيتوڻيڪ جيڪڏهن توهان ڪنهن طبقي ۾ ڪنهن به تعمير ڪندڙ جو اعلان نه ڪيو، اهو اڃا تائين هڪ تعمير ڪندڙ سڏيندو! پر اهو ڪيئن ممڪن آهي؟ О_O ڇاڪاڻ ته، سڀني جاوا طبقن ۾ ھڪڙو ڊفالٽ ٺاھيندڙ آھي. اهو ڪو به دليل نه وٺندو آهي، پر اهو هر وقت سڏيو ويندو آهي جڏهن توهان ڪنهن به طبقي جو ڪو اعتراض ٺاهيو.
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!
    }
}
اسان نالي ۽ عمر کان سواءِ ٻلي نه ٺاهي سگهياسين، ڇاڪاڻ ته اسان هڪ ٻلي ٺاهيندڙ کي اسٽرنگ ۽ انٽ پيراميٽر سان قرار ڏنو آهي. اهو ڊفالٽ تعمير ڪندڙ کي فوري طور تي ڪلاس مان غائب ٿي ويو. تنهن ڪري ياد رکڻ جي پڪ ڪريو ته جيڪڏهن توهان کي پنهنجي ڪلاس ۾ ڪيترن ئي تعمير ڪندڙن جي ضرورت آهي، جنهن ۾ هڪ غير دليل سازي شامل آهي، توهان کي اهو الڳ الڳ اعلان ڪرڻو پوندو. اسان جي ڪلينڪ چڱا ڪم ڪرڻ چاهي ٿي ۽ بي گهر ٻلين جي مدد ڪرڻ چاهي ٿي جن جا نالا ۽ عمر نامعلوم آهن. پوء اسان جو ڪوڊ هن طرح ڏسڻ گهرجي:
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();
    }
}
ھاڻي ته اسان ھڪڙي واضح ڊفالٽ ٺاھيندڙ کي بيان ڪيو آھي، اسان ٻن قسمن جا ڪيٽ ٺاھي سگھون ٿا. تعمير ڪندڙ ۾، توھان سڌو سنئون قدر تفويض ڪري سگھو ٿا. توهان کي هميشه انهن کي دليلن کان وٺڻ جي ضرورت ناهي. مثال طور، اسان ڊيٽابيس ۾ "Street Cat No. <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، "Aztecs"، 12).

    ھڪڙو آرٽيڪل ڪلاس ٺاھيو جيڪو عجائب گھر ۾ رکيل نوادرات کي بيان ڪري، ۽ ڪلاس لاء ٺاھيندڙن جو گھربل سيٽ لکو. پوء، مکيه () طريقي ۾، هر قسم جي ھڪڙي نموني ٺاھيو.

    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