آموزش برنامه نویسی جاوا

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی جاوا
سه شنبه 24 دی 1392  8:55 AM

با سلام و احترام خدمت کاربران گرامی

در این تاپیک آموزش مفاهیم پایه ای برنامه نویسی جاوا را دنبال خواهیم کرد و این تاپیک به صورت روزانه و هر روز چند پست ، به روزرسانی خواهد شد 

 

مقدمه بر زبان های برنامه نویسی

در حقیقت گام اول و اساسی برای برنامه نویس شدن انتخاب زبان برنامه نویسی مناسب است. منظور از زبان برنامه نویسی مناسب این است که هر زبان برنامه نویسی دارای نقاط ضعف و قوتی و بسته به اینکه شما چه نیازی از زبان برنامه نویسی دارید یکی را بر دیگر زبان ها ترجیح خواهید داد. زبان برنامه نویسی Visual Basic شرکت مایکروسافت برای طراحی هزاران هزار برنامه تجاری، اداری و شخصی مورد استفاده قرار گرفته است و این در حالی است که برنامه های طراحی شده در این زبان برنامه نویسی در مقایسه با برنامه های طراحی شده در قالب زبان های دیگری همچون زبان برنامه نویسی C# و C++ از سرعت اجرای کمتری برخوردارند و این افت سرعت در برنامه هایی همچون بازی ها که از گرافیک بالاتری نسبت به مابقی برنامه ها برخوردارند نمود بیشتری دارد.

زبان برنامه نویسی جاوا در اوایل دهه 1990 توسط جیمز گاسلینگ و همکارانش در شرکت سان مایکروسیستمز پایه ریزی شد و از همان ابتدا شعار طراحان این زبان این بود که "یک بار بنویس، همه جا اجراش کن" که بعد ها این شرکت توسط شرکت اوراکل خریداری شد. در حقیقت آقای گاسلینگ از روش برنامه نویسی در C++ خیلی احساس رضایت نمی کرد و همین امر موجب شد که وی زبان جاوا را بر مبنای زبان C++ طراحی کند به نحوی که برنامه های مد نظر ایشان را به نحو بهتری اجرا کند. این زبان برنامه نویسی موفق که در سال 1995 به طور رسمی وارد بازار شد توانست چنان محبوبیتی در جهان پیدا کند که در حال حاضر در بیش از 3 میلیارد ابزار رایانه ای و تلفنی مورد استفاده قرار گرفته و تاکنون بیش از 1000 جلد کتاب پیرامون آن به رشته تحریر درآمده است. این زبان داری ساختار یا Syntax همچون زبان های C و C++ می باشد اما از سادگی بیشتری برخوردار است. اگر چه که زبان برنامه نویسی جاوا نسبت به زبان برنامه نویسی Visual Basic از دشواری بیشتری برخوردار است اما این زبان از مزایای بسیاری برخوردار می باشد که از آن جمله می توان به این نکته اشاره کرد که زبان جاوا زبان وب و موبایل است به نحوی که از آن می توان در ساخت و طراحی اپلیکیشن ها و بازهای تحت وب و قابل اجرای بر روی گوشی های همراه استفاده کرد.

فرض کنیم که قرار است ما یک آپارتمان 10 طبقه بسازیم. هر 10 طبقه از آپارتمان ما دارای یکسری ویژگی های خاص و منحصر به فرد است مثل اینکه رنگ دیوار های طبقه اول سفید است و درهای آن کرم رنگ هستند اما این در حالی است که رنگ دیوار های طبقه هفتم صورتی است و درهای آن سفید است و... . در حقیقت هر یک از طبقه های آپارتمان ما همچون یک Object یا شئی در زبان برنامه نویسی جاوا است.

