تماس با ما

فید خبر خوان

نقشه سایت

ارائه خدمات الکترونیک مقالات ، پروژه ای با حداقل هزینه و حداکثر سرعت ، برترین مقالات همراه با ترجمه از ژورنال های معتبر بین المللی در زمینه امور مختلف


اگر به یک وب سایت یا فروشگاه رایگان با فضای نامحدود و امکانات فراوان نیاز دارید بی درنگ دکمه زیر را کلیک نمایید.

ایجاد وب سایت یا
فروشگاه حرفه ای رایگان

دسته بندی سایت

محبوب ترین ها

پرفروش ترین ها

پر فروش ترین های فورکیا


پر بازدید ترین های فورکیا

برچسب های مهم

پیوند ها

اشتراک در خبرنامه

جهت عضویت در خبرنامه لطفا ایمیل خود را ثبت نمائید

Captcha

آمار بازدید

  • بازدید امروز : 9
  • بازدید دیروز : 23
  • بازدید کل : 76401

آشنایی با جاوا


اصل جاوا


بسیاری از خصلتهای جاوا بطور مستقیم از این دو زبان C نتیجه مستقیم زبان C++ جاوا به زبان
C++ زبان جاوا از oop است . بسیاری از جنبه های C گرفته شده است . دستور زبان جاوا منتج از دستور زبان
بعاریت گرفته شده است . در حقیقت بسیاری از خصلتهای زبان جاوا از این دو زبان مشتق شده یا با آنها مرتبط است .
علاوه بر این ، تولید جاوا بطور عمیقی متاثر از روال پالایش و تطبیقی است که طی سه دهه گذشته برای زبانهای برنامه
نویسی موجود پیش آمده است . بهمین دلایل بهتر است سیر مراحل و نیروهایی که منجر به تولد جاوا شده را بررسی
نماییم . هرنوع ابتکار و فکر جدید در طراحی زبانها براساس نیاز به پشت سر نهادن یک مشکل اصلی است که زبانهای
قبلی از حل آن عاجز مانده اند . جاوا نیز بهمین ترتیب متولد شد.

برنامه نویسی شی ئ گرا


برنامه نویسی شی ئ گرا هسته اصلی جاوا است . در حقیقت کلیه برنامه های جاوا شی ئ گرا هستند . بر خلاف
آنچنان با زبان جاوا پیوستگی دارند که oop که در آن امکان گزینش شی ئ گرایی وجود دارد . روشهای C++
را فرا گیرید . بهمین دلیل این فصل را با بحث جنبه های oop حتی قبل از نوشتن یک برنامه ساده جاوا نیز باید اصول
آغاز می کنیم . می دانید که کلیه برنامه های کامپیوتری دارای دو عضو هستند : کد و داده . oop نظری
علاوه بر این ، یک برنامه را میتوان بطور نظری حول محور کد یا داده اش سازماندهی نمود . یعنی بعضی برنامه ها حول
محور " آنچه در حال اتفاق است " ( کد ( نوشته شده و سایر برنامه ها حول محور " آنچه تحت تاثیر قرار گرفته است ) "داده ( نوشته می شوند . اینها دو الگوی مختلف ساخت یک برنامه هستند . روش اول را مدل
می نامند . در این روش یک برنامه بعنوان کدهای فعال روی داده (process-oriented model) پردازش گرا
از این مدل بنحو موفقیت آمیزی استفاده می کنند . اما C نظیر (procedural) ها در نظر گرفت . زبانهای رویه ای
همانطوریکه در قسمتهای قبل عنوان شد ، بموازات رشد و گسترش برنامه ها ، این روش منجر به بروز مشکلات بیشتر
و پیچیده تری خواهد شد . برای مدیریت پیچیدگی فزاینده ، دومین روش معروف به برنامه نویسی شی ئ گرا پیشنهاد
شده است . برنامه نویسی شی ئ گرا یک برنامه را حول محور داده های آن یعنی اشیائ و یک مجموعه از رابطها
خوش تعریف برای آن داده ها سازماندهی می کند . یک برنامه شی ئ گرا را می توان بعنوان داده (interfaces)
تلقی نمود . بعدا" خواهید دید (data controlling access to code) های کنترل کننده دسترسی به کدها
با شروع بکار واحد داده های کنترل کننده بسیاری ازمزایای این نوع سازماندهی نصیب شما خواهد شد .

 

چرا نام جاوا ؟


متولد شد. این پروژه در ابتدا پروژه سبز نام داشت . Sun Micro Systems در سال 1991 میلادی در شرکت
بود که در سال 92 ایجاد oak به عهده داشت. نتیجه کار بر این پروژه زبان James Gosling سرپرستی پروژه را
به معنای بلوط است و زمانی که جیمز از پنجره اتاق کارش به یک درخت بلوط نگاه می کرد، این نام را .oak شد
تصمیم گرفت نامی بهتر برای محصول خود برگزیند . بنابراین اف راد تیم پروژه Sun برگزید؛ اما پس از مدتی شرکت
سبز به یک کافی شاپ نزدیک شرکت رفتند، تا نامی دیگر برای این زبان انتخاب کنند . پس از نصف روز بحث و
Andy bechtolsheim و Arthur Van hoff ،James Gosling که مخفف نامهای ،JAVA بررسی
است به عنوان نام این زبان انتخاب شد . از آنجا که مراسم نامگذاری در کافی شاپ برگزار شده بود، یک فنجان قهوه
داغ به عنوان نماد جاوا در نظر گرفته شد.

Abstraction تجرید


تجرید یک عنصر ضروری در برنامه نویسی شی ئ گرا است . افراد پیچیدگی ها را با استفاده از تجرید مدیریت می
نمایند . بعنوان نمونه ، مردم درباره اتومبیل هرگز بعنوان مجموعه ای از هزاران قطعات منفک از هم تفکر نمیکنند. آنها
اتومبیل را بعنوان یک شی ئ خوب تعریف شده دارای نوعی رفتار منحصر بفرد تلقی می کنند . این تجرید به مردم
امکان می دهد تا از یک اتومبیل استفاده نموده و به خواربار فروشی بروند ، بدون اینکه نگران پیچیدگی اجزایی باشند
که یک اتومبیل را تشکیل می دهند .
آنها قادرند براحتی جزئیات مربوط به نحوه کار موتور ، سیستم های انتقال و ترمز را نادیده بگیرند . در عوض آنها
مختارند تا از اتومبیل بعنوان یک شی ئ کلی استفاده نمایند.
انجام می (hierarchical) یکی از شیوه های قدرتمند مدیریت تجرید با استفاده از طبقه بندیهای سلسله مراتبی
گیرد . این امر به شما امکان می دهد تا معنی و مفهوم سیستم های پیچیده را کنار گذاشته و آنها را به اجزائ کوچک
قابل مدیریت تقسیم نمایید. از دید بیرونی ، یک اتومبیل یک شی ئ منفرد است . از دید داخلی اتومبیل شامل چندین
زیر سیستم است : فرمان ، ترمزها ، سیستم صوتی ، کمربندهای ایمنی ، سیستم حرارتی ، تلفن سلولی و غیره . هر یک از
این زیر سیستم ها بنوبه خود از واحدهای تخصصی کوچکتری تشکیل شده اند. بعنوان نمونه ، سیستم صوتی اتومبیل
و یا یک پخش صوت است . نکته مهم این است که شما بدین ترتیب بر پیچیدگی CD شامل یک رادیو، یک پخش
اتومبیل ( یا هر سیستم پیچیده دیگر ) با استفاده از تجرید سلسله مراتبی ، فائق می آیید . تجریدهای سلسله مراتبی
سیستم های پیچیده را می توان در مورد برنامه های کامپیوتری نیز پیاده سازی نمود . داده های ی ک برنامه پردازش
گرای سنتی را می توان توسط تجرید اشیائ عضو آن ، منتقل نمود . یک ترتیب از مراحل پردازش را می توان به
مجموعه ای از پیامها بین اشیائ تبدیل نمود. بدین ترتیب ، هر یک از این اشیائ رفتار منحصر بفرد خودش را تعریف
خواهد کرد . می توانید با این اشیائ بعنوان موجودیتهای واقعی رفتار کنید که به پیامهایی که به آنها می گویند چکاری
انجام دهند ، مرتبط و وابسته هستند . این هسته اصلی برنامه نویسی شی ئ گراست . مفاهیم شی ئ گرایی در قلب جاوا
قرار گرفته اند ، همچنانکه پایه اصلی ادراکات بشری نیز هستند. مهم اینست که بفهمید این مفاهیم چگونه در برنامه
های کامپیوتری پیاده سازی می شوند . خواهید دید که برنامه نویسی شی ئ گرا یک نمونه قدرتمند و طبیعی برای
تولید برنامه هایی است که بر تغییرات غیر منتظره فائق آمده و چرخه حیات هر یک از پروژه های نرم افزاری اصلی
( شامل مفهوم سازی ، رشد و سالخوردگی ( را همراهی می کنند . بعنوان نمونه ، هر گاه اشیائ خوش تعریف و
رابطهای تمیز و قابل اطمینان به این اشیائ را در اختیار داشته باشید ، آنگاه بطور دلپذیری میتوانید قسمتهای مختلف
یک سیستم قدیمی تر را بدون ترس جابجا نموده یا بکلی از سیستم خارج نمایید .


oop سه اصل


کلیه زبانهای برنامه نویسی شی ئگرا مکانیسمهایی را در اختیار شما قرار میدهند تا مدل شی ئگرا را پیاده سازی نمایید .
و چند شکلی (inheritance) وراثت (encapsulation) این مدل شامل کپسول سازی
می باشد . اکنون نگاه دقیقتری به این مفاهیم خواهیم داشت . (polymorphism)


encapsulation کپسول سازی


کپسول سازی مکانیسمی است که یک کد و داده مربوط با آن کد را یکجا گرد آوری نموده ( در یک کپسول فرضی
قرار داده ) و کپسول بدست آمده را در مقابل دخالت یا سوئ استفاده های غیر مجاز محافظت می نماید . می توان
درنظر گرفت که کد داده مربوطه را نسبت به دستیابیهای غیرمعمول (wrapper) کپسول سازی را بعنوان یک لفافه
و غیر منتظره سایر کدهای تعریف شده در خارج از لفافه محافظت می کند . دستیابی به کد و داده موجود داخل لفافه
از طریق رابطهای خوب تعریف شده کنترل خواهد شد .در دنیای واقعی ، سیستم انتقال اتوماتیک در یک اتومبیل را
درنظر بگیرید . این سیستم صدها بیت از اطلاعات درباره موتور اتومبیل شما را کپسول سازی می کند : مثل سرعت
حرکت شما ، شیب سطح در حال حرکت و موقعیت اهرم انتقال . شما بعنوان یک کاربر قفط یک راه برای تاثیر نهادن
در این کپسول سازی پیچیده خواهید داشت : بوسیله تغییر اهرم انتقال دهنده ، اما با استفاده از سیگنالهای برگشتی یا
برف پاک کن شیشه جلو ، نمی توانید روی سیستم انتقال قدرت اتومبیل تاثیری بگذارید .
بنابراین دست دنده ( اهرم انتقال دنده ) یک رابط خوب تعریف شده والبته منحصر بفرد برای سیستم انتقال است .
مضاف بر اینکه آنچه درون سیستم انتقال اتفاق می افتد ، تاثیری بر اشیائ خارج از سیستم نخواهد داشت . بعنوان مثال ،
دنده های انتقال ، چراغهای جلو اتومبیل را روشن نمی کنند . از آنجاییکه سیستم انتقال اتوموبیلها کپسول سازی شده ،
دهها تولید کننده اتومبیل قادرند سیستم های انتقال دلخواه خود را طراحی و پیاده سازی نمایند . اما از نقطه نظر کاربر
اتومبیل همه این سیستم ها یکسان کار می کنند. درست همین ایده را می توان در برنامه نویسی کامپیوتر نیز پیاده سازی
نمود . قدرت کدهای کپسول شده در این است که هر کسی می داند چگونه به آنها دسترسی یافته و میتواند صرفنظر از
جزئیات اجرا و بدون ترس از تاثیرات جانبی از آنها استفاده نماید .
انجام می گیرد . اگر چه کلاس با جزئیات بیشتری در این کتاب (class) در جاوا کپسول سازی بر اساس کلاس
بررسی خواهد شد ، اما بحث مختصر بعدی در این مورد سودمند خواهد بود .کلاس توصیف کننده ساختار و رفتاری
( داده و کد ) است که توسط یک مجموعه از اشیائ اشاعه خواهد یافت . هر شی ئ در یک کلاس شامل ساختار و
رفتار تعریف شده توسط همان کلاس است . بهمین دلیل ، به اشیائ گاهی " نمونه هایی از یک کلاس " نیز می
گویند . بنابراین ، یک کلاس یک ساختار منطقی است ، یک شی ئ دارای واقعیت فیزیکی است . وقتی یک کلاس
بوجود می آورید ، در حقیقت کد و داده ای که آن کلاس را تشکیل می دهند ، مشخص می نمایید . این عناصر را
یک کلاس می نامند . (members) اعضائ
یا متغیرهای نمونه (member variables) بطورمشخص ، داده تعریف شده توسط کلاس را بعنوان متغیرهای عضو
member می نامند . کدی که روی آن داده ها عمل می کند را روشهای عضو (instance variables)
و آشنا باشید می دانید که روش در بر نامه C++ و C می نامند . اگر با (methods) یا فقط روشها methods
و می باشد . در برنامه های خوب نوشته شده جاوا روشها C++ و C در زبانهای (function) نویسی جاوا همان تابع
توصیف کننده چگونگی استفاده از متغیرهای عضو هستند . یعنی که رفتار و رابط یک کلاس توسط روشهایی تعریف
می شوند که روی داده های نمونه مربوطه عمل می کنند .
چون هدف یک کلاس پیاده سازی کپسول سازی برای موارد پیچیده است ، روشهایی برای پنهان کردن پیچیدگی
اجزائ در داخل یک کلاس وجود دارد . هر روش یا متغیر داخل یک کلاس ممکن است خصوصی
باشد . رابط عمومی یک کلاس ، معرفی کننده هر چیزی است که کاربران خارج از public یاعمومی private
کلاس نیاز به دانستن آنها دارند . روشها و داده های خصوصی فقط توسط کدهای عضو یک کلاس قابل دسترسی
هستند . بنابراین هر کد دیگری که عضو یک کلاس نباشد، نمی تواند به یک روش خصوصی دسترسی داشته باشد .
چون اعضائ خصوصی یک کلاس ممکن است فقط توسط سایر بخشهای برنامه شما از طریق روشهای عمومی کلاس
قابل دسترسی باشند، می توانید مطمئن باشید که فعل و انفعالات غیر مناسب اتفاق نخواهد افتاد . البته ، این بدان معنی
است که رابط عمومی باید با دقت طراحی شود تا کارکرد داخلی یک کلاس را چندان زیاد برملا نکند .


inheritance وراثت


وراثت رویه ای است که طی آن یک شی ئ ویژگیهای شی ئ دیگری را کسب می کند . این موضوع بسیار اهمیت
دارد زیرا از مفهوم طبقه بندی سلسله مراتبی حمایت می کند . همانطوریکه قبلا" گفتیم ، بسیاری از دانشها توسط طبقه
بندی سلسله مراتبی قابل فهم و مدیریت میشوند .بعنوان مثال سگهای شکاری طلایی یکی از انواع طبقه بندیهای سگها
هستند که بنوبه خود جزئی از کلاس پستانداران خونگرم بوده که در کلاس بزرگتری
تحت عنوان حیوانات قرار می گیرند . بدون استفاده از سلسله مراتب ، باید خصوصیات هر یک از اشیائ ر ا جداگانه
توصیف نمود . اما هنگام استفاده از سلسله مراتب ، برای توصیف یک شی ئ کافی است
کیفیتهایی که آن شی ئ را در کلاس مربوطه منحصر بفرد و متمایز می سازد ، مشخص نمایید . آن شی ئ ممکن است
خصوصیات عمومی را از والدین خود بارث برده باشد .
بدین ترتیب در مکانیسم وراثت ، یک شی ئ می تواند یک نمونه مشخص از یک حالت عمومی تر باشد . اجازه دهید
تا با دقت بیشتری به این رویه نگاه کنیم . بسیاری از افراد، دنیا را بطور طبیعی بعنوان مجموعه ای از اشیائ می دانند که
در یک روش سلسله مراتبی بیکدیگر مرتبط شده اند . نظیر حیوانات ، پستانداران و سگها . اگر بخواهید حیوانات را با
یک روش تجریدی توصیف نمایید ، باید برخی خصوصیات نظیر اندازه ، هوش و نوع اسکلت آنها را مشخص نمایید .
حیوانات همچنین ویژگیهای خاص رفتاری دارند ، آنها تغذیه نموده ، تنفس کرده و می خوابند . این توصیف از
خصوصیات و رفتار را توصیف " کلاس " حیوانات می نامند . اگر بخواهید توصیف یک کلاس مشخصتر از حیوانات
مثل پستانداران داشته باشید .
باید خصوصیات دقیقتری نظیر نوع دندانها و آلات پستانداری را مشخص نمایید . این را یک زیر کلاس
پستانداران گویند . چون پستانداران (super class) از حیوانات و خود حیوانات را کلاس بالای (subclass)
نوعی از حیوانات هستند ، بنابراین کلیه خصوصیات حیوانات را بارث برده اند. یک زیر کلاس ارث برنده درحقیقت
کلیه خصوصیات اجداد خود در سلسله مراتب کلاس را به ارث می برد .
وراثت و کپسول سازی ارتباط دو جانبه و فعل و انفعالی دارند . اگر یک کلاس برخی از خصوصیات را کپسول سازی
کند ، آنگاه هر یک از زیر کلاسها همان خصوصیات بعلاوه برخی ویژگیهای خاص خود را خواهند داشت . همین
مفهوم ساده و کلیدی است که به برنامه نویسی شی ئ گرا امکان داده تا در پیچیدگیها بجای روش هندسی ، بروش
خطی توسعه یابد . یک زیر کلاس جدید کلیه خصوصیات از کلیه اجداد خود را بارث می برد . این امر باعث شده
تافعل و انفعالات غیر قابل پیش بینی صادره از کدهای دیگر موجود در سیستم وجود نداشته باشد .


polymorphism چند شکلی


را می توان برای یک کلاس عمومی از فعالیتها (interface) چند شکلی مفهومی است که بوسیله آن یک رابط
بکار برد . فعالیت مشخص توسط طبیعت دقیق یک حالت تعریف می شود . یک پشته را در نظر بگیرید ( که در آن هر
چیزی که آخر آمده ، ابتدا خارج می شود ) . ممکن است برنامه ای داشته باشید که مستلزم سه نوع پشته باشد . یک
پشته برای مقادیر عدد صحیح ، یکی برای مقادیر اعشاری و یکی هم برای کاراکترها لازم دارید . الگوریتمی که این
پشته ها را اجرا میکند، یکسان است ، اگرچه داده های ذخیره شده در هر یک از این پشته ها متفاوت خواهد بود . در
پشته ایج اد نمایید ، و برای هر (routines) یک زبان شی ئ گرا ، شما باید سه مجموعه متفاوت از روالهای
مجموعه اسامی متفاوت اختیار کنید .اما براساس مفهوم چند شکلی در جاوا میتوانید یک مجموعه کلی از روالهای
پشته را مشخص نمایید که همگی از یک نام استفاده کنند .در حالت کلی مفهوم چند شکلی را می توان با عبارت "
را برای گروهی (generic) یک رابط و چندین روش " توصیف نمود . بدین ترتیب قادر هستید یک رابط ژنریک
از فعالیتهای بهم مرتبط طراحی نمایید . با طراحی یک رابط برای مشخص نمودن یک کلاس عمومی از فعالیتها، می
توان پیچیدگی برنامه ها را کاهش داد. این وظیفه کامپایلر است تا عمل مشخصی ( منظور همان روش است ) را برای
هر یک از حالات مختلف انتخاب نماید . شما بعنوان یک برنامه نویس لازم نیست این انتخاب را بصورت دستی انجام
دهید . شما فقط کافی است رابط کلی را بیاد سپرده و از آن به بهترین وجه ممکن استفاده نمایید .
در مثال مربوط به سگها ، حس بویایی سگ نوعی چند شکلی است . اگر سگ بوی یک گربه را استشمام کند ، پارس
کرده و بدنبال گربه خواهد دوید . اگر سگ بوی غذا را استشمام کند ، بزاق دهانش ترشح کرده و بطرف ظرف غذا
حرکت خواهد کرد . در هر دو حالت این حس بویایی سگ است که فعالیت می کند . تفاوت در آن چیزی است که
استشمام می شود ، یعنی نوع داده ای که به سیستم بویایی سگ وارد می شود . همین مفهوم کلی را می توان در جاوا
پیاده سازی نمود و روشهای متفاوت درون برنامه های جاوا را ساماندهی کرد .
چند شکلی ، کپسول سازی و وراثت در تقابل با یکدیگر کار می کنند هنگامیکه مفاهیم چند شکلی ، کپسولسازی و
وراثت را بطور موثری تلفیق نموده و برای تولید یک محیط برنامه نویسی بکار بریم ، آنگاه برنامه هایی تنومند و
غیر قابل قیاس نسبت به مدلهای رویه گرا خواهیم داشت . یک سلسله مراتب خوب طراحی شده ازکلاسها، پایه ای
است برای استفاده مکرر از کدهایی که برای توسعه و آزمایش آنها وقت و تلاش زیادی صرف نموده اید . کپسول
سازی به شما امکان می دهد تا کدهایی را که به رابط عمومی برای کلاسهای شما بستگی دارند ، بدون شکسته شدن
برای پیاده سازیهای دیگر استفاده نمایید . چند شکلی به شما امکان می دهد تا کدهای تمیز قابل حس ، قابل خواندن و
دارای قابلیت ارتجاعی ایجاد نمایید .
از دو مثالی که تاکنون استفاده شده ، مثال مربوط به اتومبیل کاملا" قدرت طراحی شی ئ گرا را توصیف می کند . از
نقطه نظر وراثت ، سگها دارای قدرت تفکر درباره رفتارها هستند ، اما اتوموبیلها شباهت بیشتری با برنامه های کامپیوتری
دارند . کلیه رانندگان وسائط نقلیه با اتکائ به اصل وراثت انواع مختلفی ( زیر کلاسها ) از وسائط نقلیه را می رانند .
خواه اتومبیل یک مینی بوس مدرسه ، یا یک مرسدس بنز ، یا یک پورشه ، یا یک استیشن خانوادگی باشد ، کمابیش
یکسان عمل کرده ، همگی دارای سیستم انتقال قدرت ، ترمز ، و پدال گاز هستند . بعد از کمی تمرین با دنده های یک
اتومبیل ، اکثر افراد براحتی تفاوت بین یک اتومبیل معمولی با یک اتومبیل دنده اتوماتیک را فرا می گیرند ، زیرا افراد
بطور اساسی کلاس بالا ، یعنی سیستم انتقال را درک می کنند .
افرادی که با اتومبیل سر و کار دارند همواره با جوانب کپسول شده ارتباط دارند . پدالهای گاز و ترمز رابطهایی هستند
که پیچیدگی سیستم های مربوطه را از دید شما پنهان نموده تا بتوانید براحتی و سهولت با این سیستم های پیچیده کار
کنید . پیاده سازی یک موتور ، شیوه های مختلف ترمز و اندازه تایرهای اتومبیل تاثیری بر ارتباط گیری شما با توصیف
کلاس پدالها نخواهند گذاشت.
آخرین خصوصیت ، چند شکلی ، بوسیله توانایی کارخانه های اتومبیل سازی برای اجرای طیف وسیعی از گزینه ها
روی یک وسیله نقلیه منعکس می شود . بعنوان مثال کارخانه ممکن است از سیستم ترمز ضد قفل یا همان ترمزهای
معمولی ، فرمان هیدرولیک یا چرخ دنده ای ، نیز از موتورهای 6،4 ،یا 8 سیلندر استفاده نماید
. در هر حال شما روی پدال ترمز فشار می دهید تا اتومبیل متوقف شود ، فرمان را می چرخانید تا جهت حرکت
اتومبیل را تغییر دهید ، و برای شروع حرکت یا شتاب بخشیدن به حرکت روی پدال گاز فشار می دهید . در این موارد
از یک رابطبرای ایجاد کنترل روی تعداد متفاوتی از عملکردها استفاده شده است
کاملا" مشخص است که استفاده از مفاهیم کپسول سازی ، وراثت و چند شکلی باعث شده تا اجزائمنفک با یکدیگر
ترکیب شده و تشکیل یک شی ئ واحد تحت عنوان اتومبیل را بدهند . همین وضعیت در برنامه های کامپیوتری مشاهده
می شود . بوسیله استفاده از اصول شی ئ گرایی ، قطعات مختلف یک برنامه پیچیده را در کنار هم قرار می دهیم تا
یک برنامه منسجم ، تنومند و کلی حاصل شود در ابتدای این بخش گفتیم که کلیه برنامه نویسان جاوا خواه ناخواه شی
ئ گرا کلیه برنامه نویسان جاوا با مفاهیم کپسول سازی ، وراثت و پلی مورفیسم آشنا خواهند شد.


مروری بر جاوا


نظیر سایر زبانهای برنامه نویسی کامپیوتر ، عناصر و اجزائ جاوا مجرد یا منفک از هم نیستند . این اجزائ در ارتباط
تنگاتنگ با یکدیگر سبب بکار افتادن آن زبان می شوند . این پیوستگی اجزائ در عین حال توصیف یکی از وجوه
خاص این زبان را مشکل می سازد . غالبا" بحث درباره یکی از جوانب این زبان مستلزم داشتن
اطلاعات پیش زمینه در جوانب دیگر است . در قسمتهای بعدی به شما امکان داده برنامه های ساده ای توسط زبان جاوا
نوشته و درک نمایید. جاوا یک زبان کاملا" نوع بندی شده است
در حقیقت بخشی از امنیت و قدرتمندی جاوا ناشی از همین موضوع است . اکنون بینیم که معنای دقیق این موضوع
چیست . اول اینکههر متغیری یک نوع دارد ، هر عبارتی ی ک نوع دارد و بالاخره اینکه هر نوع کاملا " و دقیقا "
خواه بطور مستقیم و صریح یا بوسیله پارامترهایی (assignments) تعریف شده است . دوم اینکه ، کلیه انتسابها
که در فراخوانی روشها عبور می کنند ، از نظر سازگاری انواع کنترل می شوند . بدین ترتیب اجبار خودکار یا تلاق ی
انواع در هم پیچیده نظیر سایر زبانهای برنامه نویسی پیش نخواهد آمد. کامپایلر جاوا کلیه عبارات و پارامترها را کنترل
می کند تا مطمئن شود که انواع ، قابلیت سازگاری بهم را داشته باشند . هر گونه عدم تناسب انواع ، خطاهایی هستند
که باید قبل از اینکه کامپایلر عمل کامپایل نمودن کلاس را پایان دهد ، تصحیح شوند .
و هستید ، بیاد بسپارید که جاوا نسبت به هر زبان دیگری نوع بندی C++ و C نکته : اگر دارای تجربیاتی در زبانهای
و می توانید یک مقدار اعشاری را به یک عدد صحیح نسبت دهید . همچنین C++ و C شده تر است . بعنوان مثال در
کنترل شدید انواع بین یک پارامتر و یک آرگومان انجام نمی گیرد . اما در جاوا این کنترل انجام می C در زبان
گیرد . ممکن است کنترل شدید انواع در جاوا در وهله اول کمی کسل کننده بنظر آید . اما بیاد داشته باشید که اجرای
این امر در بلند مدت سبب کاهش احتمال بروز خطا در کدهای شما
چرا جاوا برای اینترنت اهمیت دارد
اینترنت جاوا را پیشاپیش زبانهای برنامه نویسی قرار داد و در عوض جاو ا تاثیرات پیش برنده ای روی اینترنت داشته
است . دلیل این امر بسیار ساده است : جاوا سبب گسترش فضای حرکت اشیائ بطور آزادانه در فضای الکترونیکی
می شود . در یک شبکه ، دو نوع طبقه بندی وسیع از اشیائ در حال انتقال بین سرویس دهنده و رایانه شخصی شما
و برنامه های فعال (passive) وجود دارد : اطلاعات غیر فعال
خود را مرور می کنید ، در e-mail بعنوان نمونه هنگامیکه پست الکترونیکی (dynamic) . و پویا (active)
حال بررسی داده های غیر فعال هستید . حتی هنگامیکه یک برنامه را گرفته و بار گذاری می کنید ، مادامیکه از آن
برنامه استفاده نکنید کدهای برنامه بعنوان داده های غیر فعال هستند . اما نوع دوم اشیائی که امکان انتقال به رایانه
شخصی شما را دارند ، برنامه های پویا و خود اجرا هستند . چنین برنامه ای اگر چه توسط سرویس دهنده ارائه و انتقال
می یابد ، اما یک عامل فعال روی رایانه سرویس گیرنده است . بعنوان نمونه سرویس دهنده قادر است برنامه ای را
بوجود آورد که اطلاعات و داده های ارسالی توسط سرویس دهنده را نمایش دهد . بهمان اندازه که برنامه های پویا و
شبکه ای شده موردتوجه قرار گرفته اند بهمان نسبت نیز دچار مشکلاتی در زمینه امنیت و قابلیت حمل هستند . قبل از
جاوا ، فضای الکترونیکی شامل فقط نیمی از ورودیهایی بود که اکنون وجود دارند . همانطوریکه خواهید دید ،
جاوادرها رابرای یک شکل جدید از برنامه ها باز نموده است :


(applets) ریز برنامه ها


ریز برنامه ها و برنامه های کاربردی جاوا از جاوا برای تولید دو نوع برنامه می توان استفاده نمود: برنامه های کاربردی
یک برنامه کاربردی برنامه ای است که روی رایانه شما و تحت (applets) . و ریز برنامه ها (applications)
نظارت یک سیستم عامل اجرا می شود . بدین ترتیب یک برنامه کاربردی ایجاد شده توسط جاوا مشابه برنامه های
و خواهد بود . هنگامیکه از جاوا برای تولید برنامه های کاربردی استفاده میکنیم ، C++ و C ایجاد شده توسط
تفاوتهای زیادی بین این زبان و سایر زبانهای برنامه نویسی مشاهده نمی کنیم . اما ویژگی جاوا برای تولید ریز برنامه ها
یک برنامه کاربردی است که برای انتقال و حرکت روی (applet) دارای اهمیت زیادی است . یک ریز برنامه
اینترنت و اجرا توسط یک مرورگر قابل انطباق با جاوا طراحی شده است . یک ریز برنامه در حقیقت یک برنامه
ظریف جاوا است که بطور پویا در سراسر اینترنت قابل بارگذاری باشد ، درست مثل یک تصویر، یک فایل صوتی یا
یک قطعه ویدئویی .تفاوت اصلی در اینست که ریزبرنامه یک برنامه کاربردی هوشمند است و شباهتی با یک تصویر
متحرک یا فایل رسانه ای ندارد . بعبارت دیگر این برنامه قادر به عکس العمل در برابر ورودی کاربر و ایجاد تغییرات
پویا است .
ریز برنامه های جاوا بسیار جالب و هیجان انگیزند و قادرند دو مشکل اصلی یعنی امنیت و قابلیت حمل را پشت سر
بگذارند . قبل از ادامه بحث بهتر است مفهوم اصلی این دو مشکل را بیشتر مورد بررسی قرار دهیم .


امنیت


را بار گذاری می کنید با خطر یک (normal) همانطوریکه خودتان هشیار هستید ، هرگاه که یک برنامه عادی
حمله ویروسی مواجه خواهید شد . قبل از جاوا اکثر کاربران ، برنامه های قابل اجرا را بتناوب گرفته و بارگذاری می
برنامه ها می کردند . با این حال بسیاری از (Scanning) کردند و قبل از اجرا برای ویروس زدایی اقدام به اسکن
این کاربران نسبت به حمله ویروسها به سیستم خود نگران بودند . علاوه بر ویروسها ، نوع دیگری از برنامه های مزاحم
وجود دارند که باید در برابر آنها نیز ایمن ماند . این نوع برنامه ها قادرند اطلاعات خصوصی نظیر شماره کارتهای
اعتباری ،ترازهای حساب بانکی و کلمات عبور برای جستجو درسیستم فایلهای محلی رایانه شما را کشف نموده و
بین رایانه شما و برنامه شبکه ای شده ، بر این (firewall) استفاده نمایند . جاوا توسط ایجاد یک دیواره آتش
مشکلات فائق آمده است .

قابلیت حمل


انواع مختلفی از رایانه ها و سیستم های عامل در سراسر دنیا مورد استفاده قرار می گیرند و بسیاری ازاین سیستم ها با
اینترنت متصل میشوند. برای اینکه برنامه ها بتوانند بطور پویا روی انواع مختلف سیستم ها و محیط های عامل متصل به
اینترنت بارگذاری شوند ، وسائلی برای تولید کدهای اجرایی و قابل حمل مورد نیاز است . همانطوریک ه بزودی
خواهید دید ، همان مکانیسمی که امنیت را بوجود می آورد سبب ایجاد قابلیت حمل نیز خواهد شد .
خصلتهای جاوا
هیچ بحثی درباره اصل و نسب جاوا بدون بررسی خصلتهای آن کامل نخواهد شد . اگر چه امنیت و قابلیت حمل ،
نیروهای اصلی تسریع کننده روند شکل گیری جاوا بودند اما عوامل دیگری هم وجود دارند که در شکل نهایی این
زبان تاثیر داشتند . این ملاحظات کلیدی توسط تیم جاوا در اصطلاحات زیر و بعنوان خصلتهای جاوا معرفی شده اند .
simple • ساده
secure • ایمن
portable • قابل حمل
object-oriented • شی ئ گرا
Robust • قدرتمند
Multithreaded • چند نخ کشی شده
Architecture-neutral • معماری خنثی
Interpreted • تفسیر شده
High-performance • عملکرد سطح بالا
Distributed • توزیع شده
Dynamic • پویا
قبلا" دو تا از این خصلتها را بررسی کرده ایم : ایمن و قابل حمل . اکنون سایر خصلتهای جاوا را یک به یک بررسی
خواهیم نمود .


ساده


جاوا طوری شده که برنامه نویسان حرفه ای بسادگی آن را فراگرفته و بطور موثری بکار می برند . فرض کنیم که شما
تجربیاتی در برنامه نویسی دارید ، آنگاه برای کار با جاوا مشکل زیادی نخواهید داشت . اگر قبلا " با مفاهیم شی ئ
گرایی آشنا شده باشید ، آنگاه آموختن جاوا باز هم آسان تر خواهد شد . از همه بهتر اینکه اگر یک برنامه نویس
و C++ و C باشید ، حرکت بطرف جاوا بسیار راحت انجام می گیرد . چون جاوا دستور زبان C++ مجرب
را بارث برده ، اکثر برنامه نویسان برای کار با جاوا دچار مشکل C++ وهمچنین بسیاری از جوانب شی ئ گرایی
یا در جاوا داخل نشده و یا با روشی آسان تر C++ نخواهند شد . علاوه بر اینکه بسیاری از مفاهیم پیچیده
و خاصیت دیگری در جاوا وجود داردC++ و C و ساده تر مورد استفاده قرار گرفته اند . فراسوی شباهتهای جاوا با
که فراگیری آن را بسیار ساده تر می کند : جاوا تلاش کرده که جنبه های استثنایی و خارق العاده نداشته باشد . در
جاوا ، تعداد اندکی از شیوه های کاملا" توصیف شده برای انجام یک وظیفه وجود دارد .


شی ئ گرا


اگر چه این زبان از اجداد خود تاثیر گرفته ، اما طوری طراحی نشده تا کد منبع آن قابل انطباق با سایر زبانهای برنامه
نویسی باشد . این خاصیت به تیم جاوا اجازه داده تا آزادانه روی یک تخته سنگ حکاکی نمایند . یکی از نتایج این
(objects) آزادی در طراحی ، یک روش تمیز، قابل استفاده و واقعیت گرا برای اشیائ
است . جاوااز بسیاری از محیط های نرم افزاری اولیه براساس اشیائ مواردی را به
تحت عنوان " هر چیزی یک شی . است " و نظریه واقعیت (purist) عاریت گرفته و توازنی بین نظریه لفظ قلمی
گرایی " جلوی راه من قرار نگیر " بوجود آورده است . مدل شی ئ در جاوا بسیار ساده و براحتی قابل گسترش است
بعنوان عملکردهای سطح بالای غیر شی ئ تلقی می (integers) در حالیکه انواع ساده آن نظیر اعداد صحیح
شوند .


قدرتمند


محیط چندگانه روی وب ایجاب کننده تقاضاهای غیر عادی برای برنامه هاست ، زیرا این برنامه ها باید در طیف
وسیعی از سیستم ها اجرا شوند . بدین ترتیب در طراحی جاوا اولویت اول توانایی ایجاد برنامه های قدرتمند بوده
است . برای کسب اطمینان جاوا شما را به تعداد محدودی از نواحی کلیدی محدود می کند تا مجبور شوید اشتباهات
خود را در توسعه برنامه خیلی زود پیدا کنید . در همین حال جاوا شما را از نگرانی درباره بسیاری از اشتباهات رایج
ناشی از خطاهای برنامه نویسی می رهاند . از آنجاییکه جاوا یک زبان کاملا" نوع بندی شده است ، هنگام کامپایل کد
شما را کنترل می کند . اما این زبان کدهای شما را هنگام اجرا نیز کنترل می نماید . در حقیقت بسیاری از اشکالات
هارددیسک به شیار که اغلب در حالتهای حین اجرا ایجاد می شوند ، در جاوا ناممکن شده اند . آگاهی بر اینکه آنچه
شما نوشته اید بصورتی قابل پیش بینی در شرایط متغیر عمل می کند ، یکی از جنبه های
اصلی جاوا است .
برای درک بهتر قدرتمندی جاوا، دو دلیل عمده شکست برنامه ها را درنظر بگیرید :اشتباهات در مدیریت حافظه و
شرایط استثنایی پیش بینی نشده ( یعنی خطاهای حین اجرا . ( مدیریت حافظه در محیطهای برنامه نویسی سنتی یکی از
و برنامه نویس باید بصورت دستی کل حافظه پویا را C++ و C وظایف دشوار و آزار دهنده است . بعنوان نمونه در
تخصیص داده و آزاد نماید . این امر گاه منجر به بروز مشکلاتی می شود . بعنوان نمونه گاهی برنامه نویسان فراموش
می کنند حافظه ای راکه قبلا "تخصیص یافته ، آزاد نمایند . یا از این بدتر ، ممکن است تلاش کنند حافظه ای را که
توسط بخشی از کد ایشان در حال استفاده است ، آزاد نمایند . جاوا بوسیله مدیریت تخصیص حافظه و تخصیص مجدد
حافظه واقعا" این مشکلات را از میان برداشته است . ( در حقیقت تخصیص مجدد کاملا" خودکار انجام می گیرد، زیرا
جاوا یک مجموعه سطل آشغال برای اشیائ غیر قابل استفاده تهیه نموده است . ) شرایط استثنایی در محیط های سنتی
ا اتفاق می افتند و باید توسط ساختارهای بد ترکیب "file not found" اغلب در حالتهایی نظیر " تقسیم بر صفر "یا
object-oriented و زمخت مدیریت شوند . جاوا در این زمینه بوسیله تدارک اداره استثنائات شی ئ گرایی
این مشکل را حل کرده است . در یک برنامه خوش ساخت جاوا، کلیه خطاهای هنگام اجرا توسط برنامه شما مدیریت
خواهد شد .


چند نخ کشی شده


(interactive) جاوا برای تامین نیازمندیهای دنیای واقعی بمنظور ایجاد برنامه های شبکه ای و فعل و انفعالی
طراحی شده است . برای تکمیل این هدف ، جاوا از برنامه نویسی چند نخ کشی حمایت می کند که امکان نوشتن
برنامه هایی به شما میدهد که در آن واحد چندین کار را انجام می دهند . سیستم حین اجرای جاوا ، یک راه حل
ارائه می دهد که (process) زیبا و بسیار ماهرانه برای همزمانی چندین پردازش
امکان ساخت سیستم های فعل و انفعالی که بنرمی اجرا میشوند را بوجود آورده است . راه حل سهل الاستفاده جاو ا
برای چند نخ کشی شده به شما امکان تفکر درباره رفتار خاص برنامه تان ( و نه یک زیر سیستم از چند وظیفه ای ) را
می دهد .


Architecture-Neutral معماری خنثی


یکی از مشغولیتهای اساسی طراحان جاوا موضوع طول و قابلیت حمل کدها بود . یکی از مشکلات اصلی سر راه برنامه
نویسان این است که تضمینی وجود ندارد تا برنامه ای را که امروز می نویسید فردا حتی روی همان ماشین اجرا شود .
ارتقائ سیستم های عامل و پردازنده ها و تغییرات در منابع هسته ای سیستم ممکن است دست بدست هم داده تا یک
برنامه را از کار بیندازند . طراحان جاوا تصمیمات متعدد و دشواری در جاوا و حین اجرا اتخاذ نمودند تا بتوانند این
موقعیت را دگرگون نمایند . هدف آنها عبارت بود از : یکبار بنویسید ، هر جایی ، هر زمان و برای همیشه اجرا کنید .
این هدف تا حد زیادی توسط طراحان جاوا تامین شد .
تفسیر شده و عملکرد سطح بالا
همانطوریکه دیدیم ، جاوا قدرت ایجاد برنامه هایی قابل انطباق با چندین محیط را بوسیله کامپایل کردن یک نوع
معرفی واسطه تحت عنوان کد بایتی پیدا کرده است . این کدها روی هر نوع سیستمی که یک حین اجرای جاوا را
فراهم نماید ، قابل اجرا می باشند . بسیاری از راه حلهای قبلی در زمینه برنامه های چند محیطه سبب کاهش
و از کمبزدها و PERL و،Tcl ،BASIC سطح عملکرد برنامه ها شده بود .سایر سیستم های تفسیر شده نظیر
نیز بخوبی اجرا شود . اگر چه cpu نارساییهای عملکرد رنج می بردند . اما جاوا طوری طراحی شده تا روی انواع
صحت دارد که جاوا تفسیر شده است اما کدهای بایتی جاوا آنچنان دقیق طراحی شده که می توان آنها را بسادگی و
بطور مستقیم به کدهای ماشین خاص شما برای عملکردهای سطح بالا ترجمه نمود . سیستم های حین اجرای جاوا که
این بهینه سازی " درست در زمان " را اجرا می کنند ، سبب از دست رفتن هیچیک از مزایای کدهای مستقل از زیربنا
نخواهد شد. اکنون دیگر عملگرد سطح بالا و زیربناهای متعدد در تناقض با یکدیگر نیستند .


توزیع شده


را تبعیت می کند . در حقیقت ، Tcp/ip جاوا مختص محیط توزیع شده اینترنت طراحی شده زیرا پروتکل های
oak چندان تفاوتی با دستیابی به یک فایل ندارد . روایت اولیه جاوا یعنی URL دستیابی به یک منبع توسط آدرس
دربرگیرنده جنبه هایی برای پیام رسانی آدرسهای داخلی فضای الکترونیکی بود . این امر امکان می داد تا اشیائ روی
دو نوع رایانه متفاوت ، پردازشهای از راه دور را اجرا نمایند . جاوا اخیرا"این رابطها را در یک بسته نرم افزاری بنام
احیائ نموده است . این جنبه یک سطح غیر موازی از تجرد برای (RMI) Remote Method Invocation
برنامه نویس سرویس گیرنده / سرویس دهنده بوجود آورده است .


پویا


همراه برنامه های جاوا، مقادیر قابل توجهی از اطلاعات نوع حین اجرا وجود دارد که برای ممیزی و حل مجدد دستیابی
به اشیائ در زمان اجرا مورد استفاده قرار می گیرند . این امر باعث پیوند پویای کد در یک شیوه مطمئن و متهورانه می
کاملا" قاطع است ، جایی که اجرا بصورت پویا ارتقائ (applet) شود . این مسئله برای قدرتمندی محیط ریز برنامه
The Byte codes جادوی جاوا کدهای بایتی
کلید اصلی جادوی جاوا برای حل مشکل امنیت و قابلیت حمل در این است که خروجی یک کامپایلر جاوا، کدهای
قابل اجرا نیستند، بلکه کدهای بایتی هستند . کد بایتی یک مجموعه کاملا" بهینه شده از دستورالعمل هایی است که
(run- طراحی شده که معادل سیستم حین اجرای (Virtual Machine) برای اجرا توسط یک ماشین مجازی
برای کد بایتی است . این امر ممکن (interpreter) جاوا باشد . یعنی سیستم حین اجرای جاوا یک مفسر time)
به کد قابل اجرا کامپایل می شود . در حقیقت اکثر C++ است تا حدی سبب شگفتی شود. همانطوریکه اطلاع دارید
زبانهای برنامه نویسی مدرن طوری طراحی شده اند که قابل کامپایل نه قابل تفسیر باشند و این امر بلحاظ مسائل اجرایی
است .اما این واقعیت که برنامه های جاوا قابل تفسیر شدن است به حل مشکلات پیوسته با بارگذاری برنامه ها روی
اینترنت کمک می کند . دلیل آن روشن است .
جاوا بگونه ای طراحی شده تا یک زبان قابل تفسیر باشد. از آنجاییکه برنامه های جاوا قبل از آنکه قابل کامپایل باشند
قابل تفسیر هستند، امکان استفاده از آنها در طیف گسترده ای از محیط ها وجود دارد . دلیل آن هم بسیار روشن است .
فقط کافی است تا سیستم حین اجرای جاوا برای هر یک از محیط ها اجرا گردد . هنگامیکه بسته نرم افزاری حین اجرا
برای یک سیستم خاص موجود باشد ، برنامه جاوا روی آن سیستم قابل اجرا خواهد شد . بیاد داشته باشید که اگر چه
جزئیات سیستم حین اجرای جاوا از یک محیط تا محیط دیگر متفاوت است ، اما همه آنها یک کد بایتی جاوا را تفسیر
متصل به اینترنت ، باید روایتهای cpu می کنند . اگر جاوا یک زبان قابل کامپایل می بود ، آنگاه برای هر یک از انواع
مختلفی از جاوا نوشته می شد . این راه حل چندان قابل انطباق نیست. بنابراین "تفسیر" راحتترین شیوه برای ایجاد برنامه
های واقعا" قابل حمل است .
این واقعیت که جاوا یک زبان قابل تفسیراست ، به مسئله امنیت هم کمک میکند .از آنجایی که اجرای هر یک برنامه
های جاوا تحت کنترل سیستم حین اجرا انجام شده سیستم فوق می تواند برنامه را دربرگرفته و مانع تولید اثرات جانبی
خارج از سیستم گردد . همانطوریکه خواهید دید ، مسئله امنیت نیز توسط محدودیت های خاصی که در زبان جاوا
وجود دارد اعمال خواهد شد .
هنگامیکه یک برنامه تفسیر میشود، معمولا" کندتر از زمانی که به کدهای اجرایی کامپایل شود ، اجرا خواهد شد . اما
در مورد جاوا این تفاوت در زمان اجرا چندان زیاد نیست .استفاده از کد بایتی امکان اجرای سریعتر برنامه هارا بوجود
می آورد .یک نکته دیگر : اگر چه جاوا طوری طراحی شده تا تفسیر شود ، اما محدودیتی برای کامپایل کدهای بایتی
آن به کدهای معمولی وجود ندارد . حتی اگر کامپایل پویا به کدهای بایتی اعمال شود ، همچنان جنبه های امنیتی و
قابلیت حمل آن محفوظ می ماند ، زیرا سیستم حین اجرا همچنان درگیر محیط اجرایی می ماند . بسیاری از محیط های
کامپایل نمودن کدهای بایتی به کدهای معمولی "(just in time() حین اجرای جاوا این روش " درست در زمان
می باشند . C++ را مورد استفاده قرار می دهند . چنین عملکردی قابل رقابت با
جاوا یک زبان کاملا" نوع بندی شده است
در حقیقت بخشی از امنیت و قدرتمندی جاوا ناشی از همین موضوع است . اکنون ببینیم که معنای دقیق این موضوع
چیست . اول اینکه هر متغیری یک نوع دارد ، هر عبارتی یک نوع دارد و با لاخره اینکه هر نوع کاملا " و دقیقا "
خواه بطور مستقیم و صریح یا بوسیله پارامترهایی (assignments) تعریف شده است . دوم اینکه ، کلیه انتسابها
که در فراخوانی روشها عبور می کنند ، از نظر سازگاری انواع کنترل می شوند . بدین ترتیب اجبار خودکار یا تلاقی
انواع در هم پیچیده نظیر سایر زبانهای برنامه نویسی پیش نخواهد آمد. کامپایلر جاوا کلیه عبارات و پارامترها را کنترل
می کند تا مطمئن شود که انواع ، قابلیت سازگاری بهم را داشته باشند . هر گونه عدم تناسب انواع ، خطاهایی هستند
که باید قبل از اینکه کامپایلر عمل کامپایل نمودن کلاس را پایان دهد ، تصحیح شوند .
و هستید ، بیاد بسپارید که جاوا نسبت به هر زبان دیگری نوع بندی C++ و C نکته : اگر دارای تجربیاتی در زبانهای
و می توانید یک مقدار اعشاری را به یک عدد صحیح نسبت دهید . همچنین C++ و C شده تر است . بعنوان مثال در
کنترل شدید انواع بین یک پارامتر و یک آرگومان انجام نمی گیرد . C در زبان
اما در جاوا این کنترل انجام می گیرد . ممکن است کنترل شدید انواع در جاوا در وهله اول کمی کسل کننده بنظر
آید . اما بیاد داشته باشید که اجرای این امر در بلند مدت سبب کاهش احتمال بروز خطا در کدهای شما می شود.


و در آخر جاوا :


- ساده
- شىء گرا
(Portable) قابل انتقال
(Distributed) توزیع شده
کارایى بالا
(Interpreted) ترجمه شده
Multithreaded

 

 

  انتشار : ۱۴ شهریور ۱۳۹۷               تعداد بازدید : 810

برچسب های مهم

آموزش نحوه تهیه مدار چاپی

آموزش نحوه تهیه مدار چاپی

همه کسانی که در زمینه طراحی و ساخت مدارات الکترونیکی فعالیت می کنن و با مدارات آزمایشی سر و کار دارند با مسائل مربوط به استفاده از فیبر سوراخدار و مدارات چاپی آشنا هستند. معمولا برای پیاده سازی مدارات کوچک از فیبر های سوراخدار آماده موجود در بازار استفاده می کنیم. ولی زمانی ... ...


مطالب تصادفی

  • بررسی شبکه¬های بدنی بی¬سیم برای کاربردهای پزشکی(به همراه چندین مقاله و فایل پاور اماده جهت ارائه)
  • برنمه سودوکو گرافیکی ویژوال همراه با توضیحات کدها و توابع به کار رفته در پروژه
  • برنامه NQUEEN گرافیکی با زبان ویژال بسیار ساده همراه با توضیحات در برنامه
  • برنامه برج هانوی ویژوال گرافیکی
  • ترجمه مقاله The optical character recognition of Urdu-like cursive scripts (تشخیص کاراکترهای نوری از اسکریپت های اردو مانند)
  • Cloud Computing یا رایانش ابری به زبان ساده  برگرفته شده از MyTeacher.Blog.ir
  • معرفی بیش از ۲۵ ابزار مجانی داده کاوی برای آنالیز بهتر داده ها
  • پایان نامه کشف تقلب در شبکه های اجتماعی

استان سمنان - بخش گلستان

در صورت عدم وجود مقاله یا پروژه مورد نظر شما در این فروشگاه لطفا آدرس لینک مقاله خود یا مشخصات پروژه خود را از یکی از طرق ذیل برای ما ارسال نموده تا در اسرع وقت با کمترین هزینه حضور شما ارسال نماییم.تلفن تماس جهت ارتباط در شبکه اجتماعی تلگرام و از طری