جاوا میں کنسٹرکٹر کیا ہے اور آپ اسے کیسے استعمال کرتے ہیں؟

جاوا میں کنسٹرکٹر کیا ہے اور آپ اسے کیسے استعمال کرتے ہیں؟

آبجیکٹ پر مبنی پروگرامنگ میں ، کنسٹرکٹر ایک خاص فنکشن ہوتا ہے جسے آپ کوئی شے بنانے کے لیے کہتے ہیں۔ تعمیر کنندگان میں کئی منفرد خصوصیات ہیں جو انہیں کام کرنے کے قابل بناتی ہیں۔





جاوا میں ، آپ کسی کنسٹرکٹر کو اس کی کلاس کے نام دیتے ہیں۔ ایک کنسٹرکٹر ایک طریقہ ہے ، جس کی کلاس میں وضاحت ہوتی ہے۔ جاوا کنسٹرکٹر متبادل سلوک فراہم کرنے کے لیے اوورلوڈنگ کا استعمال کرسکتے ہیں۔ جاوا میں کنسٹرکٹر کوڈ کو دوبارہ استعمال کرنے کے لیے وراثت کا استعمال بھی کر سکتے ہیں۔





ویسے بھی آپ کو کنسٹرکٹرز کی ضرورت کیوں ہے؟

کنسٹرکٹر آبجیکٹ پر مبنی پروگرامنگ کا بنیادی مرکز ہیں ، اور جاوا اس سے مستثنیٰ نہیں ہے۔ یہ مثال ظاہر کرتی ہے کہ آپ کس طرح ایک ڈیٹا پراپرٹی اور ایک طریقہ کے ساتھ بنیادی سرکل کلاس کی وضاحت کرسکتے ہیں۔





public class Circle {
public double radius;
public double area() { return 3.14159 * radius * radius; }
}

پھر آپ اس کلاس کی ایک مثال بنا سکتے ہیں اور اس کے ساتھ بات چیت کر سکتے ہیں:

Circle c = new Circle();
c.radius = 2;
System.out.println(c.area()); // 12.56636

لیکن یہ اس سے کم آسان اور مضبوط ہے۔ ڈیٹا کو سمیٹنا ، اسے غیر مجاز رسائی سے محفوظ رکھنا آبجیکٹ پر مبنی اچھا عمل ہے:



public class Circle {
private double radius;
public double area() { return 3.14159 * radius * radius; }
public void setRadius(double r) { radius = r; }
}

اب کالنگ کوڈ استعمال کر سکتا ہے۔ سیٹ ریڈیئس طریقہ اور اس کے نفاذ کی تفصیلات کے بارے میں فکر کرنے کی ضرورت نہیں:

ایک اضافی صفحہ کو حذف کرنے کا طریقہ
Circle c = new Circle();
c.setRadius(2);

جب آپ کسی چیز کو بناتے ہیں تو کنسٹرکٹر اس سے بھی بہتر طریقہ فراہم کرتے ہیں۔ وہ اکثر خواص کے آغاز کے لیے استعمال ہوتے ہیں ، جیسے کہ رداس یہاں





سادہ تعمیرات کی مثالیں

سب سے بنیادی کنسٹرکٹر وہ ہے جس میں کوئی دلیل نہیں ہے ، جو کچھ نہیں کرتا:

public class Circle {
public Circle() {}
}

بھی دیکھو: جاوا میں کلاسز بنانے کا طریقہ سیکھیں۔





اگر آپ کنسٹرکٹر کی وضاحت نہیں کرتے ہیں تو ، جاوا ایک ڈیفالٹ فراہم کرے گا جو اسی طرح برتاؤ کرے گا۔

ایک دو چیزیں نوٹ کریں:

  1. کنسٹرکٹر کا نام کلاس کے نام سے مماثل ہے۔
  2. یہ کنسٹرکٹر استعمال کرتا ہے۔ عوام رسائی ترمیم کرنے والا ، لہذا کوئی دوسرا کوڈ اسے کال کرسکتا ہے۔
  3. ایک کنسٹرکٹر میں واپسی کی قسم شامل نہیں ہے۔ دوسرے طریقوں کے برعکس ، کنسٹرکٹر کوئی قیمت واپس نہیں کر سکتے۔

کنسٹرکٹر عام طور پر کسی قسم کی ابتداء کرتے ہیں۔ نوٹ کریں کہ مذکورہ کوڈ رداس کی قدر کو شروع نہیں کرتا ہے۔ اس صورت میں ، زبان خود بخود اسے صفر پر سیٹ کر دے گی۔ یہ کلاس توقع کرتی ہے کہ صارف استعمال کرے گا۔ سیٹ ریڈیئس () . 0 سے زیادہ مفید ڈیفالٹ استعمال کرنے کے لیے ، آپ اسے کنسٹرکٹر کے اندر تفویض کر سکتے ہیں:

public class Circle {
public Circle() { radius = 1; }
}

اس طبقے کے ساتھ بنائے گئے حلقوں میں کم از کم اب ایک حقیقی علاقہ ہوگا! کال کرنے والا اب بھی استعمال کر سکتا ہے۔ سیٹ ریڈیئس () 1 کے علاوہ ایک رداس فراہم کرنے کے لیے۔

public class Circle {
public Circle(double r) { radius = r; }
}

اب آپ پیدائش سے ہی مخصوص رداس کے ساتھ حلقے بنا سکتے ہیں:

انسٹاگرام چیٹ کا رنگ تبدیل کرنے کا طریقہ
Circle c = new Circle(2);
System.out.println(c.area()); // 12.56636

یہ کنسٹرکٹرز کے لیے بہت عام استعمال ہے۔ آپ اکثر ان کا استعمال متغیرات کو پیرامیٹر ویلیوز میں شروع کرنے کے لیے کریں گے۔

کنسٹرکٹر اوورلوڈنگ۔

آپ کلاس کی تعریف میں ایک سے زیادہ کنسٹرکٹر کی وضاحت کرسکتے ہیں:

public Circle() { radius = 1; }
public Circle(double r) { radius = r; }

یہ کالنگ کوڈ کو ایک انتخاب فراہم کرتا ہے کہ کس طرح اشیاء کی تعمیر کی جائے:

Circle c1 = new Circle(2);
Circle c2 = new Circle();
System.out.println(c1.area() + ', ' + c2.area()); // 12.56636, 3.14159

قدرے پیچیدہ حلقے کے ساتھ ، آپ مزید دلچسپ تعمیر کنندگان کو تلاش کر سکتے ہیں۔ یہ ورژن اپنی پوزیشن محفوظ کرتا ہے:

public class Circle {
public double x, y, radius;
public Circle() { radius = r; }
public Circle(double r) { radius = r; }
public Circle(double x, double y, double r) {
this.x = x; this.y = y; radius = r;
}

public double area() { return 3.14159 * radius * radius; }
}

اب آپ ایک حلقہ بنا سکتے ہیں جس میں کوئی دلیل نہیں ، ایک ہی رداس ، یا رداس کے ساتھ ساتھ x اور y نقاط۔ یہ ایک ہی قسم کی اوورلوڈنگ ہے جسے جاوا کسی بھی طریقے کے لیے سپورٹ کرتا ہے۔

کنسٹرکٹر زنجیر

ایک حلقہ بنانے کے بارے میں ، دوسرے کی بنیاد پر؟ اس سے ہمیں حلقوں کو آسانی سے کاپی کرنے کی صلاحیت ملے گی۔ مندرجہ ذیل بلاک کا مشاہدہ کریں:

public Circle(Circle c) {
this.x = c.x;
this.y = c.y;
this.radius = c.radius;
}

یہ کام کرے گا ، لیکن یہ کچھ کوڈ کو غیر ضروری طور پر دہراتا ہے۔ چونکہ سرکل کلاس میں پہلے سے ہی ایک کنسٹرکٹر موجود ہے جو انفرادی خصوصیات کو سنبھالتا ہے ، لہذا آپ اسے استعمال کرکے کال کرسکتے ہیں۔ یہ مطلوبہ الفاظ:

public Circle(Circle c) {
this(c.x, c.y, c.radius);
}

یہ کنسٹرکٹر زنجیر کی ایک شکل ہے ، ایک کنسٹرکٹر کو دوسرے سے بلا رہا ہے۔ یہ کم کوڈ کا استعمال کرتا ہے اور آپریشن کو ڈپلیکیٹ کرنے کے بجائے اسے مرکزی بنانے میں مدد کرتا ہے۔

پیرنٹ کنسٹرکٹر کو کال کرنا۔

کنسٹرکٹر زنجیر کی دوسری شکل اس وقت ہوتی ہے جب ایک کنسٹرکٹر اپنے والدین کی کلاس کے کنسٹرکٹر کو کال کرتا ہے۔ یہ یا تو واضح یا مضمر ہو سکتا ہے۔ پیرنٹ کنسٹرکٹر کو واضح طور پر کال کرنے کے لیے ، سپر مطلوبہ الفاظ:

super(x, y);

سرپل کے والدین کے طور پر کام کرنے والی ایک شکل کلاس کا تصور کریں:

public class Shape {
double x, y;
public Shape(double _x, double _y) { x = _x; y = _y; }
}

یہ تمام شکلوں کے لیے مشترکہ پوزیشننگ کو سنبھالتا ہے کیونکہ یہ وہ فعالیت ہے جو وہ سب شیئر کرتے ہیں۔ اب سرکل کلاس اپنے والدین کو پوزیشن سنبھالنے کی ذمہ داری دے سکتی ہے۔

public class Circle extends Shape {
double radius;
public Circle(double r) { super(0, 0); radius = r; }
public Circle(double x, double y, double r) {
super(x, y);
radius = r;
}
}

سپر کلاس کی تعمیر ایک بہت اہم پہلو ہے۔ جاوا میں وراثت . اگر آپ واضح طور پر کال نہیں کرتے ہیں تو زبان اسے بطور ڈیفالٹ نافذ کرتی ہے۔ سپر آپ کے کنسٹرکٹرز میں

کنسٹرکٹرز پر ترمیم کرنے والوں تک رسائی حاصل کریں۔

کنسٹرکٹر اپنے دستخط میں ایک ایکسیس موڈیفائر شامل کر سکتے ہیں۔ دوسرے طریقوں کی طرح ، یہ وضاحت کرتا ہے کہ کس قسم کا کالر کنسٹرکٹر تک رسائی حاصل کرسکتا ہے:

public class Test {
private static Test uniqueInstance = new Test();
private Test() { }
public static Test getInstance() {
return uniqueInstance;
}
}

یہ ایک زیادہ پیچیدہ مثال ہے ، لہذا اسے سمجھنے کا خیال رکھیں:

  • کلاس خلاصہ نہیں ہے ، لہذا اس سے فوری طور پر ممکن ہے۔
  • کنسٹرکٹر نجی ہے لہذا صرف یہ کلاس ہی ایک نئی مثال بنا سکتی ہے۔
  • ایک مستحکم جائیداد اور طریقہ کے ذریعے ، کلاس کال کرنے والوں کے سامنے اپنی ایک واحد ، منفرد مثال کو بے نقاب کرتی ہے۔

آبجیکٹ بنانے کے لیے جاوا میں کنسٹرکٹرز کا استعمال کریں۔

آبجیکٹ پر مبنی پروگرامنگ کے لیے کنسٹرکٹر بہت ضروری ہیں۔ وہ آپ کو اشیاء بنانے کی اجازت دیتے ہیں ، جو ضروری ہے!

جاوا میں ، کنسٹرکٹر دوسرے طریقوں کی طرح نظر آتے ہیں اور اسی طرح کام کرتے ہیں۔ آپ کو ڈیفالٹ کنسٹرکٹرز ، اوورلوڈنگ ، اور کنسٹرکٹر زنجیر کے آس پاس کے خصوصی اصولوں کو یاد رکھنا چاہئے۔ اگر کنسٹرکٹر آپ کے لیے نئے ہیں ، تو آپ جاوا کے دوسرے بنیادی تصورات کو پڑھنا چاہتے ہیں جو آپ کو شروع کرتے وقت سیکھنا چاہیے۔

بانٹیں بانٹیں ٹویٹ ای میل۔ 10 بنیادی جاوا تصورات جو آپ کو شروع کرتے وقت سیکھنے چاہئیں۔

چاہے آپ جی یو آئی لکھ رہے ہو ، سرور سائیڈ سافٹ ویئر تیار کر رہے ہو ، یا اینڈرائیڈ کا استعمال کرتے ہوئے موبائل ایپلی کیشن ، جاوا سیکھنا آپ کی اچھی خدمت کرے گا۔ شروع کرنے میں آپ کی مدد کے لیے جاوا کے کچھ بنیادی تصورات یہ ہیں۔

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • پروگرامنگ۔
  • جاوا
  • کوڈنگ ٹپس۔
مصنف کے بارے میں بوبی جیک۔(58 مضامین شائع ہوئے)

بوبی ایک ٹکنالوجی کا شوقین ہے جس نے دو دہائیوں تک سافٹ ویئر ڈویلپر کی حیثیت سے کام کیا۔ وہ گیمنگ کے بارے میں پرجوش ہے ، سوئچ پلیئر میگزین میں بطور ریویو ایڈیٹر کام کرتا ہے ، اور آن لائن پبلشنگ اور ویب ڈویلپمنٹ کے تمام پہلوؤں میں ڈوبا ہوا ہے۔

آئی فون سے میک تک تصاویر درآمد کریں۔
بوبی جیک سے مزید

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