اگرچه که هر یک از طبقات آپارتمان ما دارای یکسری ویژگی های خاص است، اما این در حالی است که کلیه طبقات آپارتمان از یکسری ویژگی های ثابت همچون اتاق خواب، سرویس، آشپزخانه و پنجره برخوردارند. در زبان برنامه نویسی جاوا یک Class دقیقاً چنین نقشی را ایفا می کند. به عبارت دیگر در یک برنامه تحت جاوا، Class به منزله یک نقشه خانه است که هر یک از طبقات آپارتمان از روی آن ساخته می شود اما هر یک از طبقات علیرغم داشتن یک پلان ثابت دارای یکسری ویژگی های منحصر به فرد خود است که اصطلاحاً به هر یک از آن طبقات یک Object گفته می شود. حال در برنامه نویسی، برنامه نویس یک Class با یکسری خصوصیات تعریف کرده سپس از روی آن Class تعریف شده تعدادی Object می سازد و این Object ها هرکدام داری زیربنایی یکسان اما نمایی متفاوت می باشند.

در واقع این همان ویژگی است که زبان برنامه نویسی جاوا را بسیار منحصر به فرد کرده است. آنچه زبان برنامه نویس جاوا را بسیار زیبا می سازد این ویژگی است که در ذیل در قالب مثال آپارتمان ذکر می شود. در واقع ما یک نقشه کلی یا Class برای آپارتمان طراحی می کنیم. حال تصمیم می گیریم که تعدادی از طبقات آپارتمان ما سه خوابه بوده و تعدای از آنها چهار خوابه ساخته شوند. در حقیقت ما از روی Class اصلی دو Class دیگر تحت عناوین سه خوابه و چهار خوابه طراحی می کنیم که ویژگی های Class اصلی را به ارث می برند. در برنامه نویسی جاوا به این رویداد Inheritance یا به ارث بردن می گویند. اصطلاحاً Class اصلی Superclass یا Class اصلی است و کلاس های سه خوابه و چهار خوابه Subclass یا Class زیرمجموعه می باشند. به عبارت دیگر می توان گفت که Class اصلی Class والد بوده و Class های زیرمجموعه Class فرزند می باشند.

نکته ای که در اینجا می بایست حتماً مد نظر قرار دهیم این است که Class خود به تنهایی منجر به ایجاد چیزی نخواهد شد چرا که Class یک مفهوم انتزاعی است و چنانچه بخواهیم نمود عینی یک Class را ببینیم به یک Object نیاز داریم. در حقیقت پیش از طرح ریزی زبان های برنامه نویسی شئی گرا، برنامه نویسان چنانچه مجبور بودند تغییری در بخش از برنامه خود ایجاد کنند می بایست کل برنامه را از ابتدا بنویسند اما پس از ظهور زبان های برنامه نویسی این مشکل به کلی حل شد چرا که با اعمال تغییر روی یک Class مد نظر، کلیه Object های برگرفته از آن Class تغییر خواهند یافت.

در مثال دوم فرض کنیم که قرار است برای یک بانک یک نرم افزار حفظ اطلاعات حساب های مشتریان بنویسیم. ساختار چنین برنامه ای به شکل زیر خواهد بود:


Account
Name Id Balance
CustomerOne 2234 100000$
CustomerTwo 2235 2000000$

در مثال فوق ما یک Class داریم تحت عنوان Account و این کلاس ما دارای سه متغییر با نام های Name, Id, Balance به معنی به ترتیب نام، شناسه و موجودی می باشد. حال از روی این Class می توانیم دو Object ایجاد کنیم که Object اول دارای خصوصیاتName: CustomerOne, Id: 2234, Balance: 100000 و Object دوم دارای خصوصیات Name: CustomerTwo, Id: 2235, balance: 2000000 می باشد. در واقع هر دو Object ما نمود عینی کلاس Account می باشند.

امیدوارم با ذکر این دو مثال مفهوم برنامه نویسی شئی گرایی مشخص شده باشد و در صورتیکه باز هم بخشی از مفاهیم آن طور که باید وشاید ملموس نیستند هیچ جای نگرانی نیست چرا که در حین برنامه نویسی در طول دوره این مفاهیم به خوبی منتقل خواهند شد.

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

اول ماشین را خاموش کند. دوم کاپوت ماشین را بالا بزند. سوم روکش انژکتور را بردارد. چهارم پس از باز کردن انژکتور سوزن سوم آن را تعویض کند. پنجم انژکتور را مجدداً سوار کند. ششم روکش آن را نصب کند. و در نهایت کاپوت ماشین را بسته و استارت بزند.

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