ایجاد و طبقهبندیها
در پایان این فصل شما قادر خواهید بود که ...
1-درک مشخصات کامل برنامه نویس موضوعی - تطبیقی
2-دانستن زمان به کارگیری متغیرها و روشهای عمومی و خصوصی به طور اختصاصی
3-ایجاد کلاسهای شخصی
4-معرفی موضوعات کلاسهای شخصی
5-نگارش روشهایی که ارزشها را باز می گرداند و ارزشهای داده را تائید می کند .
به هر حال هر کدام از اپلت هایی که ایجاد کرده اید در طبقه واحدی قرار می گیرند .
همان طور که به ساختار applet توابع بیشتری می افزائید حجم برنامه زیاد شده و کنترل آن دشوار می گردد .
روش مناسب برای توسعه برنامه تقسیم عملکرد مابه موضوعات کوچک می باشد ، که هر کدام از آنها مسئول وظیفهای خاص می باشد .
در این بخش خواهیم آموخت applet های قبلی را جدا کرده ، تفکیک کرده و به هنگام پردازش کاربر در هر طبقه applet پردازش شود .
مروری بر برنامه نویسی موضوعی - تطبیقی
همان طور که شما در بخش 1 آموختید ، Java یک زبان تطبیقی - موضوعی است و این بدان معنی است که برنامه ای که شما می نویسید از نظر موضوع باید مطابقت داشته باشد .
برخی از ویژگی های برنامه نویسی تطبیقی - موضوعی ، اختصار ،
میراث و چند شکلی می باشد .
اختصار به ترکیبی خواص و روشهایی در یک بخش واحد اتلاق می شود .
قبل از برنامه نویسی تطبیقی - موضوعی ، برنامه های کامپیوتر اطلاعات داده را جدای از پردازش کنترل می کرد .
روش جدید با هر دو مشخصه و عملکرد هر موضوع سر و کار دارد که این حس را ایجاد می کند که ویژگیها و روشها در ارتباط متقابل با هم هستند .
و اختصار این امکان را می دهد صورت کاملی از داده ها در باب یک موضوع بوسیله مخفی کردن از سایر موضوعات پنهان بماند .
شما می توانید تصور کنید که یک موضوع همانند جعبه سیاهی است که وظیفه ای را انجام می دهد .
تنها راه دستیابی به ویژگیها و روشهای یک موضوع به کارگیری ویژگیها و روشهای خاص مهیا شده به عنوان یک روش عمومی می باشد .
هر موضوع اجزاء ، متغیرها و روشهایش را اداره می کند .
میراث :
با به کارگیری میراث شما می توانید کلاس موجود را بهینه سازید بدون اینکه اصل آن را تغییر دهد .
بوسیله ایجاد کلاس جدید که برگرفته شده از سطح موجود است ، شما می توانید متغیرها و روشهایی را به سطح جدید اضافه یا تغییر دهید .
در هر applet که شما ایجاد می کنید ، سطح applet موجود را بسط می دهید .
سطح یا کلاس موجود به عنوان کلاس اصلی یا سوپرکلاس شناخته می شود .
و کلاس بسط یافته زیرگروه نامیده می شود .
البته هر کلاس جدید نیز می تواند برگرفته شده از زیرگروه باشد ، چرا که زیرگروه می تواند همچنین سرگروه نیز باشد .
سلسله مراتب رابطه بین سوپرکلاس و زیرگروه می باشد .
applet هایی را که شما ایجاد کرده اید بر اساس میراث می باشد .
کلاس applet اغلب در گروه بندی جاوا موجود می باشد .
applet جدید شما به این کلاس اضافه می شود ، اما همچنین دارای ویژگیها و عملکرد کلاس پایدار میباشد .
زمانی که شما متغیرها را در ابتدای کلاس معرفی می کنید ، شما ویژگیهاذی جدیدی را به کلاس اضافه می کنید .
کلاس applet اغلب دارای یک روش داخلی است ، روش داخلی که شما برنامه های اجرائی را به جای روش داخلی در کلاس پایه می نویسید ، در پردازشی که درجه اول نامیده می شود .
درجه اول بودن این است که چطور شما روش موجود را تغییر می دهید : شما روش خود را با همان نام روش موجود می نویسید و روش ما روش موجود را تحت الشعاع قرار می دهد .
شما می توانید به تأثیر پاک شدن یک روش با تحت الشعاع قرار دادن روشی که هیچ کدی ندارد دست یابید .
زمانی که یک متد بدون کد به زیرگروه تبدیل می شود هیچ اتفاقی نمیافتد.
توجه : شما قبلاً روشهایی را برای حوادث در بخش 2 نوشته اید .
شما مجبورید همه روشها را در ماوی لیتنر پاک کنید اما روشهای ناخواسته محتوی هیچ گونه دستوری نیستند .
پردازش و کلاسهای نهفته : یک کلاس در جاوا تنها می تواند از یک سوپرکلاس برگرفته شده باشد .
اگر شما برنامهای در C++ دارید شما چند ارث را خواهید دید که امکان آن در جاوا وجود ندارد .
البته جاوا دارای دو ویژگی دیگری است که می تواند به شما کمک کند زمانی که به مشخصه هایی برای بیش از یک کلاس نیاز دارید : پردازش و کلاس های نهفته.
پردازش همانند یک کلاس است ، که در مواجهه با گروهی از روشها می باشد.
البته شما یابد همه روشها را در هر پردازش که شما نیاز دارید دور کنید و شما همواره از پردازش در برنامه نویسی استفاده می کنید : پردازش Action .
histener و پردازش Mouse listener .
شما از صفحه کلید برای پردازش استفاده می کنید .
زمانی که شما پردازشی را انجام می دهید ، شما کلاستان را که دارای روشهای خاص است ضمانت می کنید .
سایر کلاسها که از کلاس شما استفاده می کنند می توانند اطمینان داشته باشند که روشها موجود می باشد در واقع همگردان جاوا این محدودیت ها و پیامهای خطا را اجرا می کند اگر شما پردازش را انجام دهید و از کد برای هر روش استفاده نکنید .
اگرچه یک کلاس می تواند تنها دارای یک سوپرکلاس باشد ، که می تواند پردازش های متعددی را اجرا کند .
شما می توانید پردازش خود را در همان حالت کلاسی که ایجاد کرده اید انجام دهید .
شما صفحه یک کلاس نهفته کلاس است که در کلاس دیگری تعریف می شود .
کلاس نهفته در جاوا معرفی می شود .
کلاسهای نظری به طور نزدیکی در رابطه با پردازش میباشد .
یک کلاس نظری ، کلاسی است که تنها برای هدف ارث نوشته میشود .
یک کلاس نظری شامل روشهایی است که شامل هیچ گونه گزاره ای نیست که روشهای نظری نامیده می شود .
شما نمی توانید بلافاصله یک موضوع را از کلاس نظری بگیرید ، در عوض می توانید از یک کلاس نظری نشتق شوید .
شما ممکن است از اهداف این امر تعجب کنید .
زمانی که موضوعات متفاوت ویژگیهایی مشابهی داشته باشند ، شما میتوانید سوپرکلاس و زیرگروه ایجاد کنید که از سوپرکلاس مشتق شوند .
این امر این امکان را می دهد که برخی از روشها و متغیرهای مشابه کلاس در میان زیرگروهها باشند .
نمونه ای از این شرایط اجزاء کلاس در جاوا میباشد .
که یک کلاس نظری است .
برچسب ، متن ، منطقه متن و نقطه زیرگروه اجزاء می باشد .
چندشکلی بودن : ویژگی دیگر زبان oop چندشکلی بودن آن است .
واژه چندشکلی بودن به معنی توانایی برای ایجاد شکل ها و فرم های متعدد می باشد .
همان طور که در مورد oop به کار گرفته شده است ، چند شکلی بودن دلالت برنامهای روشهایی دارد که نامهای مشخص اما اجراهای متفاوتی دارند .
برای مثال : کلاسهای متعدد ممکن است دارای یک روش باشد .
در هر نمونه آیتم موردنظر به طور کامل هماهنگ با این کلاس عمل می کند .
همچنین ممکن است یک کلاس دارای روشهای متفاوت با یک نام باشد که جای بحث دارد .
هر یک از روشهای نامگذاری شده وظیفه خود را در روش متفاوتی از سایرین انجام می دهد .
روشی که چندشکلی بودن اجرا می شود این است که نام روشی را به طور مشابه در سه گروه و زیرگروه داشته باشیم .
برای مثال ، کلاس applet دارای یک روش داخلی است .
زمانی که شما روش خود را می نویسید در زیرگروه روش شما روش سرگروه را تحت الشعاع قرار می دهد .
هر کدام از روشها نامهای مشابهی دارند اما عملکردشان متفاوت است .
برای مثال ، برای چندشکلی بودن توجه کنید به اجزاء کلاس که برای برچسب و اجزاء متن یکی است .
هر کدام از این کلاسها دارای روشهای خاص متن است و به طور خاص برای کلاس خاص عمل می کند .
بنابراین همه موضوعات که نمونه ای از برچسب ، متن ، منطقه متن می باشد دارای روشی مشابه با عملکرد متفاوت می باشد .
موضوعات : اگر برنامه های ما دارای موضوع منطبق می باشد که تنها انتخاب جاوا میباشد ، که برای گرفتن مزایا از ویژگیهایی oop نمی باشد .
اصلیترین تفکر در پی oop ایجاد آیتم های قابل مصرف مجدد می باشد که می تواند از هر پروژه ای که ممکن است مورد نیاز باشد چنین موضوعی ایجاد شود .
یک موضوع چندی است که دارای ویژگیها و رفتارهاست .
همه اجزایی که شما به کار می برید موضوعات هستند .
زمینه متن دارای یک ارزش است و عملکردهایی نظیر گرفتن متن ، تنظیم متن ، تنظیم پیشزمینه و تنظیم پسزمینه می باشد .
دکمه دارای برچسب خاص است که نمایش دهنده بر روی آن است و دارای روشهایی نظیر گرفتن برچسب و تنظیم برچسب میباشد .
برای ایجاد اجزاء موضوع ، شما از صفحه کلید جدید با نوع موجود استفاده می کنید که کلاس نام دارد .
این جمله بیان کننده نمایش دهنده علامت کلاس می باشد .
زمانی که شما مثالی را از یک کلاس بیان می کنید روش ساختاری کلاس اجراء می شود .
در نمونه نمایش علامت ،زمانی که موضوع ایجاد می شود متن نمایش دارای برچسب خاص می شود .
البته شما می توانید علامتهای بیشتری را بیان کنید ، هر کدام با نام خود و برچسب خاص خود می باشد .
همچنین شما می توانید اعلام کنید که یک علامت بدون برچسب می باشد که بیان کننده نکته مهمی است : یک کلاس ممکن است دارای بیش از یک روش ساختاری باشد ، همان طور که قبلاً مشاهده کردید .
اگر شما زمانی که علامت را ایجاد می کنید برچسبی ارائه کنید ، یک روش ساختاری عمل می کند ولی اگر این عمل را انجام ندهید روش ساختاری متفاوتی عمل می کند و این مفهوم به معنی اولدینگ می باشد .
موضوعات خود شما : همان طور که شما از علامت کلاس و کلاس زمینه متن برای ایجاد موضوعات چندگانه استفاده می کنید ، شما می توانید کلاس خود را خلقکنید و نمونه های متعددی را از کلاس شما بزنید .
کلاس ویژگیهای موضوع به همراه متغیرها و عملکردهای موضوع را با روش ها توصیف می کند .
در این بخش ما کلاس های خود را ایجاد خواهید کرد و موضوعاتی را از آن مثال خواهید زد .
بازتاب (بازخورد) : 1-به عبارت ساده ای نمونه را بیان کنید از : الف-کپسول کردن (اختصار) ب-میراث 2-واژه های زیر را تعریف کنید الف-موضوع ب-مثال ج-میان مثال ایجاد یک کلاس جدید : طرح شما دارای کلاسهای متعددی است .
شما فایل مجزایی را برای هر کلاس ایجاد می کنید و آن را با استفاده از نام کلاس و فامیل ضمیر از جاوا ذخیره می کنید .
به عنوان مثال ، کلاس جدید Interset باید با نام java .
Interest ذخیره شود .
زمانی که این امر همگردانی می شود ، همگردان کد بایت را به عنوان Interest .
java ذخیره میکند .
اگر شما از IDE استفاده می کنید ، IDE همه فاسلهای پرونده را کنترل می کند به طوری که یک کلاس می تواند بر دیگری رجوع کند .
اگر شما از یک ادیتور و JDK استفاده می کنیم ، لازم است مطمئن باشید که همه فایلها در همان پرونده ذخیره شده است .
عمومی در مقابل خصوصی : همان طور که شما با کلاسهای چندگانه شروع می کنید ، مقایسه دستیابی خصوصی و عمومی بسیار مهم می باشد .
کلاسهای applet شما و ر وشهای داخل آن همگی عمومی هستند .
چراکه شما تنها دارای یک کلاس هستید ، تمایزها دقیق نبوده است .
مفهوم کپسولی کردن را به یاد آوردید ، که همچنین به معنی مخفی کردن اطلاعات می باشد .
یک کلاس با طرح خوب جزئیاتش را از سایر کلاسها تا حد امکان مخفی نگه می دارد .
برای مثال ، زمانی که شما موضوع علامت کلاس را بیان می کنید ، شما نمیتوانید به طور مستقیم به برچسب آن دست یابید ، بلکه شما می توانید از برچسب گرمتر شده و تنظیم شده استفاده کنید .
علامت کلاس برچسب خاص را مخفی میکند اما اجازه دستیابی به آن را از طریق روشهای در دسترس یا تنظیم شده را می دهد .
در علامت کلاس ، برچسب بیان کننده متغیر خصوصی است ، روشهای آماده برچسب و تنظیم آن بیان کننده روشهای عمومی است .
در یک کلاس شما می توانید متغیرهای را بیان کنید که عمومی با خصوصی است .
شما همچنین می توانید روشهایی را بیان کنید که عمومی یا خصوصی است .
متغیرها و روشهای عمومی را می توان با اشاره به موضوع مثال زده شده بیان کرد .
تنها جمله های داخل کلاس می تواند به متغیرها و روشهای بیان شده خصوصی اشاره داشته باشد .
برنامه نویسی عمل خوب همه متغیرهای خصوصی کلاس را بیان می کند و اجازه دستیابی به متغیرها را تنها از طریق روشهای عمومی می دهد .
برای دستیابی به این امر از یک روش استفاده کنید .
بخش که ذیل برگرفته شده از کلاس است که Interest نام دارد ، که ایجاد کننده متغیرکلاس خصوصی است که Flt Rate نام دارد .
یک موضوع خارج از کلاس امکان دستیابی مستقیم به این متغیر را ندارد .
کلاس دیگری که نمونه ای را از یک موضوع از کلاس Interest بیان می کند می تواند میزان دقت کد را تنظیم کند .
روش میزان تنظیم در کلاس Interst می تواند ارزش آن را تعیین کند ، همان طور که در بالا مشاهده کردید ، می تواند ارزش جدید را تائید کند .
گاهی اوقات روش Set xxx این موضوع را چک می کند تا اطمینان حاصل شود و یک اطلاعات که معتبر هستند .
قبل از این که دقت ارزش اختصاص داده شود .
بازخورد : 1-کلاس محصول را با متغیرهای خصوصی برای ، نوع ، مقدار و بها ایجاد کنید .
2-عبارت را برای ذکر نمونه کدگذاری کنید که تولید فعلی از تولید کلاس میباشد .
3-روش تنظیم بها عمومی را برای ذخیره ارزش شناور در متغیر هزینه بنویسد .
4-عبارت را برای گذر از ارزش txt cost به روش تنظیم هزینه تولید فعلی کدگذاری کنید .
گزارش ارزشها از یک روش : روشهایی که شما می نویسید هیچ گونه ارزشی را به کد بر نمی گرداند و این امر روش نامیده می شود، برای مثال عبارت با روشی شروع می شود که در برگیرنده زنجیره ای از عبارت هاست .
زمانی که عبارتی در موقعیت دیگر این روش را بخواند با این عبارت این بدان معنی است که برای اجزا این عبارت در این روش فرا خوانده میشود و باز می گردد و زمانی که شما متوقف می شوید ولی هر چیزی را برای ما نمی آورد .
کلمه کلیدی «تیمی» در یک روش به معنی این است که روش ارزش را گزارش نمی کند .
همچنین روشی که می تواند ارزشی را به عبارت گزارش کند روش فرا خوانده می شود .
اگر این چنین باشد ، ارزش گزارش باید دارای یک نوع اطلاعات باشد .
نوع بازگشتی روش قبل از نام روش قبلی می آید .
یک روش هیدر - شکل کلی یک روش هیدر - نمونه ها بازگشت عبارت : روشی که ارزشی را باز می گرداند باید حاوی عبارت بازگشت باشد .
قبل از این که روش پایان یابد شما باید ارزشی را از نوع روش هیدر نامگذاری شده بازگردانید .
ارزش ممکن است یک متغیر ، یک مقدار ثابت یا یک اصطلاح باشد.
انتقال خلاصه به یک روش : اغلب یک روش برای عملکرد نیاز به ارزشهایی دارد .
شما می توانید بر روش هیدر که حاوی خلاصه هاست بیان کنید و پس خلاصه ها را انتقال دهید زمانی که روشی را فرا می خوانید .
به طور فنی ، در یک روش هیدر ارزشهای موجود را پارامترها می نامند .
زمانی که روشی را فرا می خوانید ، ارزشها را برای پارامترها ذخیره میکنید که ارزشها خلاصه نامیده می شوند .
در یک روش هیدر ، شما باید تعداد خاص پارامترها ، تاریخ ثبت و نتایج آن را مشخص کنید .
پس زمانی که روشی را فرا می خوانید ، خلاصه ها به طور دقیقی جور می شوند .
تعداد ، تاریخ و نتایج مهم هستند ، چرا که جاوا ارزشها را در نهایت به روش منتقل می کند .
نمونه بعدی روش عمومی را نشان می دهد که ارزش شناورزی را گزارش میکند .
لیست پارامترها حاوی ارزش صحیح و ارزش شناور می باشد .
برای فراخواندن این روش از روشهای دیگر از این عبارت استفاده کنید : توجه کنید که نامهای خلاصه ها درفراخوانی عبارت ، نامها را در لیست پارامترهای روش هماهنگ نمی کند .
بلکه خلاصه ها تعداد ، نوع و نتایج را هماهنگ می کند .
جاوا در نهایت ارزش ثابت و شناور را منتقل می کند .
در داخل روش فراخوانده شده ارزشهای منتقل شده متغیرهای محلی هستند که نامهایشان منتقل نمی شود و تنها ارزش منتقل می شود .
در این مورد روش محاسب ارزش افزوده دو ارزش را در هم ضرب می کند و نتایج عبارت اعلام شده را بیان می کند .
طبقه بندی کلاس یک applet : در این نوبت ، ما طرح یک applet را با دو کلاس ایجاد می کند که یکی از آنها بخشی از زمینه ورودی را برای اصول ، میزان و زمان محاسبه می کند .
آیتمها و عملکردها که مربوط به محاسبه کاربر هستند باید در کلاس applet باقی بمانند .
متغیرها و روشهای محاسبه سهم در کلاس مجزایی قرار میگیرد .
پروژه دو فایل منابع جاوا دارد : یکی برای applet و دیگری برای کلاس سهم جدید .
کلاس applet شروع پروژه با تصمیم گیری در مورد این که کدام یک از آیتم ها به محاسبه کاربر مربوط می شود ، که شامل آیتم گرافیکی نظیر برچسب ها ، علامت ها و زمینه متن می باشد ، شروع می شود .
اگرچه زمینه های متن برای وارد کردن اصول ، میزان و زمانی ممکن است به نظر شبیه سهم وابسته به آیتم ها باشد، آنها اجزاء گرافیکی برای گرفتن اطلاعات هستند .
روشهای داخلی و عملکردی متعلق به کلاس applet می باشند .
برنامه صفحه 133 و 134