جاوا میں انٹرفیس کیا ہے اور اس کو کیسے نافذ کریں؟



یہ آرٹیکل جاوا انٹرفیس کی طرف ایک جامع نقطہ نظر اور اس کی فعالیت سے متعلق مختلف اقسام کی مثالوں میں آپ کی مدد کرے گا۔

' انٹرفیس جاوا پروگرامنگ زبان میں خلاصہ حاصل کرنے کی ایک اعلی درجے کی سطح ہے۔ جاوا انٹرفیس میں مدد ملتی ہے پیچیدگی میں کمی کوڈ میں اور آسان بنا دیتا ہے پڑھنے کی اہلیت . اس مضمون میں ، میں آپ کو جاوا انٹرفیس کو مندرجہ ذیل دستاویز کے ذریعے سمجھاؤں گا۔

جاوا انٹرفیس کیا ہے؟

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





java-interface

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



کلاس اور انٹرفیس کے درمیان مماثلت۔

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

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

ہمیں انٹرفیس کی ضرورت کیوں ہے؟

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



آئیے فرض کریں کہ ہمارے پاس دو طیارے ہیں ، ایک ہی لے جاسکتا ہے مسافروں، صرف ایک پوزیشن اب ، ہمیں ضرورت ہے وارث کارگو ہوائی جہاز اور مسافر طیارے دونوں کی خصوصیات۔ جاوا اس حل کی حمایت نہیں کرے گا کیوں کہ یہ ختم ہوجاتا ہے ابہام دونوں طیاروں کے درمیان

لیکن ، اگر آپ جاوا کو یہ محسوس کرکے یہ ممکن کر سکتے ہیں کہ یہ ایک ہوائی جہاز میں ورثے میں ہے اور لاگو کرنا دوسرے طیارے میں موجود طریقے۔ یہ ایک تجارتی ہوائی جہاز کی طرح ہے جو مسافروں اور سامان سامان لے جاتا ہے۔ انٹرفیس ایک بڑا طیارہ بنانے کے مترادف ہے جو ایک دوسرے کے اجزاء میں مداخلت کیے بغیر دونوں کام انجام دے سکتا ہے ، بجائے اس کے کہ اس سے طریقوں پر قرض لیا جائے۔ انٹرفیس کلاس۔

// کلاس A کوڈ

ایک سے زیادہ کلاس پیکیج A {باطل संदेश () {System.out.println ('ہیلو')}

// کلاس بی کوڈ

پیکیج متعدد کلاس B {باطل संदेश () {System.out.println ('ویلکم')}

کلاس سی کوڈ

پیکیج ایک سے زیادہ کلاس C توسیع A، B {// یہ جاوا کے ذریعہ قبول نہیں کیا جائے گا ، یہ غلطی پھینک دے گا اور کوڈ پر عمل نہیں ہوگا۔ عوامی جامد باطل اہم (سٹرنگ آرگس []) obj C اعتراض = نیا سی () اعتراض.msg ()}}

آؤٹ پٹ:

خرابی یہ خاص نقطہ نظر ایک استثنا پھینک دیتا ہے۔ جاوا متعدد وراثت کی حمایت نہیں کرتا ہے۔ اس غلطی کے طور پر جانا جاتا ہے ڈائمنڈ کا مسئلہ 

آئیے ہم انٹرفیس کا استعمال کرکے کوئی حل آزمائیں ، چائلڈ کلاسز طریقوں تک رسائی حاصل کرسکتے ہیں متعدد والدین ایک ہی وقت میں کلاس.

// انٹرفیس کوڈ

پیکیج MIS عوامی انٹرفیس حل {عوامی باطل ہیلو () عوامی باطل خیر مقدم ()}

// کلاس کوڈ

پیکیج ایم آئ ایس پبلک کلاس کلاس حل نافذ کرتا ہے {عوامی باطل ہیلو () ava java.lang.System.out.println ('ہیلو ورلڈ')} عوامی باطل ویلکم () ava java.lang.System.out.println ('ایڈورکا میں آپ کا استقبال ہے ')} عوامی جامد باطل مرکزی (سٹرنگ [] آرگس) {کلاس اے ایڈوریکا = نئی کلاس اے () ایڈورکا.ہیلو () ایڈورکا. ویلکم ()}}

آؤٹ پٹ:

ہیلو ورلڈ
ایڈوریکا میں خوش آمدید

جاوا انٹرفیس کا اعلان: نحو

انٹرفیس انٹرفیس_ نام {// مستقل فیلڈز کا اعلان // طریقوں کا اعلان () // طے شدہ طریقوں}

آئیے جاوا انٹرفیس کی ایک مثال دیکھیں

جاوا انٹرفیس کی مثال

آئیے جاوا انٹرفیس پر مبنی ایک سادہ کیلکولیٹر بنائیں۔

// انٹرفیس کوڈ

پیکیج بیس آوپیریشن پبلک انٹرفیس ریاضی {عوامی باطل اضافہ () عوامی باطل سب () عوامی باطل مل () عوامی باطل تقسیم () div

// کلاس کوڈ

پیکیج بیسوراسیکشن درآمد java.util. اسکینر پبلک کلاس کے طالب علم 1 نے ریاضی کا نفاذ کیا {@ اوور رائیڈ پبلک باطل ایڈ () اسکینر kb = نیا اسکینر (System.in) System.out.println ('اضافے کے ل any کوئی دو عدد اقدار درج کریں') a = kb.nextInt () int b = kb.nextInt () int s = a + b System.out.println ('+ + a +' اور '+ بی +' کا مجموعہ '+ s) ہے} @ عام عوامی باطل سب () {سکینر کے بی = نیا سکینر (سسٹم ڈاٹ) سسٹم آؤٹ.پریٹلن ('سبکیشن کو انجام دینے کے ل any کوئی دو عدد اقدار درج کریں') int a = kb.nextInt () int b = kb.nextInt () int s = ab System.out.println ('' a + 'اور' + b + 'کا فرق' + s ہے)} @ Oversride public void mul () an اسکینر kb = نیا اسکینر (System.in) System.out.println ('درج کریں کسی بھی دو عدد اعداد کی ضرب ') int a = kb.nextInt () int b = kb.nextInt () int s = a * b System.out.println (' '+' + 'اور' + بی + 'کا مصنوع' + ہے ') s)} @ اوور رائیڈ پبلک باطل ڈیو () {سکینر کے بی = نیا اسکینر (سسٹم ڈاٹ) سسٹم آؤٹ.پرنٹل ('کسی بھی دو عدد اقسام کی تقسیم درج کریں') int a = kb.nextInt () int b = kb.nextInt () int s = a / b System.out.p rintln ('+ a +' اور '+ b +' کا کواڈ ++ ہے)} عوامی جامد باطل اہم (سٹرنگ [] آرگس) {طالب علم 1 Edureka1 = نیا طالب علم 1 () Edureka1.add () Edureka1.sub () Edureka1۔ مول () Edureka1.div ()}

آؤٹ پٹ:

آگے بڑھتے ہوئے ، ہم جاوا انٹرفیس کو گھونسلا کرنا سیکھیں گے۔

جاوا انٹرفیس کا گھوںسلا

انٹرفیس گھوںسلا دوسرے کے اندر انٹرفیس کے اعلان کا عمل ہے موجودہ انٹرفیس یا ایک کے اندر انٹرفیس کا اعلان کرنا کلاس۔ نیسٹڈ انٹرفیس کو ایک کے طور پر بھی جانا جاتا ہے اندرونی انٹرفیس.

نیسٹڈ انٹرفیس تک رسائی حاصل نہیں کی جاسکتی ہے براہ راست . لہذا ، Nesting کو ان سے متعلق گروہ بندی کرکے نام کی جگہوں کو حل کرنے کے لئے نافذ کیا جاتا ہے انٹرفیسز اور کلاسز۔ اس طریقہ کار کے ذریعہ ،ہم فون کرسکتے ہیں اندرونی انٹرفیس کے ذریعے آؤٹ کلاس یا بیرونی انٹرفیس نام کے بعد a ڈاٹ (.) ، اور انٹرفیس کا نام۔

آئیے اس کی بنیاد پر کچھ مثالوں کی کوشش کریں انٹرفیس گھوںسلا. پہلے ، ہم گھوںسلا کرنے کی کوشش کریں جاوا انٹرفیس دوسرے کے اندر جاوا انٹرفیس جیسا کہ نیچے دکھایا گیا ہے:

// انٹرفیس کوڈ

پیکیج گھوںسلا عوامی انٹرفیس بیرونی انٹرفیس {باطل ڈسپلے () انٹرفیس اندرونی انٹرفیس {باطل اندرونی میتھڈ ()}

// کلاس کوڈ

پیکیج گھوںسلا کلاس NestedInterfaceDemo نافذ کرتا ہے آؤٹ انٹر فرفیس۔ اندرونی انٹرفیس {عوامی باطل اندرونی میتھڈ () n int n = 10، t1 = 0، t2 = 1 System.out.print ('first' + n + 'terms:') for (int i = 1) i & lt = n ++ i) {System.out.print (t1 + '+') int sum = t1 + t2 t1 = t2 t2 = sum} System.out.println ('n اندرونی اندرونی طریقہ سے پرنٹنگ ...! n ')} عوامی جامد باطل مین (سٹرنگ آرگس []) {آؤٹر انٹیرفیس.انٹیر انٹر فیرج اعتراض = نیا نیسیڈٹ انٹی فرفیس ڈیمو () اعتراض.انٹرمیتھوڈ ()}}

آؤٹ پٹ:

پہلی 10 شرائط: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + اندرونی اندرونی سطح کے طریقہ کار سے پرنٹنگ ...!

اب ، ہم گھوںسلا کرنے کی کوشش کرتے ہیں جاوا انٹرفیس کے اندر a جاوا کلاس۔

سیلینیم میں طرح طرح کے فریم ورک

// انٹرفیس کوڈ

پیکیج Nest2 عوامی کلاس EdurekaClass {انٹرفیس EdurekaInterface {باطل NestedMethod ()}

// کلاس کوڈ

پیکیج نیسٹ 2 کلاس نیسٹڈینٹرفیسڈیمو 2 نافذ کرتی ہے ایڈورکاکلاس۔ ایڈیورکاآینٹرفیس {پبلک باطل نیسٹڈ میتھوڈ () {سٹرنگ ان پٹ = 'ایڈورکا' بائٹ [] strAsByteArray = input.getBytes () بائٹ [] نتیجہ = نیا بائٹ [انٹرایٹریٹ آئری ٹریٹ آئی آرٹری۔ .Light i ++) نتیجہ [i] = strAsByteArray [strAsByteArray.length-i-1] System.out.println (نیا سٹرنگ (نتیجہ))} عوامی جامد باطل اہم (سٹرنگ آرگز []) {ایڈیورکاکلاس.ایڈورکاآینٹرفاسج آبجیکٹ = نیا نیسٹ انسٹراف () آبجیکٹ.نیسٹڈ میتھوڈ ()}

آؤٹ پٹ:

akerudE

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

جاوا کلاس اور جاوا انٹرفیس کے درمیان فرق

انٹرفیس کلاس
ایک سے زیادہ ورثہ کی حمایت کرتا ہے متعدد وراثت کی حمایت نہیں کرتا ہے
ڈیٹا ممبر نہیں ہے ڈیٹا ممبران پر مشتمل ہے
کنسٹرکٹر نہیں ہے تعمیر کار پر مشتمل ہے
نامکمل ممبران (دستخط ممبر) پر مشتمل ہے مکمل (خلاصہ) اور نامکمل ممبران دونوں پر مشتمل ہے
رسائی موڈیفائر نہیں ہے رسائی میں ترمیم کرنے والے شامل ہیں
انٹرفیس میں جامد ممبر نہیں ہوتے ہیں کلاس میں اس کے تمام ممبران جامد ہیں

جاوا انٹرفیس کے فوائد اور نقصانات

فوائد:

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

نقصانات:

  • جاوا انٹرفیس کا استعمال نیچے لاتا ہے عملدرآمد کی رفتار درخواست کی.
  • ایپلی کیشن میں جاوا انٹرفیس کو یا تو بڑی حد تک بار بار استعمال کیا جاتا ہے یا مشکل سے ہی استعمال کیا جاتا ہے۔

جاوا انٹرفیس کے اہم نکات

  • انٹرفیس میں اعلان کردہ طریقوں میں سے کسی میں بھی کوئی ایسا جسم موجود نہیں ہے جو اسے مکمل تجریدی فراہم کرتا ہے۔
  • کسی انٹرفیس کا مقصد بنانا ممکن نہیں ہے۔ لہذا ، انٹرفیس کی تنصیب ممکن نہیں ہے۔
  • کلاس مطلوبہ الفاظ کے اوزاروں کا استعمال کرکے ایک انٹرفیس لاگو کرسکتا ہے۔ آئیے ہم اسے ایک مثال کے ذریعے دیکھتے ہیں۔

// انٹرفیس کوڈ

پیکیج ایکسٹرن سطح کا عوامی انٹرفیس ایکسٹرن انٹرفیس {عوامی باطل میتھڈ 1 () پبلک باطل میتھڈ 2 ()}

// کلاس کوڈ

پیکیج extInterface درآمد java.util. اسکینر کلاس Edureka extInterface {پبلک باطل میتھتھ 1 () {System.out.println ('طریقہ1 کا نفاذ') سکینر سکینر = نیا اسکینر (System.in) سسٹم آؤٹ.پریٹلن ('نمبر درج کریں) جاوا میں مربع کی جڑ ڈھونڈنے کے لئے: ') ڈبل مربع = اسکینر.نیکٹ ڈبل () ڈبل مربع روٹ = ریاضی۔ اسکوائر (سکوئر) سسٹم آؤٹ.پرینٹف (' تعداد کا مربع جڑ:٪ f ہے:٪ f٪ n '، مربع، مرکوز روٹ)} عوامی باطل میتھڈ 2 () {System.out.println ('method2 کا نفاذ')} عوامی جامد باطل اہم (سٹرنگ آرگ []) {extInterface obj = new Edureka () obj.method1 ()}}

آؤٹ پٹ:

طریقہ 1 کا نفاذ جاوا میں مربع کی جڑ تلاش کرنے کے لئے نمبر درج کریں: 16 تعداد کا مربع جڑ: 16.0 ہے: 4.0
  • ایک کلاس ایک ہی موقع پر متعدد وراثت کو نافذ کرسکتی ہے۔ آئیے ہم اسے درج ذیل کوڈ کے ذریعے سمجھیں۔

// انٹرفیس 1 کوڈ

پیکیج ایکسٹینڈ پبلک انٹرفیس انٹرفیس 1 {عوامی باطل آرمسٹرونگ ()}

// انٹرفیس 2 کوڈ

پیکیج ایکسٹینڈ پبلک انٹرفیس انٹرفیس 2 {پبلک باطل پرائم ()} // کلاس کوڈ پیکیج ایکسٹینٹ پبلک کلاس ایڈورکا 2 انٹرفیس 1 ، انٹرفیس 2 {پبلک باطل آرمسٹرونگ () {انٹ سی سی = 0 ، ا ، ٹائم انٹ ن = 153 // ان پٹ ٹم = این لاگو کرتا ہے جبکہ (n & gt0) {a = n٪ 10 n = n / 10 c = c + (a * a * a)} اگر (عارضی == c) System.out.println ('آرمسٹرونگ نمبر') کوئی اور System.out.println ('اسٹرانجنگ نمبر نہیں') سسٹم آؤٹ.پریٹلن ('انٹرفیس 1 میں توسیع') v عوامی باطل پرائم () {انٹ i ، ایم = 0 ، پرچم = 0 انٹ این = 3 // ان پٹ ایم = این / 2 اگر (n == 0 || n == 1) {System.out.println (n + 'بنیادی نمبر نہیں ہے')} ورنہ {کے لئے (i = 2i & lt = mi ++) {اگر (n٪ i == 0) {سسٹم .out.println (n + 'پرائم نمبر نہیں ہے') پرچم = 1 بریک}} اگر (پرچم == 0) {System.out.println (n + 'بنیادی نمبر ہے')}. System.out.println ('توسیع to انٹرفیس 2 ')} عوامی جامد باطل مرکزی (سٹرنگ آرگس []) {انٹرفیس 2 اعتراض = نیا ایڈورکا 2 () obj.prime () انٹرفیس 1 اعتراض1 = نیا ایڈورکا 2 () اعتراض1.آرمسٹرانگ ()}}

آؤٹ پٹ:

3 بنیادی نمبر ہے جو انٹرفیس 2 میں شامل ہوتا ہے
  • جاوا انٹرفیس کو متغیر کے اعلان کے وقت ابتدا کی جانے والی متغیرات کی ضرورت ہوتی ہے۔
  • انٹرفیس کے ل Access رسائی ترمیم کرنے والوں کو عوامی جامد اور طے شدہ طور پر حتمی شکل میں رکھا جاتا ہے۔ آئیے ہم اسے ایک مثال سے سمجھتے ہیں

// انٹرفیس کوڈ

پیکیج ٹیسٹ عوامی انٹرفیس {// عوامی انٹ a a = 10 // عوامی جامد حتمی IN = 10 / جامد INT a = 0 // حتمی INT = 10 // انٹ a = 10 Try آزمائیں
  • مذکورہ بالا سارے اعلانات ایک انٹرفیس کے اندر درست اور درست ہیں۔
  • جاوا انٹرفیس کسی بھی تعداد میں انٹرفیس بڑھانے کے قابل ہے ، لیکن کبھی بھی اس پر عمل درآمد نہیں کرسکتا۔
  • جاوا کلاس کسی بھی تعداد میں انٹرفیس نافذ کرسکتی ہے۔
  • جاوا کلاس انٹرفیس کو ایک ہی طریقہ کے نام اور مختلف واپسی قسم کے ساتھ نافذ نہیں کرسکتی ہے۔
  • اگر ایک ہی طریقہ کے نام کے ساتھ دو یا زیادہ طریقے ہیں ، ایک سے زیادہ انٹرفیس میں موجود ہیں ، تو اس طریقہ کو ایک بار کے لئے نافذ کرنا کافی ہے۔ آئیے اس کو عملی مثال کے ساتھ سمجھیں۔

// انٹرفیس کوڈ

پیکیج ایک ہی عوامی انٹرفیس A {عوامی باطل ڈسپلے ()} // انٹرفیس کوڈ پیکیج ایک ہی عوامی انٹرفیس B {عوامی باطل ڈسپلے ()} // کلاس کوڈ پیکیج ایک ہی طبقے کے ایک ہی اوزار ، A ، B {پبلک باطل ڈسپلے (). System.out .println ('اعداد و شمار کو ظاہر کرنا') stat عوامی جامد باطل اہم (سٹرنگ [] آرگس) {ایک ہی پرنٹ = نیا وہی () پرنٹ.ڈسپلے ()}

آؤٹ پٹ:

ایڈورکا ای لرننگ میں خوش آمدید

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

اب جب آپ جاوا کی بنیادی باتوں کو سمجھ چکے ہیں تو ، چیک کریں ایڈوریکا کے ذریعہ ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی جس کی دنیا بھر میں 250،000 سے زیادہ مطمئن سیکھنے والوں کا نیٹ ورک موجود ہے۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس طلباء اور پیشہ ور افراد کے لئے ڈیزائن کیا گیا ہے جو جاوا ڈویلپر بننا چاہتے ہیں۔ کورس آپ کو جاوا پروگرامنگ میں آغاز فراہم کرنے اور جاوا کے مختلف فریم ورکس جیسے ہیبرنٹیٹ اینڈ ایڈوانس جاوا دونوں اصولوں کے ساتھ ساتھ آپ کو تربیت دینے کے لئے ڈیزائن کیا گیا ہے۔ بہار .

ہمارے لئے ایک سوال ہے؟ اس 'جاوا انٹرفیس' بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد از جلد آپ کے پاس واپس آجائیں گے۔