JavaRush /جاوا بلاگ /Random-UR /جاوا میں انٹرفیس
vinsler
سطح

جاوا میں انٹرفیس

گروپ میں شائع ہوا۔
میں ایک برا کہانی سنانے والا ہوں اگر میرے پاس کسی مخصوص درخواست کے ساتھ کسی کو ناقابل فہم چیز کی وضاحت کرنے کا مقصد نہیں ہے، لہذا میں آسان چیزوں کو سمجھتا ہوں، اور ایک چیز کے لئے میں یہاں اس کے بارے میں لکھوں گا۔ میں جاوا رش کی تدریسی مثال کی پیروی نہیں کرتا کہ پہلے سوال پوچھنا اور پھر آپ کو بتانا کہ اسے کیسے کرنا ہے۔ میں پہلے بتانے اور پھر پوچھنے کا حامی ہوں، جیسا کہ بتانا، پہلے دکھانا، اور پھر سمجھانا۔
جاوا میں انٹرفیس - 1
BS: اعمال == برتاؤ، انہیں مترادفات کے طور پر لیں، اعمال کو زیادہ درست طریقے سے سمجھا جاتا ہے، یہ ہمیشہ کچھ فعال ہوتا ہے، اور سلوک کچھ بھی ظاہر نہیں کر سکتا۔

انٹرفیس - انٹرفیس

یہ کیا ہے؟ مثال انٹرفیس لسٹنگ (عام کے ساتھ):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
عام کروڈ (CRUD سے: تخلیق کریں، پڑھیں، اپ ڈیٹ کریں، حذف کریں) انٹرفیس۔ گھبرائیں نہیں، سب کچھ بہت آسان ہے۔ اس انٹرفیس کا مطلب ہے کہ بہت سے ڈیٹا بیس کے ساتھ کام کرنا درج ذیل اصول پر مبنی ہے: آپ کو ریکارڈ شامل کرنے، ریکارڈ کو اپ ڈیٹ کرنے، تمام ریکارڈز کو حذف کرنے اور تلاش کرنے کی ضرورت ہے۔ آپ اسے مزید 100 بار دیکھیں گے اور آپ تقریباً ایک ہی انٹرفیس کو اتنی ہی بار لکھیں گے۔ اسے عوامی نامزد کیا گیا ہے کیونکہ اسے کلاس کے ذریعہ لاگو کیا جانا چاہئے۔ ایک طبقے کے ذریعے نافذ کرنے کا کیا مطلب ہے ؟ سب کچھ بہت آسان ہے: اس میں انٹرفیس کے تمام طریقوں کو بیان کرنا ضروری ہے۔ کلاس میں نفاذ کی آسان ترین مثال:
void add (T t) {
	bookstore.add(t);
}
T t کے بجائے، ایک مخصوص عام کو تبدیل کیا جائے گا۔ مختصر طور پر، یہ ایک متغیر کا TYPE ہے، یہی وجہ ہے کہ اسے اکثر T = Type کہا جاتا ہے۔ ہماری مثال میں، ہم کہتے ہیں کہ یہ اس طرح ہوسکتا ہے:
void add (Book book) {
	bookstore.add(book);
}
قدرتی طور پر، بک بک کی جگہ آپ کسی بھی متغیر کو بدل سکتے ہیں جس کی آپ کو اپنے نفاذ کے لیے ضرورت ہے۔ سمجھنے کے لیے، آپ نظریاتی طور پر تصور کر سکتے ہیں کہ T = Object، اور چونکہ جاوا میں ہر چیز آبجیکٹ ہے، اس لیے آپ وہاں اپنی کسی بھی کلاس/متغیر کی وضاحت بھی کر سکتے ہیں۔ صرف مصیبت بعد میں پیدا ہوگی - استثناء اگر کلاس صفر ہے، وغیرہ۔ اس کے اپنے الفاظ میں، یہ ایک مخصوص پروگرام کا ڈھانچہ ہے جو اشیاء کے درمیان تعلقات کو مخصوص طرز عمل کے حصوں میں تقسیم کرکے بیان کرتا ہے۔ انٹرفیس کا مقصد کلاس کے ذریعہ عمل درآمد کے لئے فعالیت کی وضاحت کرنا ہے۔ یعنی طریقہ کار کے دستخطوں کی تفصیل۔ انٹرفیس کے اندر ایسے طریقوں کے نام ہیں جو واپس آتے ہیں اور اقدار داخل کرتے ہیں، اور بس۔ ٹھیک ہے، آپ اب بھی وہاں کچھ متغیرات کو نامزد کر سکتے ہیں، لیکن وہ فوری طور پر عوامی جامد فائنل بن جاتے ہیں، اور پروگرام کے کسی بھی حصے سے ان تک رسائی حاصل کی جا سکتی ہے۔ انٹرفیس اعمال کی وضاحت کرتا ہے، اور اس لیے یہی اعمال اس میں موجود ہیں، یعنی افعال یا طریقے۔ یہ کیوں ضروری ہے؟ یہ کیا آسان بناتا ہے یا کیا فوائد فراہم کرتا ہے؟ اعمال اور طرز عمل کی وضاحت کو آسان بنانا۔ ہم کہتے ہیں کہ کیا کرنا ہے، لیکن ہر طبقہ خود اس پر عمل درآمد کرتا ہے۔ بڑے منصوبوں پر وقت بچائیں۔ انٹرفیس ایسے حالات میں بنائے جاتے ہیں جہاں ہم جانتے ہیں کہ ہمیں کچھ کام انجام دینے کی ضرورت ہے، لیکن اسے کیسے کرنا ہے مختلف ہو سکتے ہیں۔ انٹرفیس اعمال کے ناموں کی وضاحت کرتا ہے - یہ صرف کچھ تجرید کی سمت ہے۔ اگرچہ طریقوں اور فیلڈز کے بغیر انٹرفیس بھی ہوسکتے ہیں، جیسے مارکر جیسے کلون ایبل، ریموٹ وغیرہ۔ آئیے ایک کار کی سب کی پسندیدہ مثال لیں۔ اس میں موجود انٹرفیس کار کے ممکنہ اقدامات، اسٹیئرنگ وہیل کو موڑنا یا حرکت کی سمت، رفتار حاصل کرنا، باقی ماندہ پٹرول وغیرہ کو بیان کرے گا۔ یعنی، وہی اعمال جو بالکل کسی بھی کار میں ہو سکتے ہیں۔ دوسرے لفظوں میں، ہم انحطاط کے جنگل میں پہلی ہی کار کی تخلیق کی نچلی ترین سطح پر اترتے ہیں اور اپنے دماغ سے یہ معلوم کرتے ہیں کہ یہ کیسے تخلیق ہوئی اور اس میں کیا تھا۔ قدرتی طور پر، ہم اسے خلاصہ اور صرف اعمال کے لیے بیان کرتے ہیں۔ پہلی گاڑی میں کیا تھا؟ کیا کوئی اسٹیئرنگ وہیل تھا؟ یہ تھا، جس کا مطلب ہے کہ یہ کہیں مڑ رہا تھا، اسٹیئرنگ وہیل/حرکت کی سمت۔ کیا وہاں پہیے تھے؟ ہاں، اس کا مطلب ہے کہ میں کچھ رفتار سے گاڑی چلا رہا تھا، رفتار میں تبدیلی۔ یہ پورا انٹرفیس ہے۔ لیکن عام طور پر، انٹرفیس بعض اعمال کے کچھ نفاذ کے لیے بنائے جاتے ہیں۔ وہ. ہم کسی اور چیز کے مقابلے میں زیادہ مخصوص پروگرام لکھتے ہیں جس کے بارے میں آپ سوچ سکتے ہیں۔ لہذا، انٹرفیس خود واضح اور زیادہ مخصوص طریقوں پر مشتمل ہوں گے۔ یقیناً وہ ممکنہ حد تک تجریدی ہوں گے۔ انٹرفیس ایک دوسرے سے بطور کلاس وراثت میں مل سکتے ہیں۔
interface MyInterface extends NotMyinterface;
انٹرفیس کو کلاسوں میں لاگو کیا جاتا ہے۔ آپ جتنے چاہیں انٹرفیس نافذ کرسکتے ہیں۔ وراثت کے برعکس، صرف ایک سے وراثت حاصل کریں۔
class NewClass extends OldClass implements MyInterface, NotMyinterface;
وہ. ہم نے کچھ کارروائیاں کیں، انہیں نام دیا، ڈیٹا ان پٹ کیا، ڈیٹا واپس کیا، یہ سب کچھ انٹرفیس میں لکھا، پھر ایک کلاس بنائی اور اپنا انٹرفیس اس کلاس میں شامل کیا، یعنی اس کلاس میں ہمارے انٹرفیس کو لاگو کیا. مزید، انٹرفیس میں بیان کردہ تمام طریقوں/فنکشنز کا نفاذ ہونا چاہیے۔ یہ طریقہ سے پہلے پہلے سے طے شدہ لفظ کو شامل کرکے اور کلاس کی طرح براہ راست طریقہ میں عمل کو لکھ کر انٹرفیس میں ہی کیا جاسکتا ہے۔ یہ جاوا کے ورژن 8 کے ساتھ ممکن ہوا۔ یہ ایک کلاس میں بھی کیا جا سکتا ہے جو اس انٹرفیس کو نافذ کرے گی۔ ٹھیک ہے، ہم نے انٹرفیس لکھا ہے، اسے کلاس میں لاگو کیا ہے، کلاس میں عمل درآمد کیا ہے، ہم اسے چلا سکتے ہیں اور اس کی جانچ کر سکتے ہیں۔ آپ انٹرفیس میں اس بارے میں بھی پڑھ سکتے ہیں:
  • جامد طریقے۔
  • نجی طریقے۔ (کوڈ دوبارہ)
  • متغیرات/مستقل
  • نیسٹڈ انٹرفیس۔
لیکن بعد میں ایسا کرنا بہتر ہے، اور اپنے سر کو بہت زیادہ بھرنا بھی نقصان دہ ہے۔ دلچسپ سوال، وولوو کیا ہے؟ کلاس یا انٹرفیس؟
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
انٹرفیس کے علاوہ، یہ خلاصہ کلاسز اور کلاسز کے بارے میں جاری رکھنے کے قابل ہے۔ شاید بعد میں، جب میرے پاس مزید چند گھنٹے مفت ہوں۔ ))) PS: دوستو، میں پوسٹ کے تحت یا پی ایم میں تمام تنقید کے لیے کہتا ہوں، میں پوری طرح سے سمجھتا ہوں کہ ہر کسی کے پاس ہے))) اور میں ہمیشہ اسے سننے میں دلچسپی رکھتا ہوں، کیونکہ یہ تھوڑا بہتر بننے کی ایک وجہ ہے اور دوبارہ آگے بڑھنا جاری رکھیں. اس کے ساتھ، آپ سب کا بہت بہت شکریہ اور پروگرامنگ میں اچھی قسمت۔ )))
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION