مضمون کو سمجھنے کے لیے ضروری علم کی سطح: ابتدائی۔ آپ جاوا سنٹیکس کی تلاش کا مطالعہ کرنے کے عمل میں ہیں، اور اس کی ابتدائی سطحوں کے قریب ہیں۔
آپ نے ابھی جاوا سیکھنا شروع کیا ہے۔ آپ پر ایسی اصطلاحات کی بمباری کی جاتی ہے جیسے کسی کورنوکوپیا سے ہو۔ آپ بہت ساری تکنیکی معلومات سے بھری ہوئی ہیں، اور بعض اوقات آپ تین پائنز میں الجھ جاتے ہیں۔ مجھ پر یقین کریں، چونکہ آپ پہلے سے ہی پروگرامنگ میں شامل ہو چکے ہیں، یہ ہمیشہ ایسا ہی رہے گا (اس وقت، اسکرین سے باہر ایک ناگوار قہقہہ گونجتا ہے، اور ایک خاموش آواز، جملے کے وسط سے کٹ کر سرگوشی کرتی ہے، "دوڑاؤ... اس سے پہلے اپنے آپ کو بچاؤ۔ یہ بہت دیر ہو چکی ہے..."). کیڑے آپ کو آپ کی باقی پروگرامنگ زندگی کے لیے پریشان کریں گے، چاہے آپ بہترین ڈویلپر ہی کیوں نہ ہوں۔ تاہم، یہ اتنا خوفناک نہیں ہے جتنا یہ لگتا ہے۔
اگر آپ نے ابھی JavaRush سیکھنا شروع کیا ہے، تو غالباً آپ کو پہلے ہی مضمون میں اٹھائے گئے مسائل کا سامنا کرنا پڑا ہوگا۔ کسی بھی صورت میں، ہم جاوا سیکھنے کے پہلے مہینوں میں آپ کو درپیش مسائل کو بیان کرنے والے تبصروں کا خیرمقدم کریں گے۔ |
لیول 0 کا مسئلہ: موازنہ آپریٹر (==) اور اسائنمنٹ آپریٹر (=) کے ساتھ الجھن۔
یہ ان لوگوں کے لئے ایک بہت عام مسئلہ ہے جو دوسری پروگرامنگ زبانوں سے سوئچ کرتے ہیں۔ اور عام طور پر، ابتدائی اسکول کے بعد سے ہم اس حقیقت کے عادی ہو چکے ہیں کہ
(=)
یہ ایک برابر کی علامت ہے۔ ایک سادہ چال جسے یاد رکھنے کے لیے استعمال کیا جا سکتا ہے وہ یہ ہے: اگر آپ جانتے ہیں کہ آپ کو صرف ایک قدر کی پرواہ ہے (آپ ایک کو دوسرے کو تفویض کرتے ہیں) تو آپ ایک ہی
=
نشان استعمال کرتے ہیں، بصورت دیگر اگر آپ تمام متغیرات کی پرواہ کرتے ہیں۔ اور اقدار (آپ ان کا موازنہ کرتے ہیں) آپ کو دوہری
==
نشان کی ضرورت ہے۔
مسئلہ: سٹرنگ مساوات کو جانچنے کے لیے موازنہ آپریٹر (==) کا استعمال
کیا کرنا ہے: یاد رکھیں،
کسی بھی جاوا آبجیکٹ کو استعمال کرتے ہوئے مساوات کے لیے چیک نہیں کیا جا سکتا(==)
، کیونکہ یہ آپریٹر قدیم اقسام کی مساوات کو جانچنے کے لیے ڈیزائن کیا گیا ہے۔
اشیاء کے لیے آپ کو استعمال کرنے کی ضرورت ہے
.equals()
۔ اور
String
جاوا زبان میں یہ ایک چیز (اور
immutable
) سے زیادہ کچھ نہیں ہے۔
بطور نشان زد ایک آبجیکٹ Immutable ایک ایسی چیز ہے جس کی حالت تخلیق کے بعد تبدیل نہیں کی جا سکتی۔ Java میں ، اس کا مطلب یہ ہے کہ کلاس کے تمام مثالی فیلڈز بطور final پرائمیٹو (یا بھی immutable ) نشان زد ہیں۔ |
مسئلہ: ایک لوپ میں سٹرنگ کنکٹنیشن
یہ خود نہ آزمائیں! ہر بار جب تاروں کو جوڑ دیا جاتا ہے، ایک نئی آبجیکٹ بن جاتی ہے
String
(جیسا کہ ہم نے اوپر پایا، تاریں
immutable
ناقابل تغیر ہیں)۔ کسی وقت آپ کی یادداشت ختم ہو جائے گی یا پروگرام مکمل ہونے میں بہت زیادہ وقت لینے لگے گا۔
حل۔ مواد کو ایک لوپ میں جوڑتے وقت
StringBuilder
استعمال کریں ۔
String
کلاس
StringBuilder
اس وقت استعمال ہوتی ہے جب آپ کو کریکٹر سٹرنگ میں بہت زیادہ تبدیلیاں کرنے کی ضرورت ہوتی ہے۔ اور اس طرح کی لائنیں، برعکس
String
، نہیں ہیں
immutable
.
مسئلہ: NullPointerException
اس قسم کی رعایت اس وقت ہوتی ہے جب ہم null pointer استعمال کرنے کی کوشش کرتے ہیں
null
جب حقیقت میں ہمیں کسی حقیقی چیز کی ضرورت ہوتی ہے۔
تمام قدیم اقسام کی ڈیفالٹ اقدار ہوتی ہیں۔ تو، y int ہے 0 ، اور y boolean ہے false ۔ کسی بھی حوالہ کی قسم کی ڈیفالٹ قدر، یعنی آبجیکٹ، ہے null ۔ یہ کوئی چیز یا قسم نہیں ہے، یہ ایک خاص قدر ہے۔ جس کا بنیادی مطلب ہے "یہاں کچھ نہیں ہے۔" |
کیا کریں: اگر آپ کا کوڈ اس طرح لکھا گیا ہے کہ کسی وقت آپ کا آبجیکٹ قدر کو قبول کر سکتا ہے
null
، تو آپ کو "چیک فار
null
" شامل کرنے کی ضرورت ہے، خاص طور پر اگر آپ آبجیکٹ خود نہیں بنا رہے ہیں۔
null
یہ بھی یاد رکھیں کہ خالی مجموعوں کو واپس کرنا 's کے سیٹ سے بہتر ہے ۔ حاصل کرنے والوں اور سیٹرز کے لیے توثیق شامل کرنا بھی اچھا ہوگا۔
مسئلہ: کسی وجہ سے if / while / for loop کام نہیں کرتا ہے۔
if (something.equals («что-то еще»)); {
System.out.println («Почему я не работаю???»);
}
یہاں کیا خرابی ہے؟ یہ آسان ہے: ایک اضافی سیمیکولن نے لاکھوں نوسکھئیے جاوا پروگرامرز کا خون خراب کر دیا ہے۔ ٹھیک ہے، آپ کو اس کے بعد اس کی ضرورت نہیں ہے
if ()
۔ زبان کے نقطہ نظر سے، ایسا نحو کافی قابل قبول ہے، لہذا مرتب کرنے والا اس کے بارے میں شکایت نہیں کرے گا۔ لیکن یہ مشروط بیان کو ختم کرتا ہے، اور بلاک کے اندر کا کوڈ
{}
کبھی بھی اوپر کی شرط کو پورا نہیں کرے گا۔
حل: ڈیزائن کی منطق کو یاد رکھیں۔ "
;
" نشان کا مطلب ایک خاص بلاک کا اختتام ہے، لیکن یہاں سب کچھ شروع ہو رہا ہے۔
مسئلہ: جامد طریقوں سے غیر جامد ممبر متغیرات تک رسائی حاصل کرنے کی کوشش کرنا (جیسے اہم)
حل _ یہ مسئلہ خود تصور کی تفہیم سے متعلق ہے
static
۔ اگر کسی طریقہ کو اس لفظ کے ساتھ نشان زد کیا گیا ہے، تو اس کا مطلب ہے کہ ہمیں مرکزی طریقہ کو کال کرنے کے لیے کلاس کو انسٹیٹیوٹ کرنے کی ضرورت نہیں ہے۔ تو اس کا حل یہ ہے کہ "سٹیٹکس" کی اچھی سمجھ ہو اور ان کے جوہر کو سمجھیں۔
مسئلہ: پہلے سے موجود لائبریریوں اور ٹولز کو تیار کرکے پہیے کو دوبارہ ایجاد کرنے کی کوشش کرنا
حل۔ یہ اصل میں اتنا زیادہ مسئلہ نہیں ہے۔ ایک ابتدائی کے لیے، یہ ایک مفید ورزش ہے۔ تاہم، اگر آپ نتیجہ پر توجہ مرکوز کرنا چاہتے ہیں، مثال کے طور پر، ایک آسان سبسکرائبر ڈیٹا بیس بنانا، پھر فون بک میں سبسکرائبر کو تلاش کرنا آپ کی درخواست کے نتائج میں سے ایک ہے۔ اس صورت میں، بائنری سرچ الگورتھم لکھنے کی ضرورت نہیں ہے۔ ایک موجودہ کا استعمال کریں (ہم آپ کو یقین دلاتے ہیں، کسی نے اسے آپ سے پہلے لکھا ہے اور یہ معیاری لائبریریوں میں ہے)۔ لہذا اوریکل دستاویزات میں جاوا معیاری لائبریریوں کا مطالعہ کریں۔ گوگل سے سیکھیں، اسٹیک اوور فلو کو پڑھنے کی عادت ڈالیں اور
جاوا رش کی مدد پر سوالات پوچھیں ! ...یقیناً، یہ تمام ابتدائی مسائل نہیں ہیں۔ تبصرے میں اپنی وضاحت کریں!
کیا آپ جاوا سے متعلق مضامین پڑھنے میں دلچسپی رکھتے ہیں؟ جاوا ڈیولپر گروپ میں شامل ہوں ۔
یہاں بہت ساری دلچسپ چیزیں ہیں۔
GO TO FULL VERSION