صفحه 1:
مقدمه 3| Activex نقلاب مدول های نرم افزا مزلفعه نوسي خني كرا ‎Axtivex‏ یخچه کوتاهی | ۷ نقاط ضعف و قوت وضعیت جاوا چگونه است ؟ ‎So Activex‏ حاوا ۸ بکار بردن کنترل هاء نمایشگ ها ۸0۵161 13۷3 اجرای 11ل خا دن اجرا کننده oS Las Activex cls ati, sJava gle ‏تغبیر دادن درجه امنیت برنامه‎ Activex ۵۷64 ‏و امنیت‎

صفحه 2:
امضاء دیجیتالی از دیدگاه کاربرار امضای دیجیتالی از دید برنامه نویسی افزارهای مورد نیاز برای امضای دیجیتا جاوا چیست ؟ ایجاد یک کلابر تحلیل برنامه 6 ورائت

صفحه 3:
ایجاد سلسله مرائب کلاسر ائت چگونه ‎as‏ وزاثت سغره و جبد ‎ANE‏ 3265 و بسته ها 1056]13©©5- واسط ها ايجاد يك زير كلاس

صفحه 4:
مقدمه : جاوا کی از تکیولوویهاین عمجه ایجاف سحجویأت فال در ایسترفت اس اپلت های جاوا , که توسط کاوشگر بار و اجرا می شوند . دارای بسیاری از قابلیت های «ر۸() هستند اپلت های جاوا برای جلوگیری از اقدامات خرابکارانه . فاقد توانایی های خاص ( از قبيل مسترسى يه ۱ سیستم فایل <ظا9) هستند و این آنها را بسیار محدود كرده است . تلوری ۰ اپلت های ۱ جاوا ایمن هستند چون اساسا نمی توانند کارهای خطرناک انجام دهند ! علاوه بر آن چون جاوا زبانی برای اینترنت است ۰ از ایمنی و حفاظت ذاتی بالایی ‎valid fig‏ طراحان چاوا ‎By hall‏ محیظ برخافه نویسی آمن را مد ‎Maths‏ fal 3 از نظر

صفحه 5:
مقدمه : مسعله حفاظت سیستم ها رابطه. تنگاتنگی با اشازه گرها دارد . اکثر مهاجمان برای ورود غیر قانوئی به سیستم های دیگران از این اشاره گرها استفاده می کنند و جاوا با حذف اشاره گرها این راه را سد کرده است . تکنولوژی 0۳8۳ یکی از قویترین ابزارهاییست که برنامه نویسان ویندوز در اختیار دارند . ریبا هر برنامه ای که بنویسند از 28۳() استفاده خواهند کرد جهت کد نویسی و طراحی صفحات وب نیاز به یک 3۳) ۳" ساده مانند اجمصت() که در تمامی ویندوزها قابل دسترسی می باشد و نیاز به نصب ‎Pert‏ ‎Ector‏ جديد نيست ‎٠‏ ضمنا سیستم شما باید دارای مشخصات سخت افزاری ذیل باشد - حداقل سیستم مورد نیاز پنتیوم ۲۳۳ fal 9

صفحه 6:
مقدمه : - ۱۶ مگابایت ‎Raw‏ ‏- حدود ۶۰۰ مگا بایت فضای آزاد

صفحه 7:
آشناپي با مش تکنولوژی 78/۳ یکی از فویترین ابزارهاییست که برنامه نویسان ویندوز در اختیار دارند . تقریبا هر برنامه ای که بنویسند از «9۳) استفاده خواهند os در این مطالب با سر فصل ذیل آشنا خواهیم شد : - اهمیت مدول های نرم افزاری - تاریخچه و اصطلاحات /2۸) - درک مفهوم جاوا و کنترل >فه) - مطالبی درباره امنیت و توزیع کنترل های 9۸۳)

صفحه 8:
انقلاب مدول های نرم افزاری : همانند هر صنعت دیگری ۰ کارآیی یکی از دغدغه های اصلی برنامه نویسان است و یکی از جنبه های مهم کارآیی اجتناب از دوباره کاری است . اگر کدی نوشته ايد که کار خاصی را انجام می دهد . چرا باید دفعه بعد همان کد را دوباره بتویسید ؟ اولین گام در راه استفاده مجدد از کدها . مفهوم زیر مجموعه يا روال ‎Provedure‏ ‏است . کدی را یکبار مى نويسيد و از آن به بعد در هر جای برنامه که لازم بود فقط کافی است آنرا احضار 2 کنید . قرار دادن روال های کلی در یک مدول برنامه نویسی قدمی به پیش بود . با اين تمهید می توان از آن روال ها در برنامه های مختلف استفاده کرد .

صفحه 9:
برنامه نویسی شی كرا : به موازات رشد برنامه نویسی مدولار . تکنولوژی دیگری در زمینه برنامه نویسی اختراع شند و وتف یافت: برنامه نویسی شی گرا یا بججو() لهس — ‎xe OOP Objet‏ 5 توسعه این تکنولوژی رشد و پیچیدگی روز افزون برنامه ها و مشکلاتی بود که به تيغ آن برنامه نویسان را درگیر خود کرده بود . مهمترین منبع این مشکلات بر هم کنش غير قابل پیش بینی قسمتهای مختلف یک برنامه با یکدیگر بود . چون این قسمتها مانند دانه های یک زنجیر در هم بافته شده بوند و هر تغییری در یک قسمت به راحتی سایر قسمتها را متاثر می کرد راه حل اين مشكل آن بود كه هر قسمت برنامه در یک بسته بنام شی ا۳۳(). کپسوله یا 7۵9 شود . ساز و کار درونی هر شی مطلقا از دید دنیای خارج مخفی ‎get ll yal‏ نود ری یز عملکزد وی یگذارند: لته یک فنی نمی تواندیگلی fal 9

صفحه 10:
برنامه نویسی شی كرا : از دنیای اطراف خود ایزوله شود چون بدین ترتیب دیگر چیز بی فایده ای بیش نخواهد بود ! به همین دلیل برای ارتباط با دیگر قسمتهای برنامه . هر شی از وسیله ای بنام واسط یا م1۳8۳" استفاده می کند . واسط هر شی دو بخش دارد : خواص ( داده ها ) و متدها ( کدها ) ی آن .

صفحه 11:
تاریخچه کوتاهی از ‎Driver‏ : برنامه نویسی مدولار سالها برنامه نویسان را به خود مشغول کرده بود و در واقع یکی از محرکهای اصلی توسعه سیستم عامل ويندوز هم همين ايده كدهاى قابل اشتراك و قابل استفاده مجدد بوده است . اولین گام در اه پياده سازی عناصر مدولار تکنولوژی ظرا) یا بط لسیا؟) اجب پجتلرا ار( بود . هدف اولیه 08 ایجاد سندهای مرکب علهمحه) لصح() با استفاده از برنامه های مختلف یوت سندی که مقداری متن و مقداری نمودار دارد . و هر کدام آنها با نرم افزار خاص خود. ایجاد شده اند ء نمونه ای از یک سند مرکب است . وقتی با متن کار می کنید رم افزارها واژه پرداز کنترل را بدست می گیرد و وقتی با نمودارها کار می کنید نرم افزار ترسیمی مسئولیت را به عهده می گیرد . 68() با وجود کندی و مشکلات دیگر متلماً قدمی یه پیش يوه fal a

صفحه 12:
تا یخچه کوتاهی از ذه) : تكنولوزى 0/08 خود بر يك استاندارد کلی تر بنام 20000) یا اط:() بط( ۳#() لستوار لست بزودی(0006) از سندهای مركب فراتر رفت و 01/02 را هم بدنبال خود کشاند و از آن به بعد 0108 اصطلاحى شد برای هر چیزی که از تکنولوژی 2060) استفاده می کرد . سالها بعد که میکروسافت بطور جدی درگیر اینترنت شد . اصطلاح 928/۳) هم وارد ادبیات کامپیوتری شد . ابتدا اين اصطلاح فقط در رابطه با اينترنت و وب بود اما اوضاع بدین منوال باقی نماند و اكنون »م0098 به آن بخش از تكنولوزيهاى 0001 كفته مى شود كه در آنها يى قطعه نرم افزارى امكانات خود را در اختيار برنامه هاى ديكر مى كذارد . يكى از ادعاهاى »ه0099 ( كه بويره به اينترنت مربوط مى شود ) يشتيبانى از نرم افزارهاى توزيع شده لجح ه0) است . و اين يعنى . كنترل هاى »28 19) به شما سرویس خواهند دادء fal ©

صفحه 13:
کوتاهی از «) : حتی اگر در کامپیوتری دیگر ( و هزاران کیلومتر دورتر ) باشند . اما چه بر سر 002 آمد ؟ اين تكنولوزى دوباره به وضعیت اولیه اش برگشت و اکنون فقط با ستتتهای مرب سروكار ذارة,.

صفحه 14:
نقاط ضعف و قوت >/۳۸) : تکنولوژی 60۳8/۳ بهترین وسیله برای ایجاد محتویات فعال در وب است البته برخی با این عقیده مخالفند و باید گفت که این تکنولوژی مسلما تنها ابزار محتویات فعال وب نیست . پس اجازه دهید نگاهی به جنبه های مثبت و منفی اين تكنولوزى بيندازيم . نقاط قوت : يكى از مهمترين نقاط قوت «8() قدرت آن است . یک کنترل 0۳۸۳۲ تقريباً از عهده هر کاری که یک برنامه معمولی بتواند انجام دهد . برمی آید . از دیدگاه یک برنامه نویس 9 بهترین جنبه یک ابزار خلق محتویات دینامیک است . دیگر ابزارهای محتویات قعال » مانند جاوا و ‎ODT‏ در این زمینه بسیار محدودتر از >صره() هستند . نکته مثبت دیگر ۰ حداقل برای بسیاری از اقراد . امکان استفاده از مهارتهای عادی برنامه نويسى در خلق كنترل هاى “ج28 است . روش انجام باركيرى هاى وب هم يكى از مزاياى «ر998) است fal ae

صفحه 15:
نقاط ضعف و قوت >/۳۸) : وقتی به یک صفحه وب که عناصر ۳8/۳ دارد می روید . وقایع ذیل اتفاق می افتد : ۱- اطلاعات مختصری دربره کنترل و شماره ویرایش آن بار می شود . ۲- کاوشگر پررسی می کند که آیا اين نرم افزار در کامپیوتر شما نصب شده یا خیر . ۳- اگر اين نرم افزار در سیستم شما وجود نداشت ( یا اینکه ویرایش آن قدیمی تر بود) , كاوشكر آنرا بار کرده و سپس نصب و اجرا خواهد کرد . ۴- اگر نرم افزار در سیستم شما وجود داشت . کاوشگر آنرا از همان جا اجرا خواهد کرد . حتما متوجه مزیت این روش شده ايد : هر قطعه نرم افزارى فقط يكبار بايد بار شود و دفعات بعد ديكر نيازى به بار شدن آن نخواهد بود بنابراين صرفه جويى زيادى در زمان نمایش آن صفحه وب خواهد شد . در ابزارهایی مانند جاوا . اين قبیل نرم اقزارها باید هر دفعه مجددا بار شوند و این اجرای آنها را به مراتب کندتر خواهد کرد . fal a6

صفحه 16:
نقاط ضعف و قوت >/۳۸) : نقاط ضعف - هیچ چیز کامل نیست ! شاید مهمترین جنبه منفی 08() ضعف امنیتی آن باشد . این ضعف ظاهرا یکی از تبعات اجتناب ناپذیر قدرت و انعطاف تکنولوژی صم فاه است :مب ياك برقامه نويسن شرور می تواند براحتی با این تکنولوژی نرم افزاری بسازد که به کامپیوتر دیگران صدمه بزند . با توجه به اين وضعیت ۰ آیا می توان هنگام برخورد با کنترل های 6787 روی اینترنت احساس راحتی کرد ؟ پاسخ این سئوال مثبت است و در ادامه توضیح خواهیم داد که چگونه میکروسافت اقدامات امنیتی خاص را برای این تکنولوژی پیاده سازی کرده است . با اين وجود همواره این مطلب را در نظر داشته باشید که هیچ سد امنیتی ذاتاً تقوذ نایذیز يست + یکی دیگر از نقاط ضعف تکنولوژی 78/۳۲() آن است که فقط برخی از کاوشگرهای امروزی از آن پشتیبانی می کنند . اگر در یک صفحه وب نرم افزارهای 9۳8۳6) وجود fal 06

صفحه 17:
نقاط ضعف و قوت >/۳۸) : داشته باشد و فردی با یک کاوشگر که از «۳8/۳) پشتیبانی نمی کند این صفحه را باز کند قادر به استفاده از مزایای آن نخواهد بود . خوشبختانه این مشکل آنچنان که به نظر می آید حاد نیست . چون دو تا از مهمترین lj] Octscape Ouviggion , Iotervet Pxplorer) G3 cle R595 تکنولوژی پشتیبانی می کنند ( اولی مستقیم و دومی از طریق یک افزودنی قابل نصب ) به هر حال . وقتی با برنامه نویسی اینترنت سروکار داریم ۰ این مشکل اساسا وجود ندارد چون این ما هستیم که شبکه را کنترل می کنیم . مشکل دیگر رفتار کنترل های ‎cual I Bote‏ که تمام آنها روی سیستم شما جا خوش کرده و فضای هارددیسک را اشغال خواهند کرد . اما بنظر من نگرانی در این مورد هم بیهوده است چون عناصر 0() معمولا کوچکند و چند مگابایت ‎le‏ که احتمالا ( صدها کنترل »ات6 ) اشغال خواهند کرد در هارد دیسک های بسیار بزرگ امروزی نمی توانند مشکلی ایجاد کند . fal ae

صفحه 18:
وضعیت جاوا چگونه است ؟ جاوا یکی دیگر از تکنولوژیهای عمده ایجاد محتویات فعال در اینترنت اپلت های جاوا . که توسط کاوشگر بار و اجرا می شوند . دارای بسیاری از قابلیت های «92#۳) هستند . اپلت های جاوا برای جلوگیری از اقدامات خرابکارانه . فاقد توانایی های خاص ( از قبیل دسترسی به سیستم فایل /) هستند و این آنها را بسیار محدود کرده است . از نظر تتوری . اپلت های جاوا ایمن هستند چون اساسا نمی توانند کارهای خطرناک انجام دهند !

صفحه 19:
درك مفهوم جاوا و كنترل هاى »ورج 8 : توسط شرکت 000 به بازار عرضه شده جاوا یک زبانبرنمه نویسی کامپیوثر اسث که است تا به وسیله آن برنامه نویسان قادر باشند برنامه هایی را برای مرورگرهای وب بنویسند که کار با آنها برای استفاده کنندگان بسیار راحت باشد ابزارهای استاندارد شبکه وب به فعالیت ها و عملکردهایی که از صفحه وب قابل دسترسی هستند محدود مى شوند . با يك نرم افزار كامل برنامه نویسی مانند جاوا محدودیت های کمی برای طراحی عملکردهای دورن یک صفحه وب وجود دارد . بعنوان مثال شما می توانید با مراجعه به سایت اینترنتی .سم با برخی از نمونه های کاری جاوا آشنا شوید . به شکل زیر توجه کنید : 6

صفحه 20:
درك مفهوم جاوا و كنترل هاى »ورج 8 : * وسايل بالا و پایین برنده صفحه به همراه صدا * طراحی تصاویر سه بعدی از اشیاء مختلف نظیر مولکول انگرهای اعلان یک مطلب که بطور خودکار عوض می شود

صفحه 21:
درك مفهوم جاوا و كنترل هاى »ورج 8 : برنامه هاى جاوا را با نام 9۳۳۳) نامگذاری کرده اند . اع۳۳() جاوا توسط صفحات وب بر روی یک سرویس دهنده وب نگهداری می شود . وقتی که شما یک صفحه وب را که دارای قسمت هایی است که بوسیله جاوا برنامه ریزی شده نگاه می کنید. برنامه های جاوا بصورت خودکار در هنگام دیدن آن صفحه وب از روی اینترنت گرفته و بر روی کامپیوتر شما قرار می گیرند . برای انجام این کار . احتیاجی نیست شما کاری انجام دهید . نرم افزار 18" خود می داند که چگونه برنامه های جاوا را اجرا کند . یک برنامه جاوا به همان سرعت که به دستگاه شما می رسد بر روی آن نیز اجرا می شود . برای اینکه کامپیوتر خود را بصورت مطمئن نگهداری کنید نرم افزار 168" مدلی از امنیت جاوا را به شما ارائه می کند که در آن اجازه اجرای کلیه اپلت های جاوا داده شده است . بدون اینکه در مورد آسیب دیدن برنامه های کامپیوتر تان یا نفوذ به fal eq

صفحه 22:
درك مفهوم جاوا و كنترل هاى »ورج 8 : اطلاعات شخصى خودتان كه بر روى دستكاه شما موجود است نكران باشيد . #ججه هل ساده ترين زبان برنامه نويسى كامييوتر است که برای طراحی اجزاء صفحه وب شما بکار می رود . تمل بوسيله شركت 57ج (1) به بازار عرضه شده است . برخلاف جاوا اين نرم افزار نمى توائد براى نوشتن برنامه ها يا 0۳۳) بکار رود . ال فقط برای اعمال ساده نظیر روشن کردن یک کلمه وقتی که شما با ماوس بر روی آن می روید و یا تفییر شکل یک نشانه به شکلی که شما تصور کنید آن را فشار داده ‎sal‏ ‏بكار مى رود ‎Explorer‏ اعدجه1» قادر است كه اكول را اجرا كند و صفحاتى را كه ‏در آنها از اجزایی استفاده شده که بوسیله ۱0/۵۷۲۱ برای همگان قابل استفاده شده است ممکن است در نوشتن آنها مشکلاتی پیش آید و در نتیجه امکان دارد ‎fal ee ‎ ‎ ‎ ‎

صفحه 23:
درك مفهوم جاوا و كنترل هاى »ورج 8 : شما در هنگام دیدن صفحات وب با اشکالاتی در رابطه با دستورات امول مواجه شوید و عملکردهای اه بر روی دستگاه شما به شکل درستی اجرا نشود شرکت ۳( دوست دارد که 8۳ت9) را یک مجموعه از امکانات جدید برای ساختن صفحات وب فعالتر معرفی کند بر خلاف جاوا 28/۳۷ االسعست() یک زبان برنامه نویسی نیست بلکه یک مجموعه از قطعات نرم افزاری است که توسط دیگر نرم افزارهای برنامه نویسی نظیر جاوا می تواند استفاده شود . ۳8/۳() مانند ص لله و حدم - زع() قابلیترم لفزار 165 را گسترش‌داده لست همچنین ‎oy) cole Cub @rtvex‏ افزار جاوا را نیز بهبود بخشیده است . برنامه هاى »هع ترل نامیده می شوند . مانند اپلت های جاوا , كنترل ها از روى اينترنت كرفة ‏می شوند و بر روی دستگاه شما اجرا می گردد این عمل هنگامی صورت می گیرد ‏که شما صفحات وبی را مشاهده می کنید که دارای کنترل های 28۳() هستند ‎fal 56 ‎ ‎ ‎ ‎ ‎

صفحه 24:
درك مفهوم جاوا و كنترل هاى »ورج 8 : در گوشه پایین سمت چپ پنجره ‎WB‏ شما مى توانيد جمله ( نصب قطعات نرم افزارى ) وقتى كه كنترلهاى »جم ه09 در حال انتقال به دستكاه شما هستند را مشاهده مى كنيد . مواقعى ممكن است شما با ينجره هايى در صفحه مانيتور كامييوترتان مواجه شويد كه بوسيله آنها از شما سئوال مى شود كه آيا مى خواهيد كنترل هاى “جره به دستكاه شما منتقل شوند يا نه ؟ تكنولوزى »0958 در حقيقت قسمتى از مدلهاى 7ت ) (0000) مخفف مدلهاى شى ء كراى برنامه نويسى ميكروسافت مى باشد ) ميكروسافت مى باشد . اين مدل به برنامه نويسان اجازه مى دهد تا نرم افزارهايى بصورت مستقل براى صفحات اينترنت خود ايجاد كنند و يا برنامه هايى را طراحى كنند كه عمليات خاصى را انجام دهد . وقتى كه اين برنامه ها نوشته و طراحى مى شوند مى توان از آنها در جاهاى ديكر هم دوباره استفاده كرد . در قسمت يايين تعدادى از كنترل هاى “ج096 كه در داخل ‎IG‏ ‏بكار مى روند آورده شده است : fal ee

صفحه 25:
درك مفهوم جاوا و كنترل هاى »ورج 8 : ‎Power Porat gle bb Stl *‏ * رابطه هایی برای بکارگیری بانک های اطلاعاتی * ساعت های بین المللی ‏* نقشه راه ها که کار با آنها ساده است . ‏یکی از بزرگترین امتیازات جاوا و 28/۷) که در عه - ال جم - بعلا) و نمایشگر ها وجود ندارد این است که آنها بصورت خودکار کار می کنند و شما احتیاجی ندارید که به پایگاه های اینترنت مراجعه کرده و آنها را به کامپیوتر خود منتقل کنید و مدتی وقت صرف کنید تا فرم های ثبت نام شما را پر نمایید . پس از انتقال آنها به دستگاه:مدتی را برای تصب آنها وقت صرف کُنید . از زمانی که نرم افزاز 108 توافست ايلت هاى جاوا اعامم9) دمحل و كنترل هاى »ج8ت13) را اجرا كند كاربران اينترنت ديكر احتياجى ندارند كه به يايكاههاى خاص براى كرفتن اطلاعات مراجعه كنند ‎fal es ‎ ‎ ‎

صفحه 26:
درك مفهوم جاوا و كنترل هاى »ورج 8 : بلكه ايلت ها و كنترل ها به همان سرعت كه به روى دستكاه شما متصل مى شوند در همان فاصله نيز به اجرا در خواهند آمد . پایگاه اینترنت مربوط به اطلاعات 2,۲)

صفحه 27:
بكار بردن کنترل های ‎:@Ovtvex‏ کنترل های «8ه9) صفحات اینترنتی شما را بصورت زنده در می آورند بطوریکه شما قادر خواهید بود فایل های صوتی زنده را اجرا کرده و یا نشانگرهای متغییر را ببینید و بسیاری کارهای مشابه دیگر .

صفحه 28:
بکار بردن کنترل های ‎Driver‏ ۱- به یک صفحه وب که دارای کنترل 2() است متصل شوید . به عنوان مثال به آدرس فوق مراجعه کنید : /2دت دده دامحصعت|//نصتطا . ‏گزینه مربوط به اجرای یک فایل صوتی یا تصویری را کلیلک کنید‎ -C ۳- در صورت نیاز گزینه ۱۷۳۳ را کلیک كنيد تا نصب کنترل 2۳8/۳) بر روی دستگاه شما منتقل شده و اجرا می شود . اگر شما به یک پایگاه اینترنت که دارای یک کنترل ۳8/۲() هست مراجعه کنید نرم افزار 2108 چک می کند که کدام کنترل ها بصورت دیجیتالی ‎oad aul‏ اند . یک کنترل تایید شده دیجیتالی برنامه ای است که بصورت مستقل تایید شده است که دارای ویروس های کامپیوتری نیست و تاثیرات منفی بر روی دستگاه شما ندارد . شما می توانید پنجره ای بر روی صفحه مانیتور خود ببینید که به شما اطلاع می دهد که آیا نصب کردن این نرم افزار بر روی دستگاه شما به امنیت آن صدمه ای نمی زند و یا اخطار می دهد fal 69

صفحه 29:
بکار بردن کنترل های ‎Driver‏ که در صورت نصب به دستگاه شما بصورت نرم افزاری آسیب می رساند . نکته : جریان داده : در اینترنت به جای اینکه یک فایل صوتی بزرگ را قبل از اينکه بشنوید به کامپیوترتان نكنيد از جریان داده استفاده می شود . پایگاههای اینترنتی اطلاعات خود را بصورت یک جریان داده می فرستند . کامپیوتر شما پس از چند ثانیه از شروع جریان داده آن را با خبر کرده و شروع به پخش آن می کند و به همین ترتیب آن فايل صوتی یا تصویری را تا انتها اجرا می کند fal 0

صفحه 30:
اجرای ۳۳۷۶۱() سمل و نمایشگرها : نرم لفزار 168 یک اعامم9) تمعل را وقتی اجرا می کند که صفحه وب حاوی آن در حال شروع به نمایش بر روی صفحه کامپیوتر شما می باشد . هزاران اع2۳() هل بر روی وب وجود دارد نظیر نشانگرهای متفییر بالا و پایین برنده صفحه که از خود صدا تولید می کند . ماشین حسابها و بسیاری از عملکردهای دیگر اجرای یک : ۳۳9) مرول 0 به یک صفحه وب که دارای ۳۳۳() هل هست متصل شوید . به عنوان مثال به آدرس های زیر مراجعه کنید : ۱۵۲۵:۷۷۷۷ ۱۵۵۳۵۵۵ ويا ام اجه مسا لته ‎-O‏ منوی 0۳۴۷( را انتخاب کنید و سپس گزینه مربوط به نمایش صفحه وب ‎fal 280 ‎ ‎

صفحه 31:
اجرای ۳۳۷۶۱() سمل و نمایشگرها : همراه با اعام۳() نحل را کلیک نمایید . اعا۳() تمعل به کامپیوتر شما منتقل خواهد شد و به اجرا در خواهد آمد . ۳- اگر لازم شد اطلاعات درخواستی اپلت های جاوا و یا منوهای مناسب آن را کلیک کنید تا اجرای آن کامل شود .

صفحه 32:
خاموش کردن اجرا کننده : ‎UID‏ . ‏منوى ابزار را كليك كرده و سيس 089 192-20 را كليك كنيد‎ -١ . ‏جعبه مك0 را كليك كنيد‎ -١ ۳- صفحه را به پایین آورید تا ‎tov DO cond‏ برسید . ۴- جعبه مربوط به گزینه 68 طامسی) ‎IIT‏ ملد کلید 6( را کلیک کنید . نرم افزار 168" دارای یک اجرا کننده نرم افزار است که دقیقا در همان زمان گرفتن برنامه آن را اجرا می کند (61۲0 بصورت پیش فرض روشن است . وقتی که شما با مشکلی در اجرای اپلت های جاوا (1(۳۲۳) !6 برخورد کردید . می توانید اجرا کننده 1 خود را در منوی () در ۳8() اع1۳" خاموش کنید . بدین ترتیب اپلت های جاوا بر روی دستگاه شما دیگر اجرا نخواهند شد .

صفحه 33:
کنترل کردن 2۳/7) و برنامه های ‎Nava‏ توسط 102 شما می توانيد دقيقا تعيين كنيد كنترل هاى »ج0098 و برنامه هاى اصامرم() جمهل تا چه حد بر روی برنامه های دستگاه شما تاثیر بگذارند با استفاده از مرآ" رومح9) استفاده کنندگان و مدیران شبکه می توانند درباره سطح دسترسی کنترل های /028) و برنامه های 0۳۳۳۱) هل تصمیم بگیرند . به عنوان مثال شما می توانید به برنامه های اعامم() ممعل که از پایگاههای معتبر بر روی اینترنت دریافت می کنید اجازه دسترسی بیشتری به کامپیوترتان را بدهید و یا اینکه جاوا اپلت های گرفته شده از پایگاههای غیر معتبر را از لحاظ دسترسی به فایل های دستگاهتان محدود کنید تا نتوانند به آنها آسیب برسانند fal 89

صفحه 34:
کنترل کردن ۳/7( و برنامه های كمسل : ‎cre‏ ی و 0 سس مس8 ‏ا ‎ee‏ ‎“Pre‏ ‏اه فسات اه ملس سا اه له 8 ‎Seat ‎“ ‎Aasetonton stor — ‎fete fn | ‏الع‎ ‎“Gavaad| SSF vag Cat Comics Popane| Alves ‎Sad eben csc ‏جوت مامص دا‎ cece eb tere Sealy bolts Custom ‎gute tess ‏اس‎ ‎ ‎ ‎ ‎

صفحه 35:
کنترل کردن ۳/7( و برنامه های كمسل : تغییر دادن درجه امنیت برنامه های >ضه) 0 منوی ۲۳۶ را کلیک کنید و سپس گزینه ۳8۳0( اس" را ۲- گزینه 2۳۳۷7) را در بالای پنجره کلیک کنید . ۳- بر روی گزینه مناسب کلیک کنید . ۴- آنگاه می: توائید با بالابردن نشانه » تدابیز امئیتی, شدیدتری اتخاد کنید و یا بالعکس با پایین آوردن نشانه درجه امنیت را پایین تر بیاورید و در اصطلاح به عاطم۳() جمجل اطمینان کنید . ۵- برای تغییر مشخصات حرفه ای تر می توانید گزینه ابا مصد را کلیک کنید .

صفحه 36:
کنترل کردن ۳/7( و برنامه های كمسل : ۶- برای تغییر هر کدام از مشخصات زیر یکی از ۳ گزینه ( قابل اجرا) علطلب) . آماده ۳۲۳۷() و ( غیر قابل اجرا ) را انتخاب کنید * مشخصه ۲۲ت0) 9۳۲۷۷) در حقیقت امن بودن اسکریپت ها را چک می کند * مشخصه بعدی امنیت اجرای کنترل های ۳/۲() و برنامه های ع — ‎CPhagy‏ چک می کند . * گزینه بعدی مربوط به گرفتن کنترل های 08/۳ تایید شده توسط علامت دیجیتالی است (لصم) * گزینه بعدی مربوط به گرفتن کنترل های 0۳8/۳6 تائید نشده توسط علامت های دیجیتالی است (كجي :و (1)) * كزينه بعدى مربوط به مقدار دهی و اجرای کنترل های /908) است که امنیت آنها تایید نشده است . * كزينه 01 را كليك كنيد . fal 89

صفحه 37:
2) و لمنیت مطمئناً تا به حال درباره ویروس های کامپیوتری ( برنامه هایی که با آلوده کردن سیستم ها صدماتی به آنها می زنند ) جيزهايى شنيده ايد . ويروس هاى مختلفى از انواع بى آزار تا بسيار مخرب وجود دارند و تلاش هاى زيادى صورت مى گیرد تا جلوی اين آلودكى و انتشار ويروس ها گرفته شود اما آيا اين احتمال وجود ندارد كه ويروسها ( يا ديكر نرم افزارهاى مخرب ) از طریق اینترنت پراکنده شوند ؟ در روزهاى اول وب اين خطر چندان جدی نبود چون سندهای ,1۷0و فایلهای گرافیکی و تصویری تنها انواع فايل هايى بود كه روى اينترنت جايجا مى شد . اين قبيل فايلها مى توانستند خراب باشند ما در ضمن هیچ خطری برای سیستمی که آنها ابا می کرد نداشتند اما با روی کار آمدن محتویات فعال اوضاع دگرگون شد . چون در این حالت برنامه ها هم جزیی از وب شده بودند و یک برنامه هم قاعدتاً هر کاری می تواند انجام می دهد ( از پاک کردن فایل های کامپیوتری مقصد گرفته تا دزدیدن اطلاعات آن و انتقال آنها به جاهای نامعلوم ) .در انجابود که شرکتهای تولید کنندهازرهای برامه نویسی وب به ضرورت تمهیدات امنیتی پی بردند وفتی در وب گشت و گذار می کنید . مایلید مطمئن باشید کدهایی که بار می کنید سیستم تان را بهم نخواهند. ريخت ! براى مقابله با اين مشكل بالقوه دو روش اساسى ابداع شد

صفحه 38:
: Drtiver (cle ab دادن درجه ا ۱- منوی ۳۶" را کلیک کنید و سپس گزینه ۳۸۳5() 10۳۲۱" را كليك كنيد . ۲- گزینه #مح) را در بالای پنجره کلیک کنید . ۳- بر روی گزینه مناسب کلیک کنید . ۴- آنگاه می توانید با بالا بردن نشانه . تدابیر امنیتی شدیدتری اتخاذ کنید و یا بالعکس با پایین آوردن نشانه درجه امنیت را پایین تر بیاورید و در اصطلاح به #عامم9) محل اطمينان ‎sans,‏ ۵- برای تغییر مشخصات حرفه ای تر می توانید گزینه اصربا مطصد) را کلیک كنيد . ۶- برای تغییر هر کدام از مشخصات زیر یکی از ۳ گزینه ( قابل اجرا ) -0؟) . آماده ‎pat ) 9 Procopt‏ قابل اجرا ) را انتخاب کنید * مشخصه >«ت() ۲۷() در حقیقت امن بودن اسکریپت ها را چک می کند fal 99

صفحه 39:
تغییر دادن درجه امنیت برنامه های >رظم() : * مشخصه بعدی امنیت اجرای کنترل های 2۳8/۳۳) و برنامه های 02 - 2۷!() چک می * گزینه بعدی مربوط به گرفتن کنترل های 0۳8/۳ تایید شده توسط علامت دیجیتالی است ‎(Giged)‏ ‏* گزینه بعدی مربوط به گرفتن کنترل های 2۳8/۳ تائید نشده توسط علامت های یتالی است (ا()) گزینه بعدی مربوط به مقدار دهی و اجرای کنترل های 28/۳) است که امد تشه ات * كزينه 01 را كليك كنيد . 289

صفحه 40:
»ماك 9) و لملمنيت روش اول آن بود که اساساً اجازه اعمال بالقوه خطرناک به برنامه های وب داده نشود . این راهی بود که جاوا در پیش گرفت . اپلت های جاوا قادر به انجام افعال بالقوه مخرب ( مانند دسترسی به سیستم فایل ) نیستند و می توانيد مطمئن باشيد كه آنها یی خطر هستند درست همانگونه که یک چاقوی پلاستیکی بی خطر است ادر روش دوم ۰ که میکروسافت برای عناصر 0۳8/۳) در پیش گرفت . به جای محدود کردن ذاتی برنامه ها از یک تکنولوژی نام کد تعیین اعتبار ا 6004۳87 برای تعیین صحت و سقم نرم افزارها استفاده می شود . ایده نهفته در اين روش این است که اگر شما بدانید که یک عنصر «9ت() ( یا هر نرم افزار دیگری ) از کجا آمده ( خالق آن کیست ) و تفییری هم در آن صورت نگرفته . ديكر مى توانيد با خيال راحت از آن استفاده كنيد . به اين روش امضاى ديجيتالى يا . ‏هم گفته می شود‎ Digital Grier fal 0

صفحه 41:
امضاء دیجیتالی از دیدگاه کاربران وقتی از یک کاوشگر با قابلیت «/8) استفاده می کنید در واقع سطوح امنیتی مختلفی را در اختیار دارید . که می توانید از آنها بسته به نیزتان استفاده کنید . این سطوح عبارتند از : ضعیف . متوسط . شدید . برای انتخاب سطح امنیتی دلخواه در کاوشگر سط«) سس . آیتم طام() اس را از منوی/۳2() لنتخاببکرده و سيسبه بركه بشهحج6) برويد. در قسمتهایی ربیاو کمیت_پلنید سایتهای‌هر منطقه رالمنتخابكرهم و سيسرهر قسمتهاييزه يلوك سطح امنیتی هر منطقه را تعیین کنید . سایتهای قابل اطمینان و شناخته شده را می توانید در منطقه مورد اعتماد ( ل#") قرار دهید . این منطقه دارای سطح امنیتی ضعیف است . سایتهای ناشناخته را در متطقه محدود ( لت 22۳؟)) که سطح امنیتی بالایی دارد . قرار دهید . ‎Vetercet Explorer stl cg‏ عبارتند از ‏* شدید (1/۳۷) : برنامه های بالقوه خطرناک هرگز بار نمی شوند . هر اقدامی برای بار کردن محتویات فعال به شما اطلاع داده خواهد شد . ‎(Derk) Luge *‏ : هنكام باركردن محتويات فعال به شما اخطا خواهید داشت که ( بر اساس امضاء دیجیتالی ) آنرا بار کنید ‎in) Gand *‏ : تمام محتویات فعال بدون هیچ اخطاری بار خواهند شد . ‎fal eq ‎ ‏داده می شود ولی این امکان را ‎ ‎

صفحه 42:
امضاء دیجیتالی از دیدگاه کاربران : قابل تنظیم (مص()) : می توانید برای هر نوع محتویات فعال سطح امنیتی مناسب ( هرگز بار نشود با دادن اخطار بار شود . هميشه بار شود را تعیین کنید . توصیه می شود تا زمانیکه با تمام انواع محتویات موجود در وب آشنا نشده اد از اين گزینه استفاده نکنید روش کار اين سیستم چنین است : وقتی به صفحه وبی می روید که می خواهد محتویات فعال خود را برای شما بفرستد . کاوشگر ابتدا امضای دیجیتالی تمام آیتم های نرم افزاری آنرا چک می کند . اگر امضای دیجیتالی وجود نداشته باشد . محتویات فقط در سطح امنیتی ضعیف اجازه بارشدن خواهند داشت . در غیر این صورت . با توجه به اطلاعات موجود در امضای دیجیتالی . سالم بودن آيتم ها ( عدم تغيير در محتویات آنها ) بررسی می شود . ضرورت این کار از آنجا ناشی می شود که افراد شرور می توانند برای یک نرم افزار بی ضرر امضای دیجیتالی و تائیدیه یگیرند و سپس آنراتغییر داده و بصورت خرابکار و خطرناک در آورند در سطح امنیتی متوسط نام تولید کننده نرم افزار بایستی از منابع تایید شده از سوی شما مطابقت داده خواهد شد . اگر اي نام در لیست مورد اعتماد شما نباشد . دیالوگی موضوع را گوشزد کرده و اجازه بار کردن آنرا به شما خواهد داد . در همین دیالوگ می توانید تولید کننده مزبور را هم به لیست معتمدین خود اضافه کنید . fal ‏مم‎

صفحه 43:
امضای دیجیتالی از دید برنامه نویسی : در یک امضای دیجیتالی سه دسته اطلاعات وجود دارد : هویت تولید کننده رم افزاره هویت منبع تایید کننده ( سازمانی که امضاء را صادر کرده ) و یک عدد رمز برای تایید اين مطلب که محتویات نرم افزار دستکاری نشده است . اگر می خواهید برای وب محتویات فعال بنویسید بايد يك كواهينامه كد تعيين اعتبار براى خود دست و با كنيد تا بتوانيد براى نرم افزار هاى خود امضاى ديجيتالى بكيريد . اكر فقط براى اينترنت برنامه مى نويسيد نيازى به اين مراحل نداريد جون سطح امنيتى در آنها معمولا بايين است و نيازى به امضاى ديجيتالى وجود ندارد اكر ‎Bye‏ براى شركت خود نرم افزار مى نويسيد مى توانيد از كواهينامه آن استفاده كنيد . اما توصيه می شود خودتان هم اين گواهینامه را بگیرید .با آن که شرکتهای متعددی برای صدور گواهینامه کد تعیین اعتبار وجود دارند . ميكروسافت شركت 0099 () را توصيه می کند . برای کسب اطلاعات بیشتر عتی توانید به سایت: وب این شرکت که دز زیر آمده است مراجعه کنید: httpsiwww.verisign.comdevelopersiindex html هزینه دریافت این گواهینامه ۲۰ دلار در سال و مراحل انجام آن بسیار ساده است در سایت مزیور . یک فرم پر کنید و در آن اطلاعات خواسته شده ( از جمله اطلاعات fal 6

صفحه 44:
امضای دیجیتالی از دید برنامه نویسی : مربوط به کارت اعتیاری ) را وارد کنید ۲. شرکت وي+ذ2() كد شناسايى شما را با پست الکترونیک برایتان ارسال خواهد کرد . ۳ به صفحه نصب گواهینامه رفته و کد شناسایی خود را وارد کنید . اين کار باید در همان کامپیوتری که توسط آن کد شناسایی را گرفته ايد . انجام شود . ۴. گواهینامه به کامپیوتر شما فرستاده خواهد شد. هنكام ثبت كواهينامه دو كزينه در اختيار داريد : ذخيره کردن آن در یک فایل یا در رجیستری ویندوز توصیه می شود گواهینامه خود را در یک فایل و روی دیسک ذخیره کنید تا بتانید آن را از گزند نامحرمان حفظ كنيد . در « دو قایل به کامپیوتر شما فرستاده می شود : یکی حاوی خود گواهینامه ( با بسوند ) 0100© و ديكرى حاوى كليد رمزبندى ( با يسوند ) 60006 .

صفحه 45:
نرم افزارهای مورد نیاز برای امضای دیجیتالی : بعد از دريافت كد تعيين اعتبار و كليد رمز بندى . آماده ايد تا امضاى خود را به نرم افزارهايى كه نوشته اید اضافه کنید . این برنامه ها جزیی از کیت توسعه نرم افزلر 8(28۳۷) هستند و می توانید آنها را مجانی از سایت میکروسافت بردارید . فايل هايى كه نياز داريد از اين قرارند : ‎Orn *‏ جاه( : يك كواهينامه ©7).©00 براى تست مى سازد . ‏۶ 6 (۳(): یک گواهینامه توزیع نرم افزار آزمایشی می سازد . ‏* «۳() 9:۳ : یک فایل محتویات فعال را امضا می کند . ‎Prat *‏ 0115 : اعتبار فايل ‎ly‏ بررسی می کند ( مشابه همان کاری که کاوشگر می کند ) ‎gad: Dake OTL *‏ 31 گواهینامه های قابل اعتماد می سازد . ‏* () ۳۲۷( : برنامه مدیریت گواهینامه ها . لیست های گواهینامه های قابل اعتماد و باطل شده . * ۷ ): برنامه ثبت گواهینامه در رجیستری . ‏بايد توجه داشت كه تمام اين ابزارها برنامه هاى 00005 هستند و بايد ينجره 0008-0008 اجرا شوند . براى باز كردن نرم افزارهاى فوق مى توانيد به آدرس زير مراجعه كنيد : ۱۵/۷۷۷۸۸۹۹۵ ‎fal es ‎ ‎

صفحه 46:
جاوا چیست ؟ جاوا یک زیان برنامه نویسی است که در اوایل دهه ‎٩۰‏ توسط ‎BOP‏ مرول , بخ 2۲) توسعه داده شد . هدف آن بود که جاوا زبانی ساده . قوی و همه منظوره باشد . جاوا تمام جنبه های مثبت () و +604 را در خود دارد » و آن چیزهایی که برنامه نویسان +*2) از آن نقرت داشته اند ( مانند ورائت چند گانه . تحریف اپراتورها و اشاره گرها ) را به کناری گذاشته است مهمترین ویژگیهای جاوا این است که اساسا شیء گرا است . اولین ادعای 66۳() توانایی استفاده مجدد از کد است : چیزی كه +04 با تمام ادعاهایش هرگز نتوانست بدان دست یابد .اما در اولین قدم خواهید دید جاوا در اين زمینه نا چه حد اندازه صحت دارد . تصورش را بکنید که با صرف کمی وقت بتوانید برنامه ای بنویسید که در سیستم های ویندوز ؛ بونیکس و مکینتاش براحتی اجرا شود . همین که یک شركت نرم افزارى بتواند براى تمام بلاتفرم های موجود در آن واحد پروژه ای را تولید کند و مقادير عظیمی پول صرفه جویی کند ) خود می تواند بهترین دلیل اقبال جرا باشد و امروز دیگر همه ( و نه فقط شرکتهای نرم افزاری ) به سمت جاوا کشیده شده اند .با این ویژگی ( استقلال از لاتفرم ) یک برنامه نویس می تواند برای سیستمی برنامه بنویسد که هرگز با آن کار نکرده است . این ویژگی اصلی ترین علت توفیق جاوا در اينترنت است . اینترنت شیکه پیچیده ای است از میلیونهاکامپیوتر

صفحه 47:
جاوا چیست ؟ در سراسر دنیاء و مقاومت در مقابل این وسوسه که یتواند برنامه ای بنویسد که روی تمام این سیستم های متفاوت و نا متجانس اجرا شود چندان ساده یست . ۱ جاوا یک زبان بسیار ساده است چون شما را وادار نمی کند تا در محیط جدید ( و نا آشنايى ) كار كنيد و این برای کسانی که اطلاعات فنی ناچیزی درباره کامپیوتر دارند بسیار مهم است . ساختار زبان جاوا در نگاه اول بسیار شبیه 0 و +2 است و این به هیچ وجه تصادفی نیست . ‎O‏ زبانی است ساخت یافته و +:() زبانیست شیء گرا و مهمتر از همه قسمت اعظم برنامه نویسان دنیا از آنها استفاده می کنند از سوی دیگر اين شباهت حرکت به طرف جاوا را برای این قبیل افراد ساده خواهد کرد بتابراین طراحان جاوا برای اجتتاب از دوباره کاری از زیانهای 62 و ++() بعنوان مدل استفاده کردند . جاوا با دور انداختن اشاره گرها و بر دهش کشیدن بار مدیریت حافظه . برنامه نویسان () و++() را برای همیشه از این کابوس ها رهایی بخشیده است . علاه بر آن چون جاوا زبانی برای اینترنت است . از ایمنی و حفاظت ذاتی بالایی برخوردار است . طراحان جاوا از ابتدا یک محیط برنامه نویسی امن را مد نظر داشته اند . مسئله حفاظت سیستم ها رایطه تنگاتنگی با اشاره گرها دارد. اکثر مهاجمان برای ورود غير قانونى به سیستم های دیگران از این اشاره گرها استفاده می کنند و جاوا با حذف اشاره گرها این راه را سد کرده است . جاوا مکانیزم های حفاظتی دیگری هم دارد که در جای خود به آنها اشاره خواهیم کرد fal ee

صفحه 48:
تکامل جاوا : جاوا هم مانند اکثر اختراعات مهم حاصل تلاش گروهی دانشمندا جاوا آن است که جوا از ویرانه های یک پروژه شکست خورده سر بر می آورد اگر پروژه گرین (۳)) که شرکت 2 در سال ۱۹۹۱ آن را شروع کرد به موفقیت می انجامید آمروز نه سان دیگر یک شرکت کامپیوتری من بود و ثه جاوا در سال ۰۱۹۹۱ شرکت مرس ۳() م() در آغاز راه تبدیل شدن به بزرگترین تولید کننده ایستگاههای كارى 19©6) بود و در طول فقط بنج سال درآمدش را از ۲۱۰ میلیون دلار به ۵/۲ میلیارد دلار رسانده بود و به نظر می رسد هیچ چیز نمی تواند جلودار آن باشد . عامل عمده موفقیت 9) کارهای بیشتازانه در ايجاد شبكه هاى باز بود و در اين زمينه هيج كس به باى آن نمى رسيد مدیران 9۷) به این فکر افتادند تا کاری کنند که این رشد برای مدتی طولانی ادامه یابد یکی از زمینه های مورد علاقه 2۲) بازار لوازم الکترونیکی بود ۰ پروژه ۳۳() بوجود آمد تا برای اين بازار نرم افزاری پیشرفته خلق کند . مهندسان 0) توجه خود را به میکروپروسسورهایی معطوف کردند تا دارای قابلیت استفاده در این گونه سیستم ها باشند . اگر پروژه 69۳۳۳ می خواست موفق یاشد باید کاری می کرد تا سیستم مزیور بتواند به راحتی یه بسترهای سخت افزاری مختلف منتقل شود براى اين منظور ابتدا از fal 6 از است . اما نکته جالب درباره

صفحه 49:
تکامل جاوا : کامپایلر (6++ استفاده شد ولی بزودی نارسایی های 460+ در اين زمینه خود را نشان دادند . مهندسان 9۲) خیلی سریع دریافتند که بای ادامه كار بايد جيزى جدید و قوی خلق کنند. در همین زمان بود که 2۷۷ حول کار بر روی زبان جدید اوک ۲۱۳4 را شروع کرد تقدیر آن بود که اين زبان جاوا نامیده شود . چون اداره ثبت نام های تجاری ۳4() را رد کرد بتدریج مهندسین یک دستگاه شبه لتو) اطلیم) امسس۳) -۳)0۲0) ساختند که در آن از سیستم عامل ۰ زبان برنامه نویسی و واسط کاربر جاوا استفاده شده بود و با وجود ابتدایی بودن توجه مدیران © را به خود جلب كند بعدها گروهی که در پروژه ‎IS Brows‏ 095 بودند شركت 90إم8) نول را بنیان نهادند شکل زیر بايكاه وب اين شركت

صفحه 50:
The low-cost move is on. “Two new servers and market beating ces tetend Sun's push into the 86 arena : tec] & lave Ja Cerarnow

صفحه 51:
تکامل جاوا برای رفتن به اين پایگاه اینترنتی مى بايست به آدرس زير مراجعه كنيد ۱۵۵۵:۷۷۸۷ متاسفانه بخت با پروژه 3۳۳۳) یار نبود و بعد از چند شکست متوالی ‎Grr‏ 31 را کنار گذاشت . در همین زمان بود که عده ای از محققان ‎eat |, Det Grape 25,5 DOGO‏ كردند و این اتفاقات با آتشی كه به سرعت دنیا را در می نوردید و شبکه تار عنکبوتی جهانی 400000 (که مختف «اع() 60:4 1۸۷) می باشد) نام داشت همزمان شد باراین اتفاقى نبود که مهندسان پروژه 9۳)به سمت اینترنت و وب بهعنوان بستر پوژه 7 روانه شوند و بعد از آن دیگر جزء تاریخ است چهار سال بعد پروژه ‎ay Brewer‏ بار نشست و جاوا تبدیل به داغترین موضوع اینترنت شد . همه از برنامه نویسان و طراحان صفحات وب گرفته تا کاربران اینترنت مى خواهند از جاوا استفاده کنند © باغاصله بسولی‌چاوا ینک اوشگر هم توليد كرد . ليراوليرك ايشكرئبود كه مئت ونس طيلتهاى جاوا را اجرا کند و نام آن هم مهل اوبا!/ بود fal eq

صفحه 52:
ویژگیهای زبان برنامه نویسی 0« : جاوا ویژگیهای متعددی دارد که آن را منحصربه فرد کرده است . جاوا هم کامپایلر دارد و اینترپرتر توضیح : ( کامپایلر برنامه ای است که متن برنامه را گرفته و در پایان یک فایل توليد می کند . بعد از كامبايل شدن يك برنامه . دیگر به وجود كامبايلر نيازى نيست و مى توان برنامه 7« را روی هر كامبيوتر سازكارى اجرا كرد . اما اینترپرتر هیچ برنامه جع ای تولید نمی کند و برنامه را خط به خط اجرا مى کند . برای اجرای برنامه حتما باید اینترپرتر هم روی کامپیوتر مورد نظر موجود باشد ) هر کامپایلر فقط برای یک سیستم خاص ( مانند اینتل . اپل یا آلفا ) می تواند کد اجرایی تولید کند اما كامبايلر جاوا كد اجرايى 8*7 توليد نمى كند و در عوض يك فايل بينابينى مى سازد كه بايت كد طحت ابر8) نام دارد و بايت كد جيزى شبيه زبان اسميلى است . اما اين زبان مختص هيج يروسسور خاصى نيست بلكه زبان اسمبلى يك ماشين ويزه بنام ماشين مجازى جاوا ( بجه() اع+<() ملع دارد که روی ماشین مجازی جاوا اجرا می شود . دستورات فایل بای کد را به دستورات قابل فهم برای پروسسوری که روی آن اجرا می شود تبدیل خواهد کرد se

صفحه 53:
ویژگیهای زبان برنامه نویسی تلا : برنامه های کاربردی جاوا اشیاء جاوا ماشین مجازی جاوا ‎ote‏ ویندوز ©0059 مكينتاش سیستم عامل

صفحه 54:
ویژگیهای زبان برنامه نویسی 0« : اما شاید از خود سئوال کنید که چرا جاوا این همه کار را بر خود ( و دیگران ) سخت گرفته است ؟ این همه لایه و ماشین مجازی برای چیست ؟ یکی از ادعاهای جاوا . آزاد بودن از بستر سخت افزاری است اما اين یعنی چه ؟ اگر جاوا بخواهد در اینترنت موفق باشد برنامه های آن باید بتوانتد بدون هیچ اشکالی روی تمام کامپیوترهای متصل به اینترنت اجرا شوند . اما شما بهتر مى دانيد كه اینترنت شبکه عظیمی است از کمپیوترهای نامتجانس . از سوپر کامپبوترهای عظیم گرفته تا 6۳60 های مبتنی بر پروسسور های اینتل و اور پی سی تا ماشین های یونیکس مبتنی بر پروسسورهایآلفا و .۱۰ چگونه یک برنامه اجرايى مى تواند روى اين طيف وسيع كامبيوترها اجرا شود ؟ ابده اوليه ساده است : برنامه ها براى ماشين مجازى كامبايل شوند و اين ماشين مجازى روى تمام كامبيوترهاى متصل به إينترنت نصب شود . اين دقيقاً همان روشى است كه جاوا در بيش كرفته است . برنامه تان را با يك كامبايلر جاوا كامبايل كنيد ‎٠‏ ‏آن را در بايكاه وب خود قرار دهيد و به ديكران اطلاع دهيد تا با يك كاوشكر مجهز به جاوا (صد8) لاطب 8) - تحدل ) اين برنامه را كه ممكن است در دل يك صفحه وب قرار داشته باشد اجرا كنند شايد هركز تصور نمى كرديد كه برنامه أى را كه با يك 0*0 اينتل نوشته ايد روى يك ماشین مکینتاش 9

صفحه 55:
ویژگیهای زبان برنامه نویسی هل : ونيكس اجرا شود ولی اکنون به لطف جاوا این دیگر آرزویی دست نیافتنی نیست . شیء گرایی در جاوا به غایت خود رسیده است . جاوا در استفاده از اشیاء بسیار مفید و سخت گیر است و تخطى از اصول را نمى يذيرد . در 10+ شما مى توانيد از اشياء به موازات برنامه نويسى به سيك ‎ead‏ استفاده كنيد و اكثرأ در بايان كار جنان ملغمه اى يوجود مى آيد كه مديريت آن با روش هلى برنامه نویسی شی ء گرا امکان دارد نه با روش های قدیمی . جاوا دیگر به شما اجازه نمی دهد تا خود را در چنین مخمصه ای گرفتار کنید !

صفحه 56:
ایجاد یک اپلت جاوا : ایجاد اپلت با ایجاد برنامه فرق دارد و قواعد متفاوتی بر آن حمکفرماست . یک اپلت برای اجرا در صفحات وب نوشته می شود .بنایراین کمی پیچیده تر از یک برنامه است . در واقع یک اپلت تا زمانی که در یک کاوشگر اجرا نشود خروجی خود را نمایش نخواهد داد بايد سعی شود برنامه ها . اپلت ها و صفحات وب را در دای رکتوریهای جداگانه ذخیره کرد . اپلتی که در این قسمت مى نويسيم ‎pb Weeks Dorkd Bpplet‏ دارد . به لیست زیر نگاه کنید import java. Awt. Graphics; x public class Hello World Applet Extends java. Applet. Applet { 4: 5: Public Void Paint (Graphics G) { 6: g. drawstring (‘Hello World!”.5 , 25 ); 7} 8:} fal 5

صفحه 57:
ایجاد یک اپلت جاوا : آپلت را با نام ول 0۷ج" ذخیره کنید. در مورد یک اپلت باید به چند نکته توجه کنید دستور ۲۲۳۳۷ در خط ۱ شبیه دستور #ط»۱۳۸ در زبان () است با این دستور اپلت می تواند از ‎WOK chars‏ برای کارهای گرافیکی استفاده کند . متد ۲۳۳90 ( ) برای نمایش محتویات اپلت است در این جا عبارت ۳۲۸۱() ۱۲1۷۳ روی صفحه نمایش داده خواهد شد اپلت ها متد ۳۳۷( ) ندارند و به جای آن از متدهای ۳( ) و 04() ‎Prorat L‏ () استفاده می کنند براى كاميايل كردن اين ابلت جنين بايد کرد ‎iava Weblo Dorkd Bpptet. fav‏ در این حالت هم کامپایلر یک فایل کلاس ‎Wels Dodd @pplet. Chae pli‏ ایجاد خواهد کرد اما برای اجرای یک اپلت یک قدم دیگر هم باید برداشت و آن ایجاد یک فایل (,1 است که اپلت در آن اجرا خواهد شد می توانید یک فایل 1۳6۸" را برای این منظور مشاهده كنيد fa 8?

صفحه 58:
| Welle Dordd ‏اجرای اپلت‎ sly WPOL S, : <html> : <head> : <title>Hello to Everyone</title> : </head><body> : <p> My Java Applet says: : <applet code=”"Hello World Applet. Class” width=150 height=25> : </applet> : </body> : Jhtml> fal Se سم رع دن كد ها ب ب مو ها

صفحه 59:
| Welle Dordd ‏اجرای اپلت‎ sly WPOL S, تحلیل برنامه برای اجرای یک اپلت در فایل .ل(111۳ باید از برچسب < اطم > استفاده کرد برای مشخص کردن نام کلاسی که اپلت در آن است از صفت 6062()() استفاده کنید . برای مشخص کردن ابعاد پنجره ای که اپلت در آن اجرا خواهد شد از صفت های )و 1,۳۸۵ استفاده کنید . اعداد مشخص شده بر حسب پیکسل هستند اين فايل را با نام ۳ اطمم0(!49اس/ ذخیره کنید حالا آماده اید تا اپلت را اجرا کنید أين كار به حو روش امکانپذیز است: Det Goer scile Igle as ‏استفاده از كاوشكرهاى مجهز‎ -١ © استفاده از برنامه ‎Bpplet Otrwer‏ كه با 10006 مى آيد . اين برنامه كل صفحه وب را نمى تواند نمایش دهد و فقط ابلت را نمايش خواهد داد براى ديدن ابلت در يك كاوشكر , فايل |**! فوق را باز كنيد ۰ با این کار صفحه وب و اپلت درون آن ابه نمايش در خواهد آمد . روش استفاده از جيجه اجاترجه چنین است fal 69

صفحه 60:
| Welle Dordd ‏اجرای اپلت‎ sly WPOL S, نكته : با وجود اينكه مى توان برنامه ۱۸۲ 0۳۲7۳۱ را از محل فايل ‎hier‏ اجرا کرد ولی در اين حالت بدون بستن آن نمی توان اپلت را مجدداً بر کرد . در حالیکه اگر مشاهده گر اپلت از محل دیگری اجوا شود ( مانند دستور فوق) می توان یک اپلت را تغییر داده . مجدداً کامپایل کرده و سپس دوباره در مشاهده گر بار کرد . بطور کلی جاوا یک زبان برنامه نویسی است که با آن می توان برنامه های متنوعی نوشت بیشترین کاربرد جاوا در اینجا اپلتهایی است که در کاوشگرهای وب قابل مشاهده هستند اپلتهابرنامه هایی هستند که جزیی از صفحات وب محسوب می شوند . تقریباً هر کاری بالپلت ها امکانپذیر است . قدرت جاوا در سادگی و استقلال از آن بستر سخت افزاری ( چه در فایل منبع برنامه و جه در كد باینری آن ) لست . با جاوا می تون برنامه هایی هم نوشت که بدون کاوشگرهای وب قابل اجرا باشند . اپلت های جاوا را فقط در فایلهای 1/1۳6 می توان مورد استفاده قرار داد . fal eo

صفحه 61:
برنامه نویسی شی ء گرا و جاوا : ‎OOP)‏ — سس 12) لد () ادصزط()) يكى از بز ركترين ايده هاى برنامه نويسى در دو دهه اخير است که نیاز به تسلط کامل دارد . ‏مفاهیم برنامه نویسی شی ء گرا : ‏ابرنامه نويسى شى ء گرا قصد دارد مدلی از دنیای واقعی را وارد برنامه نويسى كامبيوتر كند دنياى اطراف ما از اشياء ساخته شده است ‏اشیاء (۳۳ت() و کلاسها (عصیعم) : ‏شیی ء کلیدی ترین مفهوم برنامه نويسى شى كرا است هر شى ء يك حالت و رفتار دارد و برنامه عبارت است از بر هم كنتن بين أشياء...حالت :يك شى » عبارث:است از متفييرهاى عناص داده اى شين :و.مقدار آنها : رفتار يف شی ء را متدهاى آن تعيين مى كند . شىء در واقع مقدارى كد است كه كار خاصيتى انجام مى دهد ‏هر شىء كيسولى است از مقدارى متغيير و كد كه کار نگهداری و به روز در آوردن آنها را ساده مى كند . معمولاً درون يك شىء از دسترس دنياى خارج به دور است و برای كار با آن بايد از ارسال بيام استفاده كرد . مزیتش آن ‏است که كاربر براى كار با آن هيج نيازى به دانستن مکانیزم های درونی آن ‎ ‎

صفحه 62:
برنامه نویسی شی ء گرا و جاوا : ندارد و فقط باید ساختار پیام ها را بداند . معمولاً ساختار پیام ها در لشیاء مختلف یکسان است . در دنیای واقعی هم وضع به همین منوال است مثلا برای استفاده از یک تلویزیون شما هیچ نیازی به آشنایی با پیچیدگیهای درون آن ندارید فقط کافی است بدانيد كه بايد آن را به برق زده و روشن كنيد و يك كانال را انتخاب كنيد . كلاس در ولقع الكويى است براى ايجاد شىء . در واسط برنامه نويسى جاوا (سمهم 1 جندين كلاس مختلف وجود دارد . جندين كلاس با هم يك كتابخانة كلاس ‎Chase Library‏ مى سازند . امه نويسى جاوا اصولاً جيزى نيست جز طراحى و يياده سازى كلاس ها

صفحه 63:
برنامه نویسی شیء گرا در جاوا : برنامه نویسی شیء (606۳() یکی از بزرگترین ایده های برنامه نویسی در دو دهه اخیر است » اما تسلط کامل بر این ایده به سالها زمان و ممارست نیاز دارد. برنامه نویسی شیء در واقع پیوند دنیای ولقعی با برنامه نویسی کامپیوتر است . در اینجا با مقاهیم برنامد نویسیی: شیء گرا دز چاوا و ارتباط اپن:مفاهیم با ساشثار بزنامه ها آفتا عی شویم *قیء وگلانن چیست ورابطه آنها چگونه اس * یک شیء یا کلاس دو جزء مهم دارد : رفتار و حالت . * ورائت و نقش آن در طراحی برنامه ها . * بسته ها و واسط ها در جاوا

صفحه 64:
ایجاد یک ‎OW‏ در این قسمت یک مثال عملی خواهیم آورد . در این مثال یک موتور سیکلت را شبیه سازی می کنیم . یک موتور سیکلت ولقعی دارای حالت و رفتار خاص خود است . حالت موتور سیکلت در واقع همان خواص آن ( مانند رنگ . مدل ‏ نوع و ..) است . مجموع این خواص یک موتور سیکلت خاص را مشخص خواهند کرد که از موتور سیکلت های دیگر قابل تمیز است . هر شیء وهله ایست از یک کلاس . کلاس موجودی قابل لمس نیست . در حالیکه شیء موجودی است قابل لمس که به کلاس خود موجودیت داده است مثلاً . انسان یک کلاس است در حالیکه شما نمونه ای هستید از کلاس انسان . شما موجودیت دارید در حالیکه چیزی بنام انسان وجود خارجی ندارد؛ بلکه در اشیاء خاص ( من » شما ۰ دیگران ) موجودیت می یابد . موتور سیکلت ما دارای رفتارهایی هم هست . رفتارهایی مانند روشن شدن ۰ خاموش شدن ۰ تعویض دنده . سرعت گرفتن ۰ ترمز کردن و غیره . ادیتور خود را اجرا کنید و کلاس موتور سیکلت را مانند ذيل اتعريف كنيد : Class Motorcycle { } fal or

صفحه 65:
ایجاد یک کلاس : البته اين کلاس هنوز کار چندانی انجام نمی دهد ( در واقع هیچ کاری انجام نمی دهد ا) اجازه دهید کارمان را با تعریف چند متغییر حالت ادامه دهیم . این تعریف ها را بعد از [ ولرد کنید : String make; String color; (Class library)Boolean engineState; fal es

صفحه 66:
نکته بر خلاف (۰۲ متفییرهای ۳8۷) فقط مقادیر 1 یا ۳۳۳۳) می گيرند و نمی تواندد عدد + حال چند رفتار (متد ) به اين کلاس اضافه می کنیم . گفتیم که یک موتور سیکلت می تواند رفتارهای متعددی داشته باشد ولی ما در اینجا برای سادگی کار فقط متد روشن شدن موتور را پیاده سازی خواهیم کرد کد ذیل را بعد از تعریف متغییرهای حالت اضافه کنید

صفحه 67:
Void startEngine() If (engineState == True) System. out. printIn(“The engine is already on.”); Else { engineState = True; System. out.println (“The engine is now on.”);

صفحه 68:
ایجاد یک كلاس این متد ابتدا تست می کند که آیا موتور روشن است (م2 <9جس) ۰ اگر چنین باشد فقط با پیامی اين موضوع را گوشزد می کند . اگر موتور روشن نباشد. آن را روشن کرده و پیام می دهد که کارش را به پایان رسانده است . كلاس را با نام .حاص 6ه7) ذخيره كنيد . اين كلاس تا اينجا بايد جنين باشد :

صفحه 69:
Class motorcycle 1 String make; String color; Boolean enginestate; Void StartEngined) If (engineState==true) System. out printin (“The engine is already on.”); Else ) engineState=true; Systern.out.printin¢-The engine is now on.”) fal 9

صفحه 70:
ایجاد یک کلاس : قبل از کامپایل کردن این کلاس : اجازه دهید یک متد دیگر به آن اضافه کنیم . این متد 9۳ » مقدار فعلی متغییرهای حالت یک ومله خاص از این کلاس را نمایش خواهند داد . این متد چنین است Void showArts() { System. out.println(“This motorcycle is a "+ ‏بزع كلق ”ترم زوع‎ If (engineState= = true) System. out.printIn(“The engine is on.”); Else System.out.printin(“The engine is off.”); fal eo

صفحه 71:
ایجاد یک ‎OW‏ این متد دو خط اطلاعات روی صفحه نمایش خواهد داد خط اول رنگ و نوع موتور سیکلت . و خط دوم حالت موتور آن را نمایش می دهد فايل را ذخیره کرده و سپس آن را با عم كامبايل كنيد : گر سعی شود این کلاس را بالینترپرتر جاوا اجرا کنید . با خطا مواجه خواهید شد چون اینترپرتر دنبال متدی بنام ۳۳08() می گردد و چون آن را نمی ‎play ub,‏ خطای ذیل را نمایش خواهد داد : ‎coral (tac rcp cot cePiced‏ رحاس ج000 اه 10 برای آنکه این کلاس را عملیاتی کنیم باید یک برنامه جاوا بنویسیم و در آن از این کلاس استفاده کنیم ما روش ساده تر آن است که به این کلاس یک مند ۳۳80( اضافه کنیم . لیست زیر این متد را نشان می دهد . fal a

صفحه 72:
اد یک ‎OW‏ متد 0ماعصدبرآی مزع ماما ‎Public static void main (string args[]){‏ :1 ‎Motorcycle m=new motorcycle();‏ :2 ‎mmake = “Yamaha RZ350";‏ :3 ‎mcolor="yellow”;‏ :4 ‎System_out.printIn(‘Calling Show Arts...°);‏ :5 ‎mshow ArtsQ;‏ :6 ‎System.out.printl (5.0.0.0...‏ ;7 ‎System.out println(Starting engine...");‏ :8 ‎mstartEngined;‏ :9 ‎System.out.printIn(*.....")‏ :10 ‎System.out.printin(“Calling show Arts.‏ :11 ‎m.show Arts);‏ :12 ‎System.outprintin(*.......");‏ :13 ‎System. out.printin(*Starting engine...”);‏ :14 ‎mstartEngineQ);‏ ;15 }:16 fal ©

صفحه 73:
ایجاد یک ‎OW‏ با لضافه کردن لین متد . کلاس ۳۳۳۲( اکنون یک برنامه است و می توان آنرا کامپایل و اجرا کرد . خروجی برنامه شبیه ذیل خواهد بود ‎Calling Show Arts‏ This motoreyele is a yellow Yamaha RZ350 The engine is off. Starting engine ... ‘The engine is now on. This motorcycle is a yellow Yamaha RZ350 The engine is on. Starting engine .... The engine is already on. fal 9

صفحه 74:
تحلیل برنامه : چیزهایی که در مند 070800 می بینید خط ۱ تعریف متد 007000 است و شما آن را همواره به همین شکل خواهید دید . در خط ۲ یک شیء از کلاس ۳۳7() بنام © تعریف شده است . توجه كنيد كه با كلاس ها به طور منظم کاری صورت نمی گیرد بلکه یک وهله از آنها ( یک شیء ) مورد استفاده قرار می گیرد . در خطهای ۳ و ۴ متفییرهای حالت این شییء ست می شوند 00 ۷۲۰۳۰۰ و رنگ زرد . در خط های ۵ و ۶ متد 0/۳//۲۸۶) فراخوانی می شود ( در حقیقت فقط خط ۶ فراخوانی این متد.لست و خط ۵ فقط پیامی است مبنی بر فراخولن آن ) . این متد نوع « رنگ و روشن یا خاموش بودن شییء موتور سیکلت را نمایش خولهد داد . توجه کنید که در ابتدا موتور خاموش است . خط ۷ یک خط رسم می کند که قسمتهای مختلف خروجی را از هم جدا می کند و فقط برای شکیل تر شدن برنامه است . در خط ‎٩‏ با فراخوانی متد 20۳2۸ موتور روشن می شود . خط ۲ دوباره متد 1715 د!9() را فراخوانى كرده و مقدار متغییرهای حالت را نمایش می دهد . در اين لحظه موتور روشن است 1 خط ‎١8‏ سعى مى كند كه موتور را دوباره روشن كند . ولى موتور قبلاً روشن شده است و بيام داده شده هم موید همین مطلب است fa 6

صفحه 75:
ورائت ساد ورائت یکی از کلیدی ترین مفاهیم برنامه نویسی شیء گراست و تاثیر مستقیمی روی نحوه طراحی و نوشتن کلاس های جاوا دارد . ورائت مکانیزمی لست برای تغییر شکل دلدن به کلاس ها و استفاده مجدد از آنها . با مکانیزم ورائت می توان به طور خودکار از اطلاعات کلاس های دیگر استفاده کرد . اصطلاح جدید ( ورائت تمام کلاسها را در یک سلسله مراتب گرد آورده و مرتب می کند .) به شکل زیر نگاه کنید fal 6

صفحه 76:
ورائت ساد هر کلاس یک فوق کلاس (عصه ص69 . و یک يا چند زیر کلاس ‎ols ub Chae)‏ هر کلاس از کلاسهای بالاترخود در این سلسله مرتب ارث می برد و بهکلاس پایینتر از خود ار می دهد . هر زیر کلاس تمام متدها و متفییرهای فوق کلاس خود را به ارث می برد و دیگر نیازی به تعریف مجدد آنها وجود ندارد بالاترین کلاس در سلسله مراتب کلاس های جاوا کلاس ۴7۱() است و تمام کلاسهای دیگر از این كلاس مشتق مى شوند . اين كلاس تعیین کننده کلی ترین متدها و خواص تمام كلاس هاى ذيل خود لست . معمولاً کلاس ها ضمن ارث بردن از کلاسهای بالاتر از خود . چیزهایی را به آن اضافه و پیاده سازی می کنند . fal 0

صفحه 77:
ایجاد سلسله مراتب کلاس : وقتی تعداد کلاس ها زیاد است » منطقی است که آنها را در یک سلسله مراتب گرد آوریم تا بتوانیم نحوه به ارث رسیدن متدها و خواص را بهتر کنترل کنیم . بدين ترتيب نياز به دوباره نويسى كدها به حداقل رسيده و هنكام نیاز به تغییر كدها نيز اصلاحات فقط در يك نقطه انجام خواهد شد و از آنجا به تمام نقاط ديكر دسترسى خواهند يافت اجازه دهيد با استفاده از مثال جاد 0 (1) موضوع را روشنتر كنيم . ديديد كه كلاس جاصرد 0 () جكونه طراحى شد ( و بخوبى كار كرد ). حال فرض كنيد بخواهيم كلاس جديدى بنام -0©8) ( اتومبيل ) بسازيم . موتور سيكلت و اتومبيل شباهتهاى زيادى با هم دارند . در نظر اول بنظر مى رسد كه بهتر است كلاس خاعبو 0096 را باز كنيم و اطلاعات درون آن را به داخل كلاس جديدى بنام -00) كبى كنيم . اما ايده يهترى هم وجود دارد و آن انتقال اطلاعات مشترك اين دو كلاس به يك كلاس كلى تر است . با إينكه اين روش كار بيشترى مى طلبد ولى توسعه آن و ايجاد كلاسهاى جديدتر ( مانند دوجرخه . كاميون و غيره ) را ساده تر خواهد كرد اجازه دهيد با شروع از بالاترين كلاس جاوا در سلسله مراتب كلاس ها. يعنى كلاس 0190© . يك سلسله مراتب جديد بسازيم . كلى ترين كلاسى كه مى تواند اين دو وسيله نقليه را در خود جاى دهد را كلاس حاف !06) مى ناميم . يك وسيله نقليه (طف!00)) جيزى است كه مى تواند فردى را أز fal ar

صفحه 78:
ایجاد سلسله مراتب کلاس : نقطه ای به نقطه دیگر منتقل کند . در کلاس اط(ع() فقط رفتارانتقال از نقطه 0 به نقطه ۲ را تعریف خواهیم کرد و نه هیچ چیز بیشتر در ذیل کلاس طتفاع() چه چیزی بايد قرار دهیم ؟ مثلا ماشین متحرک با نیروی انسانی و ماشین متحرک با موتور چطور است ؟ ماشین متحرک با نیروی انسان مثلاًمی تواند پدال داشته باشد ( و يا هر مكانيزمى برای انتقال حرکت انسان به ماشین ). ماشین متحرک با موتور هم ( به احتمال زیاد! ) یک موتور دارد . به سوخت نیاز دارد و به وسیله ای برای تنظیم سرعت . در ذیل کلاس ‎go Beets Powered Oshicls‏ توانیم چند کلاس مثل ‎Ovioroycke‏ . () و اس قرار دهیم . ولی می توانیم با ايجاد يك كلاس بينايى باز هم رفتارها را تقسيم بندی کنیم بالاخره كلاس أدص 96() را در ذيل كلاس لحاد!(1) سب" ( دو چرخ ) قرار داده ‎pal‏ . اما خواصی مثل رنگ و نوع را کجا باید قرار داد ؟ می توان این خواص را در کلاس عاحفات() قرار داد تا تمام زیر کلاسها آنها را به ارث ببرند . تتها چیزی که باید به خاطر داشته باشید این است که وقتی یک حالت ( خاصیت ) یا رفتار را تعریف کردید . دیگر به طور خودکار در سلسله مراتب به تمام زیر کلاسها انتقال خواهد یافت ( به ارت خواهد رسید ). fal 0 اد بپرسید که

صفحه 79:
ایجاد سلسله مراتب کلاس : وسایل نقلیه دوچرخ و چهار چرخ Engine Powered Vehicle ‘Two Wheeled Person, Four Whealed Engine Powered Vehicle Powered Vehicle fal 9

صفحه 80:
ورائت چگونه عمل می کند - ورائت چگونه عمل می کند ؟ چگونه یک شیء متفییرها و متدهای کلاس بالاتر را به طور خودکار بدست می آورد ؟ در مورد متغییرها . وقتی شییء بوجود می آید یک مسیر دسترسی به تمام متفییرهای کلاس مربوطه را بدست می آورد . در مورد متدها هم وضع به همین منوال است و تعریف یک متد در اختیار تمام زیر کلاسها قرار خواهند گرفت . وقتی در یک شیء متدی فراخوانی می شود . جاوا ابتدا در همان کلاسی که متد تعریف شده به دنیال کد آن می گردد . اگر کد آن را نیافت » در سلسله مرلتب يك پله بالاتر رفته و در فوق کلاس بدنبال آن خواهد گشت تا زمانیکه کد متد را بیابند . به شکل زیر نگاه کنین

صفحه 81:
ورائت چگونه عمل می کند < نحوه تعیین محل متدها وقتی در یک زیر كلاس متدى با نام مشابه متدى در يك كلاس بالاتر تعريف شوده كارها كمى ييجيده خواهد شد . در اين حالت متدى كه زودتر ( در حركت از يايين ) يافت شود اجرا خواهد شد . بدين تر: متد تعریف شده در زیر کلاس متد فوق کلاس را مخفی می کند . به اين وضعيت ‎Meunge sao jet nd‏ ‎ate Override) Gy od‏ گفته می شود ‎ .‏ هس دجسم itn io شکل زیر را ببینید .

صفحه 82:
ورائت چگونه عمل می کند.: تحریف متدها : اصطلاح جدید : به تعریف یک متد با نام مشابه متدی ‎Moods oveisden‏ ادر يك فوق كلاس ‎٠‏ تحريف مى ‎ee‏ ‏شود . متد زير كلاس متد فوق كلاس را مخفی می کند . Masage sotto oot and pseu clas hieaty a ton fod

صفحه 83:
و منفرد و چند گانه : جاوا به گونه ای که دیدید از ورائت منفرد 09) استفاده مى كند . وراثت منفرد يعنى هر كلاس جاوا می تواند فقط یک فوق کلاس داشته باشد : اما عکس آن درست نیست» یعنی یک کلاس می تواند چندین زیر کلاس داشته باشد در زبانهای شیء گرلی دیگر . مانند 0++ . يك كلاس مى تواند از جند فوق كلاس به ارث ب این وضعیت ورائت چند گانه (۳() گفته می شود . با وراثت جند كانه مى توان كلاس هاى فوق العاده جالبی بوجود آورد . ولی کد نویسی آنها بسیار دشوار است .

صفحه 84:
Packages ‏ها‎ ay 9 IoterPures- le Luly دیدید که در جاوا هر کلاس فقط از یک فوق کلاس ارث می برد . با اينکه ورائت منفرد برنامه نویسی را ساده تر می کند ولی کمی محدودتر هم هست : مثلاً .اگر در شاخه های مختلف یک سلسله مراتب متدهای مشابهی داشته باشید . باید تمام آنها را جداگانه پیاده سازی کنید . جاوا با استفاده از مفهومی بنام واسط مشکل به اشتراک گذاشتن متدها را حل کرده است واسط عبارت است از مجموعه ی نام چند متد , بدون تعریف آنها . که واسط آنها در اختیار کلاس استفاده کننده می گذارد . یک کلاس جاوا می تواند در آن واحد از ین واسط استفاده کند . و با اين کار کلاس های بسیار متفاوت می توانند رفتارهای مشابهی داشته باشند در جاوا کلاس و واسط های مرتبط با هم در یک بسته گرد آورده می شوند . کلاس های اصلی جاوا در بسته ای بنام مهم كرد آورده شده اند و فقط محتویات این بسته است که در تمام نسخه های جاوا ثابت ماند . می البته در بسته هل بسته های دیگری وجود دارند ولی بسته :۱0/۳ به طور پیش فرض در اختیار تمام برنامه هاست . برای استفاده از بسته های دیگر باید آنها را به طور صریح تعریف کرد . fal os

صفحه 85:
Packages ‏ها‎ ay 9 IoterPures- le Luly نام بسته ها و کلاس ها در هنگام تعریف با نقطه () از هم جدا مى شوند . مثلاً براى استفاده از كلاس +29 كه در بسته امه ( که خود در داخل بسته تمه می باشد ) قرار دارد . بايد چنین نوشت : )هرمز

صفحه 86:
ایجاد یک زیر کلاس : چگونه می توان یک زیر کلاس ساخت و چند متد را در آن تحریف کرد ‎Se Gl‏ با بسته ها هم پیشتر آشنا خواهید شد . فرض کنید می خواهید یک اپلت بوجود آورید . تمام اپلت ها در جاوا زیر کلاس کلاسی بنام ا9۳۳) هستند ( که در بسته اعا0/0۳۳ قرار دارد ) .با ایجاد یک زیر كلاس از كلاس (42م90) مى توانيم تمام رفتارهای آن ( از قبیل کار با پنجره ها . ارتباط با سیستم و پاسخ به رویدادهای لمارو۴5) و عص() را به ارث ببریم . در اين مثال يك اپلت شبیه اپلت 00۲۸۷) ما" خواهیم ساخت که این عبارات را با رنگ و اندلزه دیگری نمایش خواهد داد . ایتدا یک کلاس تعریف می کنیم : Public class HelloAgainApplet extends java.applet.applet{ } fal 6

صفحه 87:
ایجاد یک زیر کلاس : در اینجا کلاسی ‎Leto Begarspplet pls‏ تعریف شده است . به قسمت تلد ‎ae‏ ‏در حقیقت این عبارت است که می گوید اپلت شما یک زیر کلاس از کلاس 0۳۳۳4) خواهد بود . به مسیر کامل کلاس اع۳() دقت کنید . چون این بسته بطور پیش فرض برای جاوا تعریف نشده + بايد مسیر کامل آن ذکر شود . کلمه تعتال) می گوید که این کلاس در اختیار تمام سیستم قرار خواهد داشت تا اینجا كلاس ما تمام متفییرها و متدهایش را از کلاس بالاتر 60۳۳0) به ارث برده و كاملاً شبيه آن است . اجازه ذهيد فونت آن را عوض كنيم : Font f=new font(‘TimesRoman”,Font.BOLD,36); fal ‏جو‎

صفحه 88:
ایجاد یک زیر کلاس : در اینجا *] متفییری است از کلاس ۳0#) که جزء بسته 9۸ است . با تعریف فوق فونت سیستم از نوع ۱۳۳6۲7 ضخیم و با اندازه ۳۶ خواهد شد . با استفاده از شییء فونت می توان فونت اپلت را تغییر دلد . حال بايد متدی تعریف کرد تا از اين فونت استفاده کند . متدی که عبارات را روی صفحه نمایش می دهد متد ۳0۷ است که در اینجا آن را تعریف خواهيم کرد تا ‎Welo Dorkd be‏ با فونت جديد هه ‎Public void paint (Graphics g)‏ اتعريف جديد متد مزبور چنین است > { :)له ممع ‎g.setColor(Color.red);‏ ‎g.drwString(“Hello again!” ,5 , 25);‏ } fal be

صفحه 89:
ایجاد یک زیر کلاس : در لینجا به دو نکته باید توجه کنید . اول اینکه اين متد ۲ط۳۰) است چون متدی که هم نام آن است خود ۳/#7) است . وقتی می خواهید متدى را تحريف كنيد بايد میدان دید (۳۳۳۳() آن مانند متد فوق کلاس متناظرش باشد . دوم اينکه . متد 6۳۷ یک آرگومان ورودی . که یک شیء از کلاس ‎Col Brophiog‏ دارد . اين کلاس یک روش مستقل از سخت افزار برای عملیات گرافیکی در متد 06۳ سه کار انجام داده ایم : * گفته شده که شیء گرافیکی از فونت * استفاده کند . * گفته شده که رنگ رسم عبارت رنگ قرمز (۳۳۳۰۲۵()) است . * در پایان هر عبارت *00() متا" در نقطه (۵,۲۵) رسم می شود . كلاس جديد به همين راحتى تعريف شد ! ايلت ما تا اين جا بايد مانند ذيل باشد

صفحه 90:
ايجاد يك زير كلاس : Public class HellAgainApplet extends java. applet. Applet 1 Font f=new Font(“TimesRoman” Font.BOLD,36); Public void paint (Graphics g) { g.setFont(f); g.setColor(Color.red); g.drawString(“Hello again!” ,5,40);

صفحه 91:
ايجاد يك زير كلاس : اما مثال ما يك اشتباه دلرد ..اكر نمى توانید حدس بزنید که این اشتباه چیست . اپلت را کامپایل كنيد . كامبايلر با ييغام ذيل كارش را متوقف خواهد کرد : HelloAgainApplet.java:7:Class Graphics not found in type declaration اين ييغام خطا براى جيست ؟ به ياد داريد كه بسته پیش فرض 07 بسته ».همهم است ولى شما در خط اول تعريف كلاس از بسته اواصد.عرهم استفاده كرده ايد . اما مى بينيد كه كاميايلر از اين خط خطا نكرفته است جون مسير كامل بسته را قيد كرده ايم . يك راه حل براى رهايى از اين قبيل مشكلات آن است كه مسير كامل تمام كلاسها را قيد كنيم . اما اكر در يك ايلت بدفعات از يك يا جند كلاس استفاده كنيم . هر بار نوشتن نام كامل مسير كلاس ها بسيار خسته كننده و وقت كير خواهد بود . در اين موارد بهتر است از دستور 5001 استفاده كنيم . در ايلت فوق از سه ‎Braphics) IS‏ , ۳۳0۱) , «صاص2) استفاده كرده ‎gil‏ که همگی در بسته 0/0۰0۸ قرار دارند بنابراین » دستورات ذیل را به اول برنامه » قبل از تعريف كلاس : اضافه کنید : fal ea

صفحه 92:
ايجاد يك زير كلاس : اين ييغام خطا بيلى جيست ؟ به ياد دلريد كه بسته ييش فرض ‎rar erry any FUT‏ است ولی شما در خط اول تعريف كلاس از بسته امتهم استفاده كرده ايد . اما مى بینید که کامپایلر از اين خط خطا نكرفته لمست جون مسير كامل بسته را قيد كرده ايم . يك رله حل براى رهايى از اين قبيل مشكلات آن است كه مسير كامل تمام كلاسها را قيد كنيم . اما اكر در يك ايلت بدفعات لز يك يا جند كلاس استفاده كنيم . هر بار نوشتن نام ‎fal‏ مسير کلاس ها بسیار خسته کننده و وقت گیر خواهد بود . در این موارد بهتر است از دستور مب" استفاده کنیم . در اپلت فوق از سه کلاس ‎Poot, Graphics)‏ , «طا۵()) استفاده کرده ایم که همگی در بسته ۴00.0۸ قرار دارند بنابراین « دستورات ذیل را به اول برنامه . قبل از تعریف کلاس . اضافه کنید Import java.awt. Graphics; Import java.awt.Font; Import java.awt. Color; fal ee

صفحه 93:
ایجاد یک زیر کلاس : نکته : با استفاده از یک ستاره (#) می توان تمام کلاس های 7عتد۳) یک بسته را مورد استفاده قرار داد . مانند ذيل 9 11210011 [ 253. 358/1. *: حال كه كلاس را تصحيح كرديم . مى توانيم ايلت اعاوم9) #2م>9) باوبا را كامبايل كنيم . براى تست این اپلت . فایل 1/۲1" جدیدی مانند ذیل بسازید :

صفحه 94:
<HTML> <HEAD> <TITLE> Another Applet</TITEL> </HEAD> <BODY> <P>My second java applet says: <BR><APPLET CODE="Hello Again Applet.class” WIDTH=200 HEIGHT=50> </APPLET> </BODY> </HTML> fa 2

صفحه 95:
ایجاد یک زیر کلاس : این فایل را با نام ۳/۳۹2/9۱۱ ذخیره کرده و آن را در یک کاوشگر مجهز به جاوا اجرا کنید یکی از سخت ترین جنبه های تسلط پر بنامه نویسی شییء گرا درک همین مفاهیم ( عجیب و غریب veal gl ¢ در اینجا مرور مجددی بر این مفاهیم خواهیم داشت . * کلاس: الگویی برای اشیاء که در آن رفتار و خواص شییء تعریف نشده اند . * شیی»: یک نمونه قابل لمس از یک کلاس لز یک روی کلاس می توان چند شییء بوجود آورد که هر کدام رفتار و خواص خود را دارند . * وهله : هر شییء یک وهله است از یک کلاس . * فوق کلاس : کلاسی که به زیر کلاس هایش ارث می دهد . * زیر کلاس : کلاسی که از والدینش ارث می برد . * متد کلاس : متدی که در يك كلاس تعريف مى شود fal es

فهرست ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ مقدمه Activexآشنايی با انقالب مدول های نرم افزاری برنامه نويسی شی گرا Axtivexتاريخچه کوتاهی از Activexنقاط ضعف و قوت وضعيت جاوا چگونه است ؟ Activexدرک مفهوم جاوا و کنترل های Activexبکار بردن کنترل های و نمایشگرها Java Appletاجرای JITخاموش کردن اجرا کننده Javaو برنامه های Activexکنترل کردن Activexتغيير دادن درجه امنيت برنامه های و امنيت Activex 1 فهرست ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ ‏ امضاء ديجيتالی از ديدگاه كاربران امضای ديجيتالی از ديد برنامه نويسی نرم افزارهای مورد نياز برای امضای ديجيتالی جاوا چيست ؟ تکامل جاوا Javaويژگیهای زبان برنامه نویسی ايجاد یک اپلت جاوا Hello Worldبرای اجرای اپلت HTMLيک برنامه نويسی شی ء گرا و جاوا برنامه نويسی شیء گرا در جاوا ايجاد يک کالس تحليل برنامه -Inheritanceوراثت 2 فهرست ‏ ‏ ‏ ‏ ‏ ايجاد سلسله مراتب کالس وراثت چگونه عمل می کند وراثت منفرد و چند گانه -Packagesو بسته ها -Interfacesواسط ها ايجاد يک زير کالس 3 مقدمه : جاوا یکی از تکنولوژیهای عمده ایجاد محتویات فعال در اینترنت است . اپلت های جاوا ،که توسط کاوشگر بار و اجرا می شوند ،دارای بسیاری از قابلیت های Activexهستند ،اپلت های جاوا برای جلوگیری از اقدامات خرابکارانه ،فاقد توانایی های خاص ( از قبیل دسترسی به سیستم فایل Systemfileهستند و این آنها را بسیار محدود کرده است .از نظر تئوری ،اپلت های جاوا ایمن هستند چون اساساً نمی توانند کارهای خطرناک انجام دهند ! عالوه بر آن چون جاوا زبانی برای اینترنت است ،از ایمنی و حفاظت ذاتی باالیی برخوردار است . طراحان جاوا از ابتدا یک محیط برنامه نویسی امن را مد نظر داشته اند . 4 مقدمه : مسئله حفاظت سیستم ها رابطه تنگاتنگی با اشاره گرها دارد . اکثر مهاجمان برای ورود غیر قانونی به سیستم های دیگران از این اشاره گرها استفاده می کنند و جاوا با حذف اشاره گرها این راه را سد کرده است . تکنولوژی Activexیکی از قویترین ابزارهاییست که برنامه نویسان ویندوز در اختیار دارند . تقریبا هر برنامه ای که بنویسند از Activexاستفاده خواهند کرد . جهت کد نویسی و طراحی صفحات وب نیاز به یک Text Editorساده مانند Notepadکه در تمامی ویندوزها قابل دسترسی می باشد و نیاز به نصب Text Editorجدید نیست . ضمنا سیستم شما باید دارای مشخصات سخت افزاری ذیل باشد : حداقل سیستم مورد نیاز پنتیوم 2335 مقدمه : 16مگابایت Ram -حدود 600مگا بایت فضای آزاد 6 آشنایی با Activex تکنولوژی Activexیکی از قویترین ابزارهاییست که برنامه نویسان ویندوز در اختیار دارند .تقریبا هر برنامه ای که بنویسند از Activexاستفاده خواهند کرد. در این مطالب با سر فصل ذیل آشنا خواهیم شد : اهمیت مدول های نرم افزاری تاریخچه و اصطالحات Activex درک مفهوم جاوا و کنترل Activex -مطالبی درباره امنیت و توزیع کنترل های Activex 7 انقالب مدول های نرم افزاری : همانند هر صنعت دیگری ،کارآیی یکی از دغدغه های اصلی برنامه نویسان است و یکی از جنبه های مهم کارآیی اجتناب از دوباره کاری است .اگر کدی نوشته اید که کار خاصی را انجام می دهد ،چرا باید دفعه بعد همان کد را دوباره بنویسید ؟ اولین گام در راه استفاده مجدد از کدها ،مفهوم زیر مجموعه یا روال Procedure است .کدی را یکبار می نویسید و از آن به بعد در هر جای برنامه که الزم بود فقط کافی است آنرا احضار Callکنید .قرار دادن روال های کلی در یک مدول برنامه نویسی قدمی به پیش بود .با این تمهید می توان از آن روال ها در برنامه های مختلف استفاده کرد . 8 برنامه نویسی شی گرا : به موازات رشد برنامه نویسی مدوالر ،تکنولوژی دیگری در زمینه برنامه نویسی اختراع شد و توسعه یافت .برنامه نویسی شی گرا یا OOP -Object – Oriented Programmingمحرک توسعه این تکنولوژی رشد و پیچیدگی روز افزون برنامه ها و مشکالتی بود که به تیغ آن برنامه نویسان را درگیر خود کرده بود .مهمترین منبع این مشکالت بر هم کنش غیر قابل پیش بینی قسمتهای مختلف یک برنامه با یکدیگر بود .چون این قسمتها مانند دانه های یک زنجیر در هم بافته شده بوند و هر تغییری در یک قسمت به راحتی سایر قسمتها را متاثر می کرد . را ه حل این مشکل آن بود که هر قسمت برنامه در یک بسته بنام شی ، Objectکپسوله یا Encapsulationشود .ساز و کار درونی هر شی مطلقا از دید دنیای خارج مخفی است و آنها نمی توانند تاثیری بر عملکرد وی بگذارند .البته یک شی نمی تواند بکلی 9 برنامه نویسی شی گرا : از دنیای اطراف خود ایزوله شود چون بدین ترتیب دیگpر چیز بی فایده ای بیش نخواهد بود ! به همین دلیل برای ارتباط با دیگر قسمتهای برنامه ،هر شی از وسیله ای بنام واسط یا Interfaceاستفاده می کند .واسط هر شی دو بخش دارد :خواص ( داده ها ) و متدها ( کدها ) ی آن . 10 تاریخچه کوتاهی از : Axtivex برنامه نویسی مدوالر سالها برنامه نویسان را به خود مشغول کرده بود و در واقع یکی از محرکهای اصلی توسعه سیستم عامل ویندوز هم همین ایده کدهای قابل اشتراک و قابل استفاده مجدد بوده است .اولین گام در راه پیاده سازی عناصر مدوالر تکنولوژی OLEیا Object Linking and Embeddingبود .هدف اولیه OLE ایجاد سندهای مرکب Compound Documentsبا استفاده از برنامه های مختلف بود . سندی که مقداری متن و مقداری نمودار دارد ،و هر کدام آنها با نرم افزار خاص خود ایجاد شده اند ،نمونه ای از یک سند مرکب است .وقتی با متن کار می کنید نرم افزارها واژه پرداز کنترل را بدست می گیرد و وقتی با نمودارها کار می کنید نرم افزار ترسیمی مسئولیت را به عهده می گیرد OLE .با وجود کندی و مشکالت دیگر مسلماً قدمی به پیش بود . 11 تاریخچه کوتاهی از : Axtivex تکنولوژی OLEخود بر یک استاندارد کلی تر بنام COMیا ‏pت بppزودpی COMاز سppندهای Component Object Modelاpسpتوار اpس . مرکب فراتر رفت و OLEرا هم بدنبال خود کشاند و از آن به بعد OLEاصطالحی شد برای هر چیزی که از تکنولوژی COMاستفاده می کرد .سالها بعد که میکروسافت بطور جدی درگیر اینترنت شد ،اصطالح Activexهم وارد ادبیات کامپیوتری شد . ابتدا این اصطالح فقط در رابطه با اینترنت و وب بود اما اوضاع بدین منوال باقی نماند و اکنون Activexبه آن بخش از تکنولوژیهای COMگفته می شود که در آنها یک قطعه نرم افزاری امکانات خود را در اختیار برنامه های دیگر می گذارد .یکی از ادعاهای ( Activexکه بویژه به اینترنت مربوط می شود ) پشتیبانی از نرم افزارهای توزیع شده Distributedاست ،و این یعنی ،کنترل های Activexبه شما سرویس خواهند داد ، 12 تاریخچه کوتاهی از : Axtivex حتی اگر در کامپیوتری دیگر ( و هزاران کیلومتر دورتر ) باشند .اما چه بر سر OLEآمد ؟ این تکنولوژی دوباره به وضعیت اولیه اش برگشت و اکنون فقط با سندهای مرکب سروکار دارد . 13 نقاط ضعف و قوت : Activex تکنولوژی Activexبهترین وسیله برای ایجاد محتویات فعال در وب است . البته برخی با این عقیده مخالفند و باید گفت که این تکنولوژی مسلما تنها ابزار محتویات فعال وب نیست .پس اجازه دهید نگاهی به جنبه های مثبت و منفی این تکنولوژی بیندازیم . نقاط قوت : یکی از مهمترین نقاط قوت Activexقدرت آن است .یک کنترل Activexتقریباً از عهده هر کاری که یک برنامه معمولی بتواند انجام دهد ،برمی آید .از دیدگاه یک برنامه نویس وب این بهترین جنبه یک ابزار خلق محتویات دینامیک است .دیگر ابزارهای محتویات فعال ،مانند جاوا و ، CGIدر این زمینه بسیار محدودتر از Activexهستند .نکته مثبت دیگر ،حداقل برای بسیاری از افراد ،امکان استفاده از مهارتهای عادی برنامه نویسی در خلق کنترل های Activexاست . روش انجام بارگیری های وب هم یکی از مزایای Activexاست . 14 نقاط ضعف و قوت : Activex وقتی به یک صفحه وب که عناصر Activexدارد می روید ،وقایع ذیل اتفاق می افتد : -1اطالعات مختصری درباره کنترل و شماره ویرایش آن بار می شود . -2کاوشگر بررسی می کند که آیا این نرم افزار در کامپیوتر شما نصب شده یا خیر . -3اگر این نرم افزار در سیستم شما وجود نداشت ( یا اینکه ویرایش آن قدیمی تر بود ) ،کاوشگر آنرا بار کرده و سپس نصب و اجرا خواهد کرد . -4اگر نرم افزار در سیستم شما وجود داشت ،کاوشگر آنرا از همان جا اجرا خواهد کرد . حتما متوجه مزیت این روش شده اید :هر قطعه نرم افزاری فقط یکبار باید بار شود و دفعات بعد دیگر نیازی به بار شدن آن نخواهد بود ،بنابراین صرفه جویی زیادی در زمان نمایش آن صفحه وب خواهد شد .در ابزارهایی مانند جاوا ،این قبیل نرم افزارها باید هر دفعه مجددا بار شوند و این اجرای آنها را به مراتب کندتر خواهد کرد . 15 نقاط ضعف و قوت : Activex نقاط ضعف – هیچ چیز کامل نیست ! شاید مهمترین جنبه منفی Activexضعف امنیتی آن باشد .این ضعف ظاهرا یکی از تبعات اجتناب ناپذیر قدرت و انعطاف تکنولوژی Activexاست .یک برنامه نویس شرور می تواند براحتی با این تکنولوژی نرم افزاری بسازد که به کامپیوتر دیگران صدمه بزند .با توجه به این وضعیت ،آیا می توان هنگام برخورد با کنترل های Activexروی اینترنت احساس راحتی کرد ؟ پاسخ این سئوال مثبت است و در ادامه توضیح خواهیم داد که چگونه میکروسافت اقدامات امنیتی خاص را برای این تکنولوژی پیاده سازی کرده است .با این وجود همواره این مطلب را در نظر داشته باشید که هیچ سد امنیتی ذاتاً نفوذ ناپذیر نیست . یکی دیگر از نقاط ضعف تکنولوژی Activexآن است که فقط برخی از کاوشگرهای امروزی از آن پشتیبانی می کنند .اگر در یک صفحه وب نرم افزارهای Activexوجود 16 نقاط ضعف و قوت : Activex داشته باشد و فردی با یک کاوشگر که از Activexپشتیبانی نمی کند این صفحه را باز کند قادر به استفاده از مزایای آن نخواهد بود .خوشبختانه این مشکل آنچنان که به نظر می آید حاد نیست ،چون دو تا از مهمترین کاوشگرهای وب ( )Netscape Navigator , Internet Explorerاز این تکنولوژی پشتیبانی می کنند ( اولی مستقیم و دومی از طریق یک افزودنی قابل نصب ) به هر حال ،وقتی با برنامه نویسی اینترنت سروکار داریم ،این مشکل اساساً وجود ندارد چون این ما هستیم که شبکه را کنترل می کنیم .مشکل دیگر رفتار کنترل های Activexآن است که تمام آنها روی سیستم شما جا خوش کرده و فضای هارددیسک را اشغال خواهند کرد .اما بنظر من نگرانی در این مورد هم بیهوده است چون عناصر Activexمعموال کوچکند و چند مگابایت جایی که احتماال ( صدها کنترل ) Activexاشغال خواهند کرد در هارد دیسک های بسیار بزرگ امروزی نمی توانند مشکلی ایجاد کند . 17 وضعیت جاوا چگونه است ؟ جاوا یکی دیگر از تکنولوژیهای عمده ایجاد محتویات فعال در اینترنت است . اپلت های جاوا ،که توسط کاوشگر بار و اجرا می شوند ،دارای بسیاری از قابلیت های Activexهستند ،اپلت های جاوا برای جلوگیری از اقدامات خرابکارانه ،فاقد توانایی های خاص ( از قبیل دسترسی به سیستم فایل Systemfileهستند و این آنها را بسیار محدود کرده است .از نظر تئوری ،اپلت های جاوا ایمن هستند چون اساساً نمی توانند کارهای خطرناک انجام دهند ! 18 درک مفهوم جاوا و کنترل های : Activex جاوا یک زبان برنامه نویسی کامپیوتر است که توسط شرکت Sunبه بازار عرضه شده است تا به وسیله آن برنامه نویسان قادر باشند برنامه هایی را برای مرورگرهای وب بنویسند که کار با آنها برای استفاده کنندگان بسیار راحت باشد ابزارهای استاندارد شبکه وب به فعالیت ها و عملکردهایی که از صفحه وب قابل دسترسی هستند محدود می شوند .با یک نرم افزار کامل برنامه نویسی مانند جاوا محدودیت های کمی برای طراحی عملکردهای دورن یک صفحه وب وجود دارد . بعنوان مثال شما می توانید با مراجعه به سایت اینترنتی www.java.sun.comبا برخی از نمونه های کاری جاوا آشنا شوید .به شکل زیر توجه کنید : 19 درک مفهوم جاوا و کنترل های : Activex • وسایل باال و پایین برنده صفحه به همراه صدا • طراحی تصاویر سه بعدی از اشیاء مختلف نظیر مولکول • نشانگرهای اعالن یک مطلب که بطور خودکار عوض می شود 20 درک مفهوم جاوا و کنترل های : Activex برنامه های جاوا را با نام Appletنامگذاری کرده اند Applet .جاوا توسط صفحات وب بر روی یک سرویس دهنده وب نگهداری می شود .وقتی که شما یک صفحه وب را که دارای قسمت هایی است که بوسیله جاوا برنامه ریزی شده نگاه می کنید. برنامه های جاوا بصورت خودکار در هنگام دیدن آن صفحه وب از روی اینترنت گرفته و بر روی کامپیوتر شما قرار می گیرند .برای انجام این کار ،احتیاجی نیست شما کاری انجام دهید . نرم افزار IEخود می داند که چگونه برنامه های جاوا را اجرا کند .یک برنامه جاوا به همان سرعت که به دستگاه شما می رسد بر روی آن نیز اجرا می شود . برای اینکه کامپیوتر خود را بصورت مطمئن نگهداری کنید نرم افزار IEمدلی از امنیت جاوا را به شما ارائه می کند که در آن اجازه اجرای کلیه اپلت های جاوا داده شده است .بدون اینکه در مورد آسیب دیدن برنامه های کامپیوتر تان یا نفوذ به 21 درک مفهوم جاوا و کنترل های : Activex اطالعات شخصی خودتان که بر روی دستگاه شما موجود است نگران باشید Javascript .ساده ترین زبان برنامه نویسی کامپیوتر است که برای طراحی اجزاء صفحه وب شما بکار می رود . Javascriptبوسیله شرکت Netscapeبه بازار عرضه شده است .برخالف جاوا این نرم افزار نمی تواند برای نوشتن برنامه ها یا Appletبکار رود Javascript . فقط برای اعمال ساده نظیر روشن کردن یک کلمه وقتی که شما با ماوس بر روی آن می روید و یا تغییر شکل یک نشانه به شکلی که شما تصور کنید آن را فشار داده اید بکار می رود . Internet Explorerقادر است که Javascriptرا اجرا کند و صفحاتی را که در آنها از اجزایی استفاده شده که بوسیله Javascriptبرای همگان قابل استفاده شده است ممکن است در نوشتن آنها مشکالتی پیش آید و در نتیجه امکان دارد 22 درک مفهوم جاوا و کنترل های : Activex شما در هنگام دیدن صفحات وب با اشکاالتی در رابطه با دستورات Javascript مواجه شوید و عملکردهای Javascriptبر روی دستگاه شما به شکل درستی اجرا نشود . شرکت Microsoftدوست دارد که Activexرا یک مجموعه از امکانات جدید برای ساختن صفحات وب فعالتر معرفی کند بر خالف جاوا Microsoft Activexیک زبان برنامه نویسی نیست بلکه یک مجموعه از قطعات نرم افزاری است که توسط دیگر نرم افزارهای برنامه نویسی نظیر جاوا می تواند استفاده شود Activex .مانند ‏pت هpمچنین ‏pابpلیتppرم اpفزار IEرا گppسترشدادpه pاpس . ن add-onsو Plug – insقp Activexقابلیت های نرم افزار جاوا را نیز بهبود بخشیده است .برنامه های Activex کنترل نامیده می شوند .مانند اپلت های جاوا ،کنترل ها از روی اینترنت گرفته می شوند و بر روی دستگاه شما اجرا می گردد این عمل هنگامی صورت می گیرد که شما صفحات وبی را مشاهده می کنید که دارای کنترل های Activexهستند 23 درک مفهوم جاوا و کنترل های : Activex در گوشه پایین سمت چپ پنجره IEشما می توانید جمله ( نصب قطعات نرم افزاری ) وقتی که کنترلهای Activexدر حال انتقال به دستگاه شما هستند را مشاهده می کنید . مواقعی ممکن است شما با پنجره هایی در صفحه مانیتور کامپیوترتان مواجه شوید که بوسیله آنها از شما سئوال می شود که آیا می خواهید کنترل های Activexبه دستگاه شما منتقل شوند یا نه ؟ تکنولوژی Activexدر حقیقت قسمتی از مدلهای COM ( comمخفف مدلهای شی ء گرای برنامه نویسی میکروسافت می باشد ) میکروسافت می باشد . این مدل به برنامه نویسان اجازه می دهد تا نرم افزارهایی بصورت مستقل برای صفحات اینترنت خود ایجاد کنند و یا برنامه هایی را طراحی کنند که عملیات خاصی را انجام دهد . وقتی که این برنامه ها نوشته و طراحی می شوند می توان از آنها در جاهای دیگر هم دوباره استفاده کرد .در قسمت پایین تعدادی از کنترل های Activexکه در داخل IE بکار می روند آورده شده است : 24 درک مفهوم جاوا و کنترل های : Activex • نمایشگر فایل های Power Point • رابطه هایی برای بکارگیری بانک های اطالعاتی • ساعت های بین المللی • نقشه راه ها که کار با آنها ساده است . یکی از بزرگترین امتیازات جاوا و Activexکه در Plug – ins ، add – onsو نمایشگر ها وجود ندارد این است که آنها بصورت خودکار کار می کنند و شما احتیاجی ندارید که به پایگاه های اینترنت مراجعه کرده و آنها را به کامپیوتر خود منتقل کنید و مدتی وقت صرف کنید تا فرم های ثبت نام شما را پر نمایید .پس از انتقال آنها به دستگاه مدتی را برای نصب آنها وقت صرف کنید .از زمانی که نرم افزار IEتوانست اپلت های جاوا Java Appletو کنترل های Activexرا اجرا کند کاربران اینترنت دیگر احتیاجی ندارند که به پایگاههای خاص برای گرفتن اطالعات مراجعه کنند 25 درک مفهوم جاوا و کنترل های : Activex بلکه اپلت ها و کنترل ها به همان سرعت که به روی دستگاه شما متصل می شوند در همان فاصله نیز به اجرا در خواهند آمد . پایگاه اینترنت مربوط به اطالعات Activex 26 بکار بردن کنترل های : Activex کنترل های Activexصفحات اینترنتی شما را بصورت زنده در می آورند بطوریکه شما قادر خواهید بود فایل های صوتی زنده را اجرا کرده و یا نشانگرهای متغییر را ببینید و بسیاری کارهای مشابه دیگر . 27 بکار بردن کنترل های : Activex -1به یک صفحه وب که دارای کنترل Activexاست متصل شوید .به عنوان مثال به آدرس فوق مراجعه کنید http://carpoint.msn.com/ : -2گزینه مربوط به اجرای یک فایل صوتی یا تصویری را کلیلک کنید . -3در صورت نیاز گزینه Yesرا کلیک کنید تا نصب کنترل Activexبر روی دستگاه شما منتقل شده و اجرا می شود . اگر شما به یک پایگاه اینترنت که دارای یک کنترل Activexهست مراجعه کنید نرم افزار IEچک می کند که کدام کنترل ها بصورت دیجیتالی تایید شده اند .یک کنترل تایید شده دیجیتالی برنامه ای است که بصورت مستقل تایید شده است که دارای ویروس های کامپیوتری نیست و تاثیرات منفی بر روی دستگاه شما ندارد .شما می توانید پنجره ای بر روی صفحه مانیتور خود ببینید که به شما اطالع می دهد که آیا نصب کردن این نرم افزار بر روی دستگاه شما به امنیت آن صدمه ای نمی زند و یا اخطار می دهد 28 بکار بردن کنترل های : Activex که در صورت نصب به دستگاه شما بصورت نرم افزاری آسیب می رساند . نکته : جریان داده :در اینترنت به جای اینکه یک فایل صوتی بزرگ را قبل از اینکه بشنوید به کامپیوترتان منتقل نکنید از جریان داده استفاده می شود .پایگاههای اینترنتی اطالعات خود را بصورت یک جریان داده می فرستند ،کامپیوتر شما پس از چند ثانیه از شروع جریان داده آن را با خبر کرده و شروع به پخش آن می کند و به همین ترتیب آن فایل صوتی یا تصویری را تا انتها اجرا می کند . 29 اجرای Java Appletو نمایشگرها : نرم اpفزار IEیک Java Appletرا وقتی اجرا می کند که صفحه وب حاوی آن در حال شروع به نمایش بر روی صفحه کامپیوتر شما می باشد .هزاران Java Appletبر روی وب وجود دارد نظیر نشانگرهای متغییر باال و پایین برنده صفحه که از خود صدا تولید می کند ،ماشین حسابها و بسیاری از عملکردهای دیگر . اجرای یک Java Applet : -1به یک صفحه وب که دارای Java Appletهست متصل شوید .به عنوان مثال به آدرس های زیر مراجعه کنید : ‏http://www.gamelan.com/ و یا ‏http://www.javasoft.com/ -2منوی Categoryرا انتخاب کنید و سپس گزینه مربوط به نمایش صفحه وب 30 اجرای Java Appletو نمایشگرها : همراه با Java Appletرا کلیک نمایید Java Applet .به کامپیوتر شما منتقل خواهد شد و به اجرا در خواهد آمد . -3اگر الزم شد اطالعات درخواستی اپلت های جاوا و یا منوهای مناسب آن را کلیک کنید تا اجرای آن کامل شود . 31 خاموش کردن اجرا کننده JIT : -1منوی ابزار را کلیک کرده و سپس Internet Optionرا کلیک کنید . -2جعبه Advanceرا کلیک کنید . -3صفحه را به پایین آورید تا به قسمت Java MVبرسید . -4جعبه مربوط به گزینه -Java JIT Complier 5کلید OKرا کلیک کنید . نرم افزار IEدارای یک اجرا کننده نرم افزار است که دقیقا در همان زمان گرفتن برنامه آن را اجرا می کند ( )JITبصورت پیش فرض روشن است .وقتی که شما با مشکلی در اجرای اپلت های جاوا ( )Java Appletبرخورد کردید ،می توانید اجرا کننده JIT خود را در منوی Advanceدر Internet Optionخاموش کنید .بدین ترتیب اپلت های جاوا بر روی دستگاه شما دیگر اجرا نخواهند شد . 32 کنترل کردن Activexو برنامه های : Java توسط IEشما می توانید دقیقا تعیین کنید کنترل های Activexو برنامه های Java Appletتا چه حد بر روی برنامه های دستگاه شما تاثیر بگذارند با استفاده از Security Zonesاستفاده کنندگان و مدیران شبکه می توانند درباره سطح دسترسی کنترل های Activexو برنامه های Java Appletتصمیم بگیرند . به عنوان مثال شما می توانید به برنامه های Java Appletکه از پایگاههای معتبر بر روی اینترنت دریافت می کنید اجازه دسترسی بیشتری به کامپیوترتان را بدهید و یا اینکه جاوا اپلت های گرفته شده از پایگاههای غیر معتبر را از لحاظ دسترسی به فایل های دستگاهتان محدود کنید تا نتوانند به آنها آسیب برسانند . 33 کنترل کردن Activexو برنامه های : Java 34 کنترل کردن Activexو برنامه های : Java تغییر دادن درجه امنیت برنامه های Activex -1منوی Toolsرا کلیک کنید و سپس گزینه Internet Optionرا کلیک کنید . -2گزینه Securityرا در باالی پنجره کلیک کنید . -3بر روی گزینه مناسب کلیک کنید . -4آنگاه می توانید با باال بردن نشانه ،تدابیر امنیتی شدیدتری اتخاذ کنید و یا بالعکس با پایین آوردن نشانه درجه امنیت را پایین تر بیاورید و در اصطالح به Java Appletsاطمینان کنید . -5برای تغییر مشخصات حرفه ای تر می توانید گزینه Custom Levelرا کلیک کنید . 35 کنترل کردن Activexو برنامه های : Java -6برای تغییر هر کدام از مشخصات زیر یکی از 3گزینه ( قابل اجرا ) Enable ،آماده Promptو ( غیر قابل اجرا ) را انتخاب کنید . • مشخصه Script Activexدر حقیقت امن بودن اسکریپت ها را چک می کند . • مشخصه بعدی امنیت اجرای کنترل های Activexو برنامه های Plug – ins چک می کند . • گزینه بعدی مربوط به گرفتن کنترل های Activexتایید شده توسط عالمت دیجیتالی است ()Signed • گزینه بعدی مربوط به گرفتن کنترل های Activexتائید نشده توسط عالمت های دیجیتالی است ()Unsigned • گزینه بعدی مربوط به مقدار دهی و اجرای کنترل های Activexاست که امنیت آنها تایید نشده است . • گزینه Okرا کلیک کنید . 36 pمpنیت : Activexو ا مطمئناً تا به حال درباره ویروس های کامپیوتری ( برنامه هایی که با آلوده کردن سیستم ها صدماتی به آنها می زنند ) چیزهایی شنیده اید .ویروس های مختلفی از انواع بی آزار تا بسیار مخرب وجود دارند و تالش های زیادی صورت می گیرد تا جلوی این آلودگی و انتشار ویروس ها گرفته شود . اما آیا این احتمال وجود ندارد که ویروسها ( یا دیگر نرم افزارهای مخرب ) از طریق اینترنت پراکنده شوند ؟ در روزهای اول وب این خطر چندان جدی نبود چون سندهای HTMLو فایلهای گرافیکی و تصویری تنها انواع فایل هایی بود که روی اینترنت جابجا می شد .این قبیل فایلها می توانستند خراب باشند اما در ضمن هیچ خطری برای سیستمی که آنها را بار می کرد نداشتند . اما با روی کار آمدن محتویات فعال اوضاع دگرگون شد ،چون در این حالت برنامه ها هم جزیی از وب شده بودند و یک برنامه هم قاعدتاً هر کاری می تواند انجام می دهد ( از پاک کردن فایل های کامپیوتری مقصد گرفته تا دزدیدن اطالعات آن و انتقال آنها به جاهای نامعلوم ) .در اینجا بود که شرکتهای تولید کننده ابزارهای برنامه نویسی وب به ضرورت تمهیدات امنیتی پی بردند .وقتی در وب گشت و گذار می کنید .مایلید مطمئن باشید کدهایی که بار می کنید سیستم تان را بهم نخواهند ریخت ! برای مقابله با این مشکل بالقوه دو روش اساسی ابداع شد . 37 تغییر دادن درجه امنیت برنامه های : Activex -1منوی Toolsرا کلیک کنید و سپس گزینه Internet Optionرا کلیک کنید . -2گزینه Securityرا در باالی پنجره کلیک کنید . -3بر روی گزینه مناسب کلیک کنید . -4آنگاه می توانید با باال بردن نشانه ،تدابیر امنیتی شدیدتری اتخاذ کنید و یا بالعکس با پایین آوردن نشانه درجه امنیت را پایین تر بیاورید و در اصطالح به Java Appletsاطمینان کنید . -5برای تغییر مشخصات حرفه ای تر می توانید گزینه Custom Levelرا کلیک کنید . -6برای تغییر هر کدام از مشخصات زیر یکی از 3گزینه ( قابل اجرا ) ، Enableآماده Promptو ( غیر قابل اجرا ) را انتخاب کنید . • مشخصه Script Activexدر حقیقت امن بودن اسکریپت ها را چک می کند . 38 تغییر دادن درجه امنیت برنامه های : Activex • مشخصه بعدی امنیت اجرای کنترل های Activexو برنامه های Plug – insچک می کند . • گزینه بعدی مربوط به گرفتن کنترل های Activexتایید شده توسط عالمت دیجیتالی است ()Signed • گزینه بعدی مربوط به گرفتن کنترل های Activexتائید نشده توسط عالمت های دیجیتالی است ()Unsigned • گزینه بعدی مربوط به مقدار دهی و اجرای کنترل های Activexاست که امنیت آنها تایید نشده است . • گزینه Okرا کلیک کنید . 39 pمpنیت : Activexو ا روش اول آن بود که اساساً اجازه اعمال بالقوه خطرناک به برنامه های وب داده نشود .این راهی بود که جاوا در پیش گرفت .اپلت های جاوا قادر به انجام افعال بالقوه مخرب ( مانند دسترسی به سیستم فایل ) نیستند و می توانید مطمئن باشید که آنها بی خطر هستند درست همانگونه که یک چاقوی پالستیکی بی خطر است !در روش دوم ،که میکروسافت برای عناصر Activexدر پیش گرفت ،به جای محدود کردن ذاتی برنامه ها از یک تکنولوژی بنام کد تعیین اpعتبار یا Authenticodeبرای تعیین صحت و سقم نرم افزارها استفاده می شود .ایده نهفته در این روش این است که اگر شما بدانید که یک عنصر ( Activexیا هر نرم افزار دیگری ) از کجا آمده ( خالق آن کیست ) و تغییری هم در آن صورت نگرفته ،دیگر می توانید با خیال راحت از آن استفاده کنید .به این روش امضای دیجیتالی یا Digital Signingهم گفته می شود . 40 امضاء دیجیتالی از دیدگاه کاربران : وقتی از یک کاوشگر با قابلیت Activexاستفاده می کنید در واقع سطوح امنیتی مختلفی را در اختیار دارید ،که می توانید از آنها بسته به نیازتان استفاده کنید .این سطوح عبارتند از :ضعیف ،متوسط ، شدید .برای انتخاب سطح امنیتی دلخواه در کاوشگر ، Internet Explorerآیتم Internet Optionsرا از مpنوی Viewاpنpتخابکppردpه pو سppپسبppه بppرگpه Securityبppروpید . در قppسمتپppاییندpیاpلوگمpیتppواpنpید سppایتهایهر مpنطقه را اpنpتخابکppردpه pو سppپسدر قppسمتپppاییندpیاpلوگ سطح امنیتی هر منطقه را تعیین کنید .سایتهای قابل اطمینان و شناخته شده را می توانید در منطقه مورد اعتماد ( ) Trustedقرار دهید .این منطقه دارای سطح امنیتی ضعیف است .سایتهای ناشناخته را در منطقه محدود ( )Restrictedکه سطح امنیتی باالیی دارد ،قرار دهید . سطوح امنیتی Internet Explorerعبارتند از : • شدید ( : ) Highبرنامه های بالقوه خطرناک هرگز بار نمی شوند .هر اقدامی برای بار کردن محتویات فعال به شما اطالع داده خواهد شد . • متوسط ( : ) Mediumهنگام بارکردن محتویات فعال به شما اخطار داده می شود ولی این امکان را خواهید داشت که ( بر اساس امضاء دیجیتالی ) آنرا بار کنید . • ضعیف ( : )Lowتمام محتویات فعال بدون هیچ اخطاری بار خواهند شد . 41 امضاء دیجیتالی از دیدگاه کاربران : • قابل تنظیم ( : )Customمی توانید برای هر نوع محتویات فعال سطح امنیتی مناسب ( هرگز بار نشود ،با دادن اخطار بار شود ،همیشه بار شود ) را تعیین کنید .توصیه می شود تا زمانیکه با تمام انواع محتویات موجود در وب آشنا نشده اید از این گزینه استفاده نکنید . روش کار این سیستم چنین است :وقتی به صفحه وبی می روید که می خواهد محتویات فعال خود را برای شما بفرستد ،کاوشگر ابتدا امضای دیجیتالی تمام آیتم های نرم افزاری آنرا چک می کند .اگر امضای دیجیتالی وجود نداشته باشد ،محتویات فقط در سطح امنیتی ضعیف اجازه بارشدن خواهند داشت .در غیر این صورت ،با توجه به اطالعات موجود در امضای دیجیتالی ،سالم بودن آیتم ها ( عدم تغییر در محتویات آنها ) بررسی می شود .ضرورت این کار از آنجا ناشی می شود که افراد شرور می توانند برای یک نرم افزار بی ضرر امضای دیجیتالی و تائیدیه بگیرند و سپس آنرا تغییر داده و بصورت خرابکار و خطرناک در آورند . در سطح امنیتی متوسط نام تولید کننده نرم افزار بایستی از منابع تایید شده از سوی شما مطابقت داده خواهد شد .اگر این نام در لیست مورد اعتماد شما نباشد ،دیالوگی موضوع را گوشزد کرده و اجازه بار کردن آنرا به شما خواهد داد .در همین دیالوگ می توانید تولید کننده مزبور را هم به لیست معتمدین خود اضافه کنید . 42 امضای دیجیتالی از دید برنامه نویسی : در یک امضای دیجیتالی سه دسته اطالعات وجود دارد :هویت تولید کننده نرم افزار ،هویت منبع تایید کننده ( سازمانی که امضاء را صادر کرده ) و یک عدد رمز برای تایید این مطلب که محتویات نرم افزار دستکاری نشده است . اگر می خواهید برای وب محتویات فعال بنویسید باید یک گواهینامه کد تعیین اعتبار برای خود دست و پا کنید تا بتوانید برای نرم افزار های خود امضای دیجیتالی بگیرید .اگر فقط برای اینترنت برنامه می نویسید نیازی به این مراحل ندارید چون سطح امنیتی در آنها معموال پایین است و نیازی به امضای دیجیتالی وجود ندارد . اگر صرفاً برای شرکت خود نرم افزار می نویسید می توانید از گواهینامه آن استفاده کنید .اما توصیه می شود خودتان هم این گواهینامه را بگیرید .با آن که شرکتهای متعددی برای صدور گواهینامه کد تعیین اعتبار وجود دارند ،میکروسافت شرکت Verisignرا توصیه می کند .برای کسب اطالعات بیشتر می توانید به سایت وب این شرکت که در زیر آمده است مراجعه کنید : ‏http://www.verisign.com/developers/index.html هزینه دریافت این گواهینامه 20دالر در سال و مراحل انجام آن بسیار ساده است : .1در سایت مزبور ،یک فرم پر کنید و در آن اطالعات خواسته شده ( از جمله اطالعات 43 امضای دیجیتالی از دید برنامه نویسی : مربوط به کارت اعتباری ) را وارد کنید . .2شرکت Verisignکد شناسایی شما را با پست الکترونیک برایتان ارسال خواهد کرد . .3به صفحه نصب گواهینامه رفته و کد شناسایی خود را وارد کنید .این کار باید در همان کامپیوتری که توسط آن کد شناسایی را گرفته اید ،انجام شود .4 .گواهینامه به کامپیوتر شما فرستاده خواهد شد . هنگام ثبت گواهینامه دو گزینه در اختیار دارید :ذخیره کردن آن در یک فایل یا در رجیستری ویندوز . توصیه می شود گواهینامه خود را در یک فایل و روی دیسک ذخیره کنید تا بتوانید آن را از گزند نامحرمان حفظ کنید .در حقیقت ،دو فایل به کامپیوتر شما فرستاده می شود :یکی حاوی خود گواهینامه ( با پسوند ) SPCو دیگری حاوی کلید رمزبندی ( با پسوند ) . PVK 44 نرم افزارهای مورد نیاز برای امضای دیجیتالی : بعد از دریافت کد تعیین اعتبار و کلید رمز بندی ،آماده اید تا امضای خود را به نرم افزارهایی که نوشته اید اضافه کنید .این برنامه ها جزیی از کیت توسعه نرم افزاpر Activexهستند و می توانید آنها را مجانی از سایت میکروسافت بردارید .فایل هایی که نیاز دارید از این قرارند : • : Make Certیک گواهینامه X.509برای تست می سازد . • : Cert2 SPCیک گواهینامه توزیع نرم افزار آزمایشی می سازد . • : Sing Codeیک فایل محتویات فعال را امضا می کند . • : Chk Trustاعتبار فایل را بررسی می کند ( مشابه همان کاری که کاوشگر می کند ) • : Make CTLلیستی از گواهینامه های قابل اعتماد می سازد . • : Cert Mgrبرنامه مدیریت گواهینامه ها ،لیست های گواهینامه های قابل اعتماد و باطل شده . • : Set Regبرنامه ثبت گواهینامه در رجیستری . باید توجه داشت که تمام این ابزارها برنامه های DOSهستند و باید پنجره MS-DOSاجرا شوند .برای باز کردن نرم افزارهای فوق می توانید به آدرس زیر مراجعه کنید : ‏http://www.msdn.microsoft.com/ 45 جاوا چیست ؟ جاوا یک زبان برنامه نویسی است که در اوایل دهه 90توسط ، Java Softبخش نرم افزاری شرکت Sunتوسعه داده شد .هدف آن بود که جاوا زبانی ساده ،قوی و همه منظوره باشد .جاوا تمام جنبه های مثبت Cو C++را در خود دارد ،و آن چیزهایی که برنامه نویسان C++از آن نفرت داشته اند ( مانند وراثت چند گانه ،تحریف اپراتورها و اشاره گرها ) را به کناری گذاشته است . مهمترین ویژگیهای جاوا این است که اساساً شیء گرا است .اولین ادعای OOPتوانایی استفاده مجدد از کد است :چیزی که C++با تمام ادعاهایش هرگز نتوانست بدان دست یابد .اما در اولین قدم خواهید دید جاوا در این زمینه تا چه حد اندازه صحت دارد .تصورش را بکنید که با صرف کمی وقت بتوانید برنامه ای بنویسید که در سیستم های ویندوز ،یونیکس و مکینتاش براحتی اجرا شود .همین که یک شرکت نرم افزاری بتواند برای تمام پالتفرم های موجود در آن واحد پروژه ای را تولید کند ( و مقادیر عظیمی پول صرفه جویی کند ) خود می تواند بهترین دلیل اقبال جاوا باشد و امروز دیگر همه ( و نه فقط شرکتهای نرم افزاری ) به سمت جاوا کشیده شده اند .با این ویژگی ( استقالل از پالتفرم ) یک برنامه نویس می تواند برای سیستمی برنامه بنویسد که هرگز با آن کار نکرده است .این ویژگی اصلی ترین علت توفیق جاوا در اینترنت است .اینترنت شبکه پیچیده ای است از میلیونها کامپیوتر مختلف 46 جاوا چیست ؟ در سراسر دنیا ،و مقاومت در مقابل این وسوسه که بتواند برنامه ای بنویسد که روی تمام این سیستم های متفاوت و نا متجانس اجرا شود چندان ساده نیست . جاوا یک زبان بسیار ساده است چون شما را وادار نمی کند تا در محیط جدید ( و نا آشنایی ) کار کنید و این برای کسانی که اطالعات فنی ناچیزی درباره کامپیوتر دارند بسیار مهم است .ساختار زبان جاوا در نگاه اول بسیار شبیه Cو C++است و این به هیچ وجه تصادفی نیست C .زبانی است ساخت یافته و C++زبانیست شیء گرا و مهمتر از همه قسمت اعظم برنامه نویسان دنیا از آنها استفاده می کنند از سوی دیگر این شباهت حرکت به طرف جاوا را برای این قبیل افراد ساده خواهد کرد بنابراین طراحان جاوا برای اجتناب از دوباره کاری از زبانهای Cو C++بعنوان مدل استفاده کردند . جاوا با دور انداختن اشاره گرها و بر دوش کشیدن بار مدیریت حافظه ،برنامه نویسان Cو C++را برای همیشه از این کابوس ها رهایی بخشیده است .عاله بر آن چون جاوا زبانی برای اینترنت است ،از ایمنی و حفاظت ذاتی باالیی برخوردار است .طراحان جاوا از ابتدا یک محیط برنامه نویسی امن را مد نظر داشته اند .مسئله حفاظت سیستم ها رابطه تنگاتنگی با اشاره گرها دارد .اکثر مهاجمان برای ورود غیر قانونی به سیستم های دیگران از این اشاره گرها استفاده می کنند و جاوا با حذف اشاره گرها این راه را سد کرده است .جاوا مکانیزم های حفاظتی دیگری هم دارد که در جای خود به آنها اشاره خواهیم کرد . 47 تکامل جاوا : جاوا هم مانند اکثر اختراعات مهم حاصل تالش گروهی دانشمندان پیشتاز است .اما نکته جالب درباره جاوا آن است که جاوا از ویرانه های یک پروژه شکست خورده سر بر می آورد . اگر پروژه گرین ( )Greenکه شرکت Sunدر سال 1991آن را شروع کرد به موفقیت می انجامید امروز نه سان دیگر یک شرکت کامپیوتری می بود و نه جاوا در سال ، 1991 شرکت Sun Microsystemsدر آغاز راه تبدیل شدن به بزرگترین تولید کننده ایستگاههای کاری Unixبود و در طول فقط پنج سال درآمدش را از 210میلیون دالر به 5/2میلیارد دالر رسانده بود و به نظر می رسد هیچ چیز نمی تواند جلودار آن باشد .عامل عمده موفقیت Sunکارهای پیشتازانه در ایجاد شبکه های باز بود و در این زمینه هیچ کس به پای آن نمی رسید . مدیران Sunبه این فکر افتادند تا کاری کنند که این رشد برای مدتی طوالنی ادامه یابد یکی از زمینه های مورد عالقه Sunبازار لوازم الکترونیکی بود ،پروژه Greenبوجود آمد تا برای این بازار نرم افزاری پیشرفته خلق کند . مهندسان Sunتوجه خود را به میکروپروسسورهایی معطوف کردند تا دارای قابلیت استفاده در این گونه سیستم ها باشند .اگر پروژه Greenمی خواست موفق باشد باید کاری می کرد تا سیستم مزبور بتواند به راحتی به بسترهای سخت افزاری مختلف منتقل شود برای این منظور ابتدا از 48 تکامل جاوا : کامپایلر ++Cاستفاده شد ولی بزودی نارسایی های ++Cدر این زمینه خود را نشان دادند .مهندسان Sunخیلی سریع دریافتند که برای ادامه کار باید چیزی جدید و قوی خلق کنند .در همین زمان بود که James Goslingکار بر روی زبان جدید اوک Oakرا شروع کرد تقدیر آن بود که این زبان جاوا نامیده شود ،چون اداره ثبت نام های تجاری Oakرا رد کرد . بتدریج مهندسین یک دستگاه شبه PAD- Personal Digital Assistantساختند که در آن از سیستم عامل ،زبان برنامه نویسی و واسط کاربر جاوا استفاده شده بود و با وجود ابتدایی بودن توانست توجه مدیران Sunرا به خود جلب کند . بعدها گروهی که در پروژه Greenکار کرده بودند شرکت Java Softرا بنیان نهادند . شکل زیر پایگاه وب این شرکت را نشان می دهد : 49 تکامل جاوا : 50 تکامل جاوا : برای رفتن به این پایگاه اینترنتی می بایست به آدرس زیر مراجعه کنید : ‏http://www.sun.com/ متاسفانه بخت با پروژه Greenیار نبود و بعد از چند شکست متوالی Sunآن را کنار گذاشت . در همین زمان بود که عده ای از محققان NCSAشرکت Net Scapeرا تاسیس کردند و این اتفاقات با آتشی که به سرعت دنیا را در می نوردید و شبکه تار عنکبوتی جهانی WWW (که مخفف World Width Webمی باشد) نام داشت همزمان شد . بنابراین اتفاقی نبود که مهندسان پروژه Greenبه سمت اینترنت و وب به عنوان بستر پروژه Sun روانه شوند و بعد از آن دیگر جزء تاریخ است . چهار سال بعد پروژه Greenبه بار نشست و جاوا تبدیل به داغترین موضوع اینترنت شد ، همه از برنامه نویسان و طراحان صفحات وب گرفته تا کاربران اینترنت می خواهند از جاوا استفاده کنند . ‏pنpستپpلتهای ‏pینوpلpینکppاوpشpگریبppود کppه مpیتppوا اp Sunبppالفاصpله بppراpیجpاوا یککppاوpشpگر هpم تppولpید کppرد .ا ا جاوا را اجرا کند و نام آن هم Hot Javaبود . 51 ویژگیهای زبان برنامه نویسی : Java جاوا ویژگیهای متعددی دارد که آن را منحصربه فرد کرده است .جاوا هم کامپایلر دارد و اینترپرتر . توضیح ( :کامپایلر برنامه ای است که متن برنامه را گرفته و در پایان یک فایل exeتولید می کند . بعد از کامپایل شدن یک برنامه ،دیگر به وجود کامپایلر نیازی نیست و می توان برنامه exeرا روی هر کامپیوتر سازگاری اجرا کرد .اما اینترپرتر هیچ برنامه exeای تولید نمی کند و برنامه را خط به خط اجرا می کند ،برای اجرای برنامه حتما باید اینترپرتر هم روی کامپیوتر مورد نظر موجود باشد ) . هر کامپایلر فقط برای یک سیستم خاص ( مانند اینتل ،اپل یا آلفا ) می تواند کد اجرایی تولید کند اما کامپایلر جاوا کد اجرایی Exeتولید نمی کند و در عوض یک فایل بینابینی می سازد که بایت کد Byte codeنام دارد و بایت کد چیزی شبیه زبان اسمبلی است ،اما این زبان مختص هیچ پروسسور خاصی نیست بلکه زبان اسمبلی یک ماشین ویژه بنام ماشین مجازی جاوا ( )Java Virtual Mashingدارد که روی ماشین مجازی جاوا اجرا می شود ،دستورات فایل بایت کد را به دستورات قابل فهم برای پروسسوری که روی آن اجرا می شود تبدیل خواهد کرد . 52 ویژگیهای زبان برنامه نویسی : Java برنامه های کاربردی جاوا اشیاء جاوا ماشین مجازی جاوا یونیکس ویندوز Os2مpکینتاش سیستم عامل 53 ویژگیهای زبان برنامه نویسی : Java اما شاید از خود سئوال کنید که چرا جاوا این همه کار را بر خود ( و دیگران ) سخت گرفته است ؟ این همه الیه و ماشین مجازی برای چیست ؟ یکی از ادعاهای جاوا ،آزاد بودن از بستر سخت افزاری است اما این یعنی چه ؟ اگر جاوا بخواهد در اینترنت موفق باشد برنامه های آن باید بتوانند بدون هیچ اشکالی روی تمام کامپیوترهای متصل به اینترنت اجرا شوند .اما شما بهتر می دانید که اینترنت شبکه عظیمی است از کامپیوترهای نامتجانس ،از سوپر کامپیوترهای عظیم گرفته تا PCهای مبتنی بر پروسسور های اینتل و پاور پی سی تا ماشین های یونیکس مبتنی بر پروسسورهای آلفا و ! ... چگونه یک برنامه اجرایی می تواند روی این طیف وسیع کامپیوترها اجرا شود ؟ ایده اولیه ساده است :برنامه ها برای ماشین مجازی کامپایل شوند و این ماشین مجازی روی تمام کامپیوترهای متصل به اینترنت نصب شود . این دقیقاً همان روشی است که جاوا در پیش گرفته است .برنامه تان را با یک کامپایلر جاوا کامپایل کنید ، آن را در پایگاه وب خود قرار دهید و به دیگران اطالع دهید تا با یک کاوشگر مجهز به جاوا ( ) Java – Enabled Browerاین برنامه را که ممکن است در دل یک صفحه وب قرار داشته باشد اجرا کنند . شاید هرگز تصور نمی کردید که برنامه ای را که با یک PCاینتل نوشته اید روی یک ماشین مکینتاش 54 ویژگیهای زبان برنامه نویسی : Java یا یونیکس اجرا شود ولی اکنون به لطف جاوا این دیگر آرزویی دست نیافتنی نیست . شیء گرایی در جاوا به غایت خود رسیده است .جاوا در استفاده از اشیاء بسیار مفید و سخت گیر است و تخطی از اصول را نمی پذیرد .در ++Cشما می توانید از اشیاء به موازات برنامه نویسی به سبک قدیم استفاده کنید و اکثرا ً در پایان کار چنان ملغمه ای بوجود می آید که مدیریت آن با روش های برنامه نویسی شی ء گرا امکان دارد نه با روش های قدیمی .جاوا دیگر به شما اجازه نمی دهد تا خود را در چنین مخمصه ای گرفتار کنید ! 55 ایجاد یک اپلت جاوا : ایجاد اپلت با ایجاد برنامه فرق دارد و قواعد متفاوتی بر آن حمکفرماست .یک اپلت برای اجرا در صفحات وب نوشته می شود ،بنابراین کمی پیچیده تر از یک برنامه است .در واقع یک اپلت تا زمانی که در یک کاوشگر اجرا نشود خروجی خود را نمایش نخواهد داد . باید سعی شود برنامه ها ،اپلت ها و صفحات وب را در دایرکتوریهای جداگانه ذخیره کرد .اپلتی که در این قسمت می نویسیم Hello World Appletنام دارد .به لیست زیر نگاه کنید : 56 ایجاد یک اپلت جاوا : اپلت را با نام HelloWorldApplet. Javaذخیره کنید .در مورد یک اپلت باید به چند نکته توجه کنید : دستور importدر خط 1شبیه دستور include#در زبان Cاست با این دستور اپلت می تواند از کالسهای JDKبرای کارهای گرافیکی استفاده کند . متد ) ( Paintبرای نمایش محتویات اپلت است در این جا عبارت ! Hello Worldروی صفحه نمایش داده خواهد شد اپلت ها متد ) (mainندارند و به جای آن از متدهای ) (initو ) (Startیا Paint ( ) استفاده می کنند . برای کامپایل کردن این اپلت چنین باید کرد java Hello World Applet. javaدر این حالت هم کامپایلر یک فایل کالس به نام Hello World Applet. Classایجاد خواهد کرد اما برای اجرای یک اپلت یک قدم دیگر هم باید برداشت و آن ایجاد یک فایل HTMLاست که اپلت در آن اجرا خواهد شد می توانید یک فایل HTMLرا برای این منظور مشاهده کنید . 57 یک HTMLبرای اجرای اپلت : Hello World 58 یک HTMLبرای اجرای اپلت : Hello World تحلیل برنامه : برای اجرای یک اپلت در فایل HTMLباید از برچسب < > appletاستفاده کرد برای مشخص کردن نام کالسی که اپلت در آن است از صفت CODEاستفاده کنید .برای مشخص کردن ابعاد پنجره ای که اپلت در آن اجرا خواهد شد از صفت های Widthو Heightاستفاده کنید .اعداد مشخص شده بر حسب پیکسل هستند این فایل را با نام HelloWorldApplet.htmlذخیره کنید حاال آماده اید تا اپلت را اجرا کنید این کار به دو روش امکانپذیر است : -1استفاده از کاوشگرهای مجهز به جاوا مانند Net Scape -2استفاده از برنامه Applet Viewerکه با JDKمی آید .این برنامه کل صفحه وب را نمی تواند نمایش دهد و فقط اپلت را نمایش خواهد داد . برای دیدن اپلت در یک کاوشگر ،فایل htmlفوق را باز کنید ،با این کار صفحه وب و اپلت درون آن به نمایش در خواهد آمد .روش استفاده از applet viewerچنین است . 59 یک HTMLبرای اجرای اپلت : Hello World نکته :با وجود اینکه می توان برنامه applet viewerرا از محل فایل htmlاجرا کرد ولی در این حالت بدون بستن آن نمی توان اپلت را مجددا ً بار کرد .در حالیکه اگر مشاهده گر اپلت از محل دیگری اجراp شود ( مانند دستور فوق) می توان یک اپلت را تغییر داده ،مجددا ً کامپایل کرده و سپس دوباره در مشاهده گر بار کرد . بطور کلی جpاوا یک زبان برنامه نویسی است که با آن می توان برنامه های متنوعی نوشت بیشترین کاربرد جاوا در اینجا اپلتهایی است که در کاوشگرهای وب قابل مشاهده هستند . اپلتها برنامه هایی هستند که جزیی از صفحات وب محسوب می شوند .تقریباً هر کاری با اpپلت ها امکانپذیر است . قدرت جاوا در سادگی و استقالل از آن بستر سخت افزاری ( چه در فایل منبع برنامه و چه در کد باینری آن ) اpست .با جاوا می تواpن برنامه هایی هم نوشت که بدون کاوشگرهای وب قابل اجرا باشند .اپلت های جاوا را فقط در فایلهای HTMLمی توان مورد استفاده قرار داد . 60 برنامه نویسی شی ء گرا و جاوا : ( )Object Oriented Programming – OOPیکی از بزرگترین ایده های برنامه نویسی در دو دهه اخیر است که نیاز به تسلط کامل دارد . مفاهیم برنامه نویسی شی ء گرا : برنامه نویسی شی ء گرا قصد دارد مدلی از دنیای واقعی را وارد برنامه نویسی کامپیوتر کند دنیای اطراف ما از اشیاء ساخته شده است . اشیاء ( )Objectsو کالسها (: )Classes شیی ء کلیدی ترین مفهوم برنامه نویسی شی گرا است هر شی ء یک حالت و رفتار دارد و برنامه عبارت است از بر هم کنش بین اشیاء .حالت یک شی ء عبارت است از متغییرهای عناصر داده ای شییء و مقدار آنها .رفتار یک شی ء را متدهای آن تعیین می کند .شیء در واقع مقداری کد است که کار خاصیتی انجام می دهد . هر شیء کپسولی است از مقداری متغییر و کد که کار نگهداری و به روز در آوردن آنها را ساده می کند .معمو ًال درون یک شیء از دسترس دنیای خارج به دور است و برای کار با آن باید از ارسال پیام استفاده کرد .مزیتش آن است که کاربر برای کار با آن هیچ نیازی به دانستن مکانیزم های درونی آن 61 برنامه نویسی شی ء گرا و جاوا : ندارد و فقط باید ساختار پیام ها را بداند .معموالً ساختار پیام ها در اpشیاء مختلف یکسان است .در دنیای واقعی هم وضع به همین منوال است مث ً ال برای استفاده اpز یک تلویزیون شما هیچ نیازی به آشنایی با پیچیدگیهای درون آن ندارید فقط کافی است بدانید که باید آن را به برق زده و روشن کنید و یک کانال را انتخاب کنید .کالس در واpقع الگویی است برای ایجاد شیء .در واسط برنامه نویسی جاوا (java )APIچندین کالس مختلف وجود دارد . چندین کالس با هم یک کتابخانه کالس Class Libraryمی سازند . برنامه نویسی جاوا اصوالً چیزی نیست جز طراحی و پیاده سازی کالس ها . 62 برنامه نویسی شیء گرا در جاوا : برنامه نویسی شیء ( )OOPیکی از بزرگترین ایده های برنامه نویسی در دو دهه اخیر است ،اما تسلط کامل بر این ایده به سالها زمان و ممارست نیاز دارد .برنامه نویسی شیء در واقع پیوند دنیای واpقعی با برنامه نویسی کامپیوتر است .در اینجا با مفاهیم برنامه نویسی شیء گرا در جاوا ،و ارتباط این مفاهیم با ساختار برنامه ها آشنا می شویم : • شیء و کالس چیست و رابطه آنها چگونه است . • یک شیء یا کالس دو جزء مهم دارد :رفتار و حالت . • وراثت و نقش آن در طراحی برنامه ها . • بسته ها و واسط ها در جاوا . 63 ایجاد یک کالس : در این قسمpت یک مثال عملی خواهیم آورد .در این مثال یک موتور سیکلت را شبیه سازی می کنیم . یک موتور سیکلت واpقعی دارای حالت و رفتار خpاص خود است .حpالت موتور سیکلت در واقع همان خواص آن ( مانند رنگ ،مدل ،نوع و ) ...است .مجموع این خواص یک موتور سیکلت خاص را مشخص خواهند کرد که از موتور سیکلت های دیگر قابل تمیز است .هر شیء وهله ایست از یک کالس .کالس موجودی قابل لمس نیست ،در حالیکه شیء موجودی است قابل لمس که به کالس خود موجودیت داده است . مث ً ال ،انسان یک کالس است در حالیکه شما نمpونه ای هستید از کالس انسان ،شما موجودیت دارید در حالیکه چیزی بنام انسان وجود خارجpی ندارد ،بلکه در اشیاء خاص ( من ،شما ،دیگران ) موجودیت می یابد . موتور سیکلت ما دارای رفتارهایی هم هست ،رفتارهایی مانند روشن شدن ،خاموش شدن ،تعویض دنده ،سرعت گرفتن ،ترمز کردن و غیره .ادیتور خود را اجرا کنید و کالس موتور سیکلت را مانند ذیل تعریف کنید : 64 ایجاد یک کالس : البته این کالس هنوز کار چندانی انجام نمی دهد ( در واقع هیچ کاری انجام نمی دهد !) اجازه دهید کارمان را با تعریف چند متغییر حالت ادامه دهیم ،این تعریف ها را بعد از { واpرد کنید : 65 ایجاد یک کالس : نکته : بر خالف ، Cمتغییرهای Booleanفقط مقادیر Trueیا Falseمی گیرند و نمی توانند عدد بگیرند . حال چند رفتار (متد ) به این کالس اضافه می کنیم . گفتیم که یک موتور سیکلت می تواند رفتارهای متعددی داشته باشد ولی ما در اینجا برای سادگی کار فقط متد روشن شدن موتور را pپیاده سازی خواهیم کرد . کد ذیل را بعد از تعریف متغییرهای حالت اضافه کنید : 66 ایجاد یک کالس : 67 ایجاد یک کالس : این متد ابتدا تست می کند که آیا موتور روشن است ( ، )engineState= =Trueاگر چنین باشد فقط با پیامی این موضوع را گوشزد می کند .اگر موتور روشن نباشد ،آن را روشن کرده و پیام می دهد که کارش را به پایان رسانده است . کالس را با نام Motorcycle.javaذخیره کنید .این کالس تا اینجا باید چنین باشد : 68 ایجاد یک کالس : 69 ایجاد یک کالس : قبل از کامپایل کردن این کالس ،اجازه دهید یک متد دیگر به آن اضافه کنیم .این متد ShowArts ،مقدار فعلی متغییرهای حالت یک وهله خاص از این کالس را نمایش خواهند داد .این متد چنین است : 70 ایجاد یک کالس : این متد دو خط اطالعات روی صفحه نمایش خواهد داد . خط اول رنگ و نوع موتور سیکلت ،و خط دوم حالت موتور آن را نمایش می دهد . فایل را ذخیره کرده و سپس آن را با javacکامپایل کنید : ‏Javac Motorcycle.java اگر سعی شود این کالس را با اpینترپرتر جاوا اجرا کنید ،با خطا مواجه خواهید شد چون اینترپرتر دنبال متدی بنام )(mainمی گردد و چون آن را نمی یابد پیام خطای ذیل را نمایش خواهد داد : ‏In class Motorcycle:void mail (string args[])is not defined برای آنکه این کالس را عملیاتی کنیم باید یک برنامه جاوا بنویسیم و در آن از این کالس استفاده کنیم . اpما روش ساده تر آن است که به این کالس یک متد )(mainاضافه کنیم .لیست زیر این متد را نشان می دهد . 71 ایجاد یک کالس : 72 ایجاد یک کالس : با اpضافه کردن اpین متد ،کالس Motorcycleاکنون یک برنامه است و می توان آنرا کامپایل و اجرا کرد .خروجی برنامه شبیه ذیل خواهد بود : 73 تحلیل برنامه : چیزهایی که در متد () mainمی بینید خط 1تعریف متد )(mainاست و شما آن را همواره به همین شکل خواهید دید .در خط 2یک شیء از کالس Motorcycleبنام mتعریف شده است . توجه کنید که با کالس ها به طور منظم کاری صورت نمی گیرد بلکه یک وهله از آنها ( یک شیء ) مورد استفاده قرار می گیرد .در خطهای 3و 4متغییرهای حالت این شییء ست می شوند : Yamaha RZ350و رنگ زرد .در خط های 5و 6متد )(ShowArtsفراخوانی می شود ( در حقیقت فقط خط 6فراخوانی این متد اpست و خط 5فقط پیامی است مبنی بر فراخواpن آن ) . این متد نوع ،رنگ و روشن یا خاموش بودن شییء موتور سیکلت را نمایش خواpهد داد .توجه کنید که در ابتدا موتور خاموش است . خط 7یک خط رسم می کند که قسمتهای مختلف خروجی را از هم جدا می کند و فقط برای شکیل تر شدن برنامه است .در خط 9با فراخوانی متد startEngineموتور روشن می شود .خط 12دوباره متد )(showArtsرا فراخوانی کرده و مقدار متغییرهای حالت را نمایش می دهد .در این لحظه موتور روشن است . خط 15سعی می کند که موتور را دوباره روشن کند ،ولی موتور قب ً ال روشن شده است و پیام داده شده هم موید همین مطلب است . 74 وراثت :Inheritance وراثت یکی از کلیدی ترین مفاهیم برنامه نویسی شیء گراست و تاثیر مستقیمی روی نحوه طراحی و نوشتن کالس های جاوا دارد .وراثت مکانیزمی اpست برای تغییر شکل داpدن به کالس ها و استفاده مجدد از آنها ،با مکانیزم وراثت می توان به طور خودکار از اطالعات کالس های دیگر استفاده کرد . اصطالح جدید ( وراثت تمام کالسها را pدر یک سلسله مراتب گرد آورده و مرتب می کند ).به شکل زیر نگاه کنید . 75 وراثت :Inheritance هر کالس یک فوق کالس ( ، )Super classو یک یا چند زیر کالس ( )Sub Classدارد . هر کالس pاز کالسهای باالتر خود در این سلسله مراتب ارث می برد و به کالس پایین تر از خود ارث می دهد .هر زیر کالس تمام متدها و متغییرهای فوق کالس خود را به ارث می برد و دیگر نیازی به تعریف مجدد آنها وجpود ندارد . باالترین کالس در سلسله مراتب کالس های جاوا کالس Objectاست و تمام کالسهای دیگر از این کالس مشتق می شوند .این کالس تعیین کننده کلی ترین متدها و خواص تمام کالس های ذیل خود اpست .معمpوالً کالس ها ضمن ارث بردن از کالسهای باالتر از خود ،چیزهایی را به آن اضافه و پیاده سازی می کنند . 76 ایجاد سلسله مراتب کالس : وقتی تعداد کالس ها زیاد است ،منطقی است که آنها را در یک سلسله مراتب گرد آوریم تا بتوانیم نحوه به ارث رسیدن متدها و خواص را بهتر کنترل کنیم .بدین ترتیب نیاز به دوباره نویسی کدها به حداقل رسیده و هنگام نیاز به تغییر کدها نیز اصالحات فقط در یک نقطه انجام خواهد شد و از آنجا به تمام نقاط دیگر دسترسی خواهند یافت . اجازه دهید با استفاده از مثال Motorcycleموضوع را روشنتر کنیم .دیدید که کالس Motorcycleچگونه طراحی شد ( و بخوبی کار کرد ) .حال فرض کنید بخواهیم کالس جدیدی بنام ( Carاتومبیل ) بسازیم .موتور سیکلت و اتومبیل شباهتهای زیادی با هم دارند .در نظر اول بنظر می رسد که بهتر است کالس Motorcycleرا باز کنیم و اطالعات درون آن را به داخل کالس جدیدی بنام Carکپی کنیم .اما ایده بهتری هم وجود دارد و آن انتقال اطالعات مشترک این دو کالس به یک کالس کلی تر است .با اینکه این روش کار بیشتری می طلبد ولی توسعه آن و ایجاد کالسهای جدیدتر ( مانند دوچرخه ،کامیون و غیره ) را ساده تر خواهد کرد . اجازه دهید با شروع از باالترین کالس جاوا در سلسله مراتب کالس ها ،یعنی کالس ، Objectیک سلسله مراتب جدید بسازیم .کلی ترین کالسی که می تواند این دو وسیله نقلیه را در خود جای دهد را کالس Vehicleمی نامیم .یک وسیله نقلیه ( )Vehicleچیزی است که می تواند فردی را از 77 ایجاد سلسله مراتب کالس : نقطه ای به نقطه دیگر منتقل کند .در کالس Vehicleفقط رفتار انتقال از نقطه aبه نقطه bرا تعریف خواهیم کرد و نه هیچ چیز بیشتر . در ذیل کالس Vehicleچه چیزی باید قرار دهیم ؟ مث ً ال ماشین متحرک با نیروی انسانی و ماشین متحرک با موتور چطور است ؟ ماشین متحرک با نیروی انسان مث ً ال می تواند پدال داشته باشد ( و یا هر مکانیزمی برای انتقال حرکت انسان به ماشین ) .ماشین متحرک با موتور هم ( به احتمال زیاد! ) یک موتور دارد ،به سوخت نیاز دارد و به وسیله ای برای تنظیم سرعت .در ذیل کالس Engine Powered Vehicleمی توانیم چند کالس مثل Car ، Motorcycleو Truckقرار دهیم .ولی می توانیم با ایجاد یک کالس بینایی باز هم رفتارها را تقسیم بندی کنیم . باالخره کالس Motorcycleرا در ذیل کالس ( Two Wheeledدو چرخ ) قرار داده ایم .اما شاید بپرسید که خواصی مثل رنگ و نوع را کجا باید قرار داد ؟ می توان این خواص را در کالس Vehicleقرار داد تا تمام زیر کالسها آنها را به ارث ببرند .تنها چیزی که باید به خاطر داشته باشید این است که وقتی یک حالت ( خاصیت ) یا رفتار را تعریف کردید ،دیگر به طور خودکار در سلسله مراتب به تمام زیر کالسها انتقال خواهد یافت ( به ارث خواهد رسید ). 78 ایجاد سلسله مراتب کالس : وسایل نقلیه دوچرخ و چهار چرخ 79 وراثت چگونه عمل می کند p: وراثت چگونه عمل می کند ؟ چگونه یک شیء متغییرها و متدهای کالس باالتر را به طور خودکار بدست می آورد ؟ در مورد متغییرها ،وقتی شییء بوجود می آید یک مسیر دسترسی به تمام متغییرهای کالس مربوطه را بدست می آورد .در مورد متدها هم وضع به همین منوال است و تعریف یک متد در اختیار تمpام زیر کالسها قرار خواهند گرفت .وقتی در یک شیء متدی فراخوانی می شود ،جاوا ابتدا در همان کالسی که متد تعریف شده به دنبال کد آن می گردد .اگر کد آن را نیافت ،در سلسله مراpتب یک پله باالتر رفته و در فوق کالس بدنبال آن خواهد گشت تا زمانیکه کد متد را بیابند .به شکل زیر نگاه کنید . 80 وراثت چگونه عمل می کند p: نحوه تعیین محل متدها وقتی در یک زیر کالس متدی با نام مشابه متدی در یک کالس pباالتر تعریف شود، کارها کمی پیچیده خواهد شد .در این حالت متدی که زودتر ( در حرکت از پایین ) یافت شود اجرا خواهد شد .بدین ترتیب متد تعریف شده در زیر کالس متد فوق کالس را مخفی می کند .به این وضعیت تحریف ( )Overrideمتد گفته می شود . شکل زیر را ببینید . 81 وراثت چگونه عمل می کند p: تحریف متدها : اصطالح جدید : به تعریف یک متد با نام مشابه متدی در یک فوق کالس ،تحریف می شود .متد زیر کالس متد فوق کالس را مخفی می کند . 82 وراثت منفرد و چند گانه : جاوا به گونه ای که دیدید از وراثت منفرد Singleاستفاده می کند .وراثت منفرد یعنی هر کالس جاوا می تواند فقط یک فوق کالس داشته باشد .اما عکس آن درست نیست ،یعنی یک کالس می تواند چندین زیر کالس pداشته باشد . در زبانهای شیء گراpی دیگر ،مانند ، ++Cیک کالس می تواند از چند فوق کالس به ارث ببرد .به این وضعیت وراثت چند گانه ( )Multipleگفته می شود .با وراثت چند گانه می توان کالس های فوق العاده جالبی بوجود آورد ،ولی کد نویسی آنها بسیار دشوار است . 83 واسط ها Interfaces-و بسته ها –::Packages دیدید که در جاوا هر کالس فقط از یک فوق کالس ارث می برد .با اینکه وراثت منفرد برنامه نویسی را ساده تر می کند ولی کمی محدودتر هم هست .مث ً ال ،اگر در شاخpه های مختلف یک سلسله مراتب متدهای مشابهی داشته باشید ،باید تمام آنها را جداگانه پیاده سازی کنید .جاوا با استفاده از مفهومی بنام واسط مشکل به اشتراک گذاشتن متدها را حpل کرده است . توضیح : واسط عبارت است از مجموعه ی نام چند متد ،بدون تعریف آنها ،که واسط آنها در اختیار کالس استفاده کننده می گذارد . یک کالس جاوا می تواند در آن واحد از چندین واسط استفاده کند ،و با این کار کالس های بسیار متفاوت می توانند رفتارهای مشابهی داشته باشند . در جاوا کالس و واسط های مرتبط با هم در یک بسته گرد آورده می شوند .کالس های اصلی جاوا در بسته ای بنام javaگرد آورده شده اند و فقط محتویات این بسته است که در تمpام نسخه های جاوا ثابت می ماند . البته در بسته Javaبسته های دیگری وجود دارند ولی بسته Java.langبه طور پیش فرض در اختیار تمام برنامه هاست .برای استفاده از بسته های دیگر باید آنها را به طور صریح تعریف کرد . 84 واسط ها Interfaces-و بسته ها –::Packages نام بسته ها و کالس ها در هنگام تعریف با نقطه ( ).از هم جدا می شوند .مث ً ال برای استفاده از کالس Colorکه در بسته ( awtکه خود در داخل بسته Javaمی باشد ) قرار دارد ،باید چنین نوشت : .java.awt.Color 85 ایجاد یک زیر کالس : چگونه می تواpن یک زیر کالس ساخت و چند متد را در آن تحریف کرد .در این مثال با بسته ها هم بیشتر آشنا خواهید شد . فرض کنید می خواهید یک اپلت بوجود آورید .تمام اپلت ها در جاوا زیر کالس pکالسی بنام Applet هستند ( که در بسته java.appletقرار دارد ) .با ایجاد یک زیر کالس از کالس Appletمی توانیم تمpام رفتارهای آن ( از قبیل کار با پنجره ها ،ارتباط با سیستم و پاسخ به رویدادهای Keyboardو Mouseرا به ارث ببریم .در این مثال یک اپلت شبیه اپلت Hello Worldخواهیم ساخت که این عبارات را با رنگ و انداpزه دیگری نمایش خواهد داد .ابتدا یک کالس تعریف می کنیم : 86 ایجاد یک زیر کالس : در اینجا کالسی بنام HelloAgainAppletتعریف شده است ،به قسمت …extendsدقت کنید ، در حقیقت این عبارت است که می گوید اپلت شما یک زیر کالس از کالس Appletخواهد بود .به مسیر کامل کالس Appletدقت کنید ،چون این بسته بطور پیش فرض برای جاوا تعریف نشده ، باید مسیر کامل آن ذکر شود .کلمه Publicمی گوید که این کالس در اختیار تمام سیستم قرار خواهد داشت .تا اینجا کالس ما تمpام متغییرها و متدهایش را از کالس باالتر ( )Appletبه ارث برده و کام ً ال شبیه آن است .اجازه دهید فونت آن را عوض کنیم : 87 ایجاد یک زیر کالس : در اینجا fمتغییری است از کالس Fontکه جزء بسته java.awtاست .با تعریف فوق فونت سیستم از نوع TimesRomanضخیم و با اندازه 36خواهد شد .با استفاده از شییء فونت می توان فونت اپلت را تغییر داpد . حال باید متدی تعریف کرد تا از این فونت استفاده کند .متدی که عبارات را روی صفحه نمایش می دهد متد )(paintاست که در اینجا آن را تعریف خواهیم کرد تا عبارت Hello Worldبا فونت جدید رسم شود . تعریف جدید متد مزبور چنین است : 88 ایجاد یک زیر کالس : در اpینجا به دو نکته باید توجه کنید .اول اینکه این متد Publicاست چون متدی که هم نام آن است خود Publicاست .وقتی می خواهید متدی را تحریف کنید باید میدان دید ( )Scopeآن مانند متد فوق کالس متناظرش باشد ،دوم اینکه ،متد )(Paintیک آرگومان ورودی ،که یک شیء از کالس Graphicsاست ،دارد .این کالس یک روش مستقل از سخت افزار برای عملیات گرافیکی است . در متد )(Paintسه کار انجام داده ایم : • گفته شده که شیء گرافیکی از فونت fاستفاده کند . • گفته شده که رنگ رسم عبارت رنگ قرمز ( )Color.redاست . • در پایان هر عبارت “ ”Hello Againدر نقطه ( )5,25رسم می شود . کالس جدید به همpین راحتی تعریف شد ! اپلت ما تا این جا باید مانند ذیل باشد : 89 ایجاد یک زیر کالس : 90 ایجاد یک زیر کالس : اما مثال ما یک اشتباه داpرد .اpگر نمی توانید حدس بزنید که این اشتباه چpیست ،اپلت را کامپایل کنید .کامپایلر با پیغام ذیل کارش را متوقف خpواهد کرد : این پیغام خطا برای چیست ؟ به یاد دارید که بسته پیش فرض javaبسته java.langاست ولی شما در خط اول تعریف کالس pاز بسته java.appletاستفاده کرده اید .اما می بینید که کامپایلر از این خط خطا نگرفته است چون مسیر کامل بسته را قید کرده ایم .یک راه حل برای رهایی از این قبیل مشکالت آن است که مسیر کامل تمpام کالسها را قید کنیم .اما اگر در یک اپلت بدفعات از یک یا چند کالس استفاده کنیم ،هر بار نوشتن نام کامل مسیر کالس ها بسیار خسته کننده و وقت گیر خواهد بود .در این موارد بهتر است از دستور importاستفاده کنیم .در اپلت فوق از سه کالس ( )Color , Font , Graphicsاستفاده کرده ایم که همگی در بسته java.awtقرار دارند .بنابراین ،دستورات ذیل را به اول برنامه ،قبل از تعریف کالس ،اضافه کنید : 91 ایجاد یک زیر کالس : این پیغام خطا براpی چیست ؟ به یاد داpرید که بسته پیش فرض javaبسته java.langاست ولی شما در خط اول تعریف کالس از بسته java.appletاستفاده کرده اید .اما می بینید که کامپایلر اpز این خط خطا نگرفته اpست چون مسیر کامل بسته را قید کرده ایم .یک راpه حل برای رهایی از این قبیل مشکالت آن است که مسیر کامل تمام کالسها را قید کنیم .اما اگر در یک اپلت بدفعات اpز یک یا چند کالس استفاده کنیم ،هر بار نوشتن نام کامل مسیر کالس ها بسیار خpسته کننده و وقت گیر خواهد بود .در این موارد بهتر است از دستور importاستفاده کنیم .در اپلت فوق از سه کالس ( )Color , Font , Graphicsاستفاده کرده ایم که همگی در بسته java.awtقرار دارند . بنابراین ،دستورات ذیل را به اول برنامه ،قبل از تعریف کالس ،اضافه کنید : 92 ایجاد یک زیر کالس : نکته : با استفاده از یک ستاره (*) می توان تمام کالس های Publicیک بسته را مورد استفاده قرار داد ، مانند ذیل : حال که کالس را تصحیح کردیم ،می توانیم اپلت Hello Again Appletرا کامپایل کنیم .برای تست این اپلت ،فایل HTMLجدیدی مانند ذیل بسازید : 93 ایجاد یک زیر کالس : 94 ایجاد یک زیر کالس : این فایل را با نام HelloAgainApplet.htmlذخیره کرده و آن را در یک کاوشگر مجهز به جاوا اجرا کنید . یکی از سخت ترین جنبه های تسلط بر برنامه نویسی شییء گرا درک همین مفاهیم ( عجیب و غریب ) آن است . در اینجا مرور مجددی بر این مفاهیم خواهیم داشت . • کالس : pالگویی برای اشیاء که در آن رفتار و خواص شییء تعریف نشده اند . • شییء :یک نمونه قابل لمس از یک کالس اpز یک روی کالس می توان چند شییء بوجpود آورد که هر کدام رفتار و خواص خود را دارند . • وهله :هر شییء یک وهله است از یک کالس . • فوق کالس :کالسی که به زیر کالس هایش ارث می دهد . • زیر کالس :کالسی که از والدینش ارث می برد . • متد کالس :متدی که در یک کالس تعریف می شود 95

51,000 تومان