سلام، از همه عذر می خوام بخاطر غیبتم! و اینکه احتمالا با شروع دانشگاه اوضاع بدتر هم می شه
تو این دوره بیشتر به سوالات که جواب کوتاه و مفید بخوان مثل این جواب می دم،پیشاپیش امیدوارم منو ببخشید.
1) MIDlet هیچ چیزی نیست جز یک کلاس معمولی، در واقع زمانی که شما برنامه ای رو اجرا می کنید دستگاه کلاس شما که حتما از MIDlet مشتق شده رو new می کنه و تابع startApp اون رو صدا میزنه. این کلاس یک interface ثابت بین شما و برنامه ای که شما اجرا می کنید ایجاد می کنه...
2)هر کلاسی که new می کنید یک آدرسی دارن که شما با اون به توابع و متغییرهاش دسترسی دارید. همه ی توابع غیر static هر کلاس علاوه بر متغییر هایی که بهشون پاس داده می شه یک متغییر مخفی به نام this هم دارن که پوینتر به شی همون کلاس هست. در اینجا تابع getDisplay(MIDlet midlet) نیاز داره بدونه که display رو می خواد به کدوم برنامه بده و این رو از پوینتر midlet می فهمه و چون شما درون بدنه ی کلاس MIDlet هستید و تابع هم غیر static هست یک متغییر مخفی به اسم this دارید که اینجا از MIDlet هست و خوب بهش پاس دادین.
3)اینو نفهمیدم ولی اگر منظورتون این کار هست:
TextBox tb = new TextBox(...)
باید بدونید که در جاوا همه ی متغییر ها refrence هستند. اینجا یعنی tb توش یک پوینتر به شی TextBox داره که اگر new نکنید null هست. یعنی اصلا به جایی اشاره نداره .پس این کار لازمه. البته در زمان اجرا خطا می گیره.
4)تابع Alert.setTimeout(int timeout) همون طور که می بینید به یک آرگومان از نوع int نیاز داره. که شما اگر این ثابت یعنی Alert.FOREVER رو بهش پاس بدید باعث می شه alert رو صفحه بمونه و فقط بصورت دستی بتونید ورش دارید. با پاس دادن ثوابت دیگه می شه طوری تنظیمش کرد که بعد از گذشت زمان خاص خودش از رو صفحه بره.
5) خیلی مفصله! تو تاپیک "سوالات افراد تازه کار" قبلا توضیح دادم.
5(6؟) ) این جور نوشتن تابع برای javaApp استفاده می شه نه j2me. و این اسم خاص به ماشین مجازی می گه که تمام محاسبات floating point در این تابع رو بر اساس مدل اصلی جاوا انجام بده. و اصلا به j2me ربطی نداره.