CodeGym /جاوا بلاگ /Random-UR /جاوا کلاسز: اپنی کلاسیں لکھنا، کنسٹرکٹرز
John Squirrels
سطح
San Francisco

جاوا کلاسز: اپنی کلاسیں لکھنا، کنسٹرکٹرز

گروپ میں شائع ہوا۔
ہائے! آج ہم جاوا میں کلاسز کے بارے میں بات کریں گے۔ آپ کہہ سکتے ہیں کہ کلاسیں جاوا پروگرامنگ کا سنگ بنیاد ہیں۔ جب آپ پروگرامر بن جاتے ہیں، تو تقریباً آپ کا پورا کام آپ کی اپنی کلاسیں لکھ رہا ہو گا جس میں مختلف فنکشنز ہوں گے۔ آئیے دیکھتے ہیں کہ اس کا کیا مطلب ہے اور یہ کیسے کام کرتا ہے۔ :) جیسا کہ آپ جانتے ہیں، جاوا ایک آبجیکٹ پر مبنی پروگرامنگ زبان ہے۔ تمام پروگرام ایسی اشیاء پر مشتمل ہوتے ہیں جو کسی نہ کسی طرح ایک دوسرے سے متعلق ہوتے ہیں۔ ایک کلاس، بنیادی طور پر، کسی چیز کے لیے ایک ٹیمپلیٹ ہے۔ یہ طے کرتا ہے کہ آبجیکٹ کیسا نظر آئے گا اور اس کے کیا افعال ہوں گے۔ ہر شے کسی نہ کسی طبقے کی آبجیکٹ ہے۔ اس بہت سادہ مثال پر غور کریں:
public class Cat {

    String name;
    int age;

}
ہم کہتے ہیں کہ ہم ایک پروگرام لکھ رہے ہیں جس میں کسی وجہ سے بلیاں شامل ہیں (مثال کے طور پر، ہمارے پاس ایک ویٹرنری کلینک ہے جو آن لائن اکاؤنٹ تک رسائی فراہم کرتا ہے)۔ ہم نے کیٹ کلاس بنائی ہے، اور اس میں دو متغیرات کا اعلان کیا ہے: اسٹرنگ کا نام اور int age ۔ یہ ممبر متغیرات کو فیلڈز کہا جاتا ہے۔ بنیادی طور پر، یہ ان تمام بلیوں کے لیے ایک ٹیمپلیٹ ہے جو ہم مستقبل میں بنائیں گے۔ ہر بلی آبجیکٹ کے دو متغیر ہوں گے: ایک نام اور ایک عمر۔
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);
    }

}
یہاں یہ کیسے کام کرتا ہے! ہم ایک بلی بناتے ہیں، اسے ایک نام اور عمر دیتے ہیں، اور یہ سب کنسول پر ڈسپلے کرتے ہیں۔ بہت آسان. :) اکثر نہیں، کلاسیں حقیقی دنیا میں چیزوں اور مظاہر کو بیان کرتی ہیں۔ ایک بلی، ایک میز، ایک شخص، ایک بجلی کا بولٹ، ایک کتاب کا ایک صفحہ، ایک وہیل—آپ انفرادی کلاسوں کا استعمال کرتے ہوئے اپنے پروگراموں میں یہ سب چیزیں بنائیں گے۔ ابھی کے لیے، آئیے ان متغیرات پر توجہ مرکوز کریں جن کا ہم نے Cat کلاس میں اعلان کیا تھا۔ انہیں فیلڈز، یا مثال کے متغیر کہا جاتا ہے۔ ان کا نام واقعی یہ سب کہتا ہے۔ کیٹ کلاس کی ہر مثال (یا آبجیکٹ) میں یہ متغیرات ہوں گے۔ ہر بلی جو ہم تخلیق کرتے ہیں اس کا اپنا نام متغیر اور اس کی اپنی عمر کا متغیر ہوگا۔ یہ سمجھ میں آتا ہے - یہ بنیادی طور پر اصلی بلیوں کے ساتھ کیسا ہوتا ہے۔ :) مثال کے متغیر کے علاوہ، کلاس متغیرات (جامد متغیرات) بھی ہیں. آئیے اپنی مثال ختم کریں:
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 تک بڑھاتے ہیں۔ اس کا مطلب ہے کہ اس کا تعلق طبقے سے ہے، کلاس کے کسی مخصوص شے سے نہیں۔ جو یقیناً معنی خیز ہے: ہر بلی کا نام اس مخصوص بلی سے تعلق رکھتا ہے، لیکن ہمیں ایک بلی کاؤنٹر کی ضرورت ہے جو ان سب پر لاگو ہو۔ یہ بالکل وہی ہے جو کلیدی لفظ static پورا کرتا ہے: یہ تمام بلیوں کے لیے شمار متغیر کو واحد متغیر بنا دیتا ہے۔ نوٹ: جب ہم متغیر کو ظاہر کرتے ہیں، تو ہم 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() طریقوں کو بلا رہے ہیں۔ آئیے کنسول کو دیکھیں: میانو! اچھال! ایک حقیقی بلی! :)

اپنی کلاسیں بنانا۔ تجری

مستقبل میں، آپ کو اپنی کلاسیں خود لکھنا ہوں گی۔ جب آپ انہیں لکھتے ہیں تو آپ کو کس چیز پر نظر رکھنے کی ضرورت ہے؟ اگر ہم متغیرات کے بارے میں بات کر رہے ہیں، تو آپ کو تجرید نامی چیز کا استعمال کرنے کی ضرورت ہوگی۔ خلاصہ آبجیکٹ اورینٹڈ پروگرامنگ کے چار بنیادی اصولوں میں سے ایک ہے۔ اس کا مطلب ہے کسی چیز کی سب سے اہم اور نمایاں خصوصیات کو نکالنا، اور اس کے برعکس، ان چیزوں کو ایک طرف رکھ دینا جو معمولی یا غیر اہم ہیں۔ مثال کے طور پر، آئیے کمپنی کے ملازمین کے لیے فائلنگ کیبنٹ بنائیں۔ ملازم کی اشیاء بنانے کے لیے، ہم نے ملازم کی کلاس لکھی ہے۔ ہماری کمپنی کی فائلنگ کیبنٹ کے لیے ملازم کی کون سی خصوصیات اہم ہیں؟ نام، تاریخ پیدائش، SSN، اور ملازم کی شناخت۔ لیکن اس بات کا امکان نہیں ہے کہ ہمیں کمپنی کے ملازم کے ریکارڈ کے لیے ملازم کی قد، آنکھوں کا رنگ، یا بالوں کا رنگ درکار ہوگا۔ کمپنیوں کو اس معلومات کی ضرورت نہیں ہے۔ لہذا، ایمپلائی کلاس میں، ہم درج ذیل متغیرات کا اعلان کرتے ہیں: اسٹرنگ کا نام ، int عمر ، int socialSecurityNumber ، اور int employeeId ۔ اور ہم غیر ضروری معلومات (جیسے آنکھوں کا رنگ) چھوڑ دیتے ہیں۔ دوسرے لفظوں میں، ہم ایک تجرید تخلیق کرتے ہیں۔ تاہم، اگر ہم ماڈلنگ ایجنسیوں کے لیے فائلنگ کیبنٹ بنا رہے ہیں، تو صورتحال ڈرامائی طور پر بدل جاتی ہے۔ ماڈل کی اونچائی، آنکھوں کا رنگ، اور بالوں کا رنگ اہم خصوصیات ہیں، لیکن اس کا SSN ہمارے لیے بالکل غیر متعلق ہے۔ لہذا، ماڈل کلاس میں ، ہمیں مندرجہ ذیل متغیرات بنانے کی ضرورت ہے: String height ، String hair ، String eyes ۔ اس طرح تجرید کام کرتا ہے - یہ آسان ہے! :)

کنسٹرکٹرز

آئیے اپنی بلی کی مثال پر واپس جائیں۔
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);
    }
}
بنیادی طور پر، کنسٹرکٹر کلاس کی اشیاء کے لیے ایک ٹیمپلیٹ ہوتا ہے۔ اس صورت میں، ہم اشارہ کرتے ہیں کہ دو دلائل، ایک String اور ایک 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)۔

    ایک آرٹفیکٹ کلاس بنائیں جو میوزیم میں رکھے ہوئے نوادرات کو بیان کرے، اور کلاس کے لیے کنسٹرکٹرز کا مطلوبہ سیٹ لکھیں۔ پھر، 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