برنامه نویسی جاوا – قسمت اول

سه شنبه, ۲۱ام مهر , ۱۳۸۸ | ۱۷ دیدگاه

از امروز با آموزش زبان برنامه نویسی جاوا و آموزش خانم مینا هوشمند در خدمت شما عزیزیان خواهیم بود، امیدوارم که این آموزشها برای شما مفید واقع بشه(کامران)

چند وقتی بود که تو فکر تهیه یک منبع روان و قابل فهم در مورد زبان برنامه نویسی جاوا بودم. وقتی با این سایت آشنا شدم ؛ تصمیم گرفتم این منبع رو با بقیا شما دوستان شریک بشم.

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

بهتر هست کسانی که قصد مطالعه این درسنامه ها رو دارن با زبان C یا C++ آشنایی داشته باشن یا حداقل مبانی یک زبان رو بدونن.

اگه کسی باشه که جاوا اولین زبان برای یادگیری اون باشه باید بگم راه سختی رو در پیش داره.

البته من سعی می کنم هر جا که لازم شد یه flash back به مطالب C++ داشته باشم.قبل از هر چیزی میخوام سرفصلها رو براتون بگم که دقیقا بدونید قرار هست چه مطالبی رو یاد بگیرید :

Unit1 : تاریخچه و سیر تکاملی جاوا

Unit2 :  اصطلاحات مهم جاوا

Unit3 :برنامه سازی شیء گرا

Unit4 : انواع داده هاو متغیر ها و آرایه ها

Unit5:  عملگرها

Unit6:  عبارات کنترلی

Unit7:  معرفی کلاسها-قسمت اول

Unit 8:  معرفی کلاسها-قسمت دوم(متد ها و کلاس ها)

Unit 9:  وراثت

Unit10: پکیج ها و رابطها

Unit 11:  استثتاها

Unit 12: multithreaded برنامه سازی

Unit 13: داده های جانبی- فهرست ثابت ها وautoboxing

Unit14 : ورودی –خروجی و اپلت ها

Unit 15 : داده های عمومی

خوب این هم از درس اول:

Unit 1

تاریخچه و سیر تکاملی جاوا

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

اگر چه جاوا به طور تنگاتنگی با محیط اینترنت ارتباط داره اما لازمه به خاطر داشته باشید که که بیش از هر چیز یک زبان برنامه نویسی است.

ابداع؛توسعه و تکامل زبانها به دو دلیل رخ می دهد:

۱-  برای تطبیق با محیط ها و کاربرد های در حال تغییر

۲-  برای عملی ساختان موارد خاص و پیشرفته هنر برنامه سازی

پیشینیان زبان جاوا

زبان جاوا ارتباط تنگاتنگی با C++ دارد که به نوبه خودش؛ به طور مستقیم از زبان C مشتق شده است. بیشتر ویژگی های جاوا از این دو زبان به ارث رسیده است به طور مثال ساختار گرامری جاوا از C مشتق شده است.

زبان C++ هم بر بسیاری از ویژگی های شیئ گرایی Object Oriented جاوا تاثیر گذاشته است. علاوه بر این شکل گیری زبان جاوا در فرآیند “تصفیه و تطبیق” Refinement and Adaption ریشه داره که عموما در چند دهه اخیر در زبان های جدید رخ داده است.

دلیل هر یک از این نوآوری های مطرح در طراحی هر زبان؛ نیاز به حل مسائلی بوده که زبان های پیشین قادر به حلشون نبودن.

تولد زبان برنامه سازی نوین C

زبان برنامه سازی C دنیای کامپیوتر ها رو متحول کرد و تغییر اساسی در نگرش برنامه نویسی ایجاد کرد. طراحی و پیاده سازی زبان C نتیجه مستقیم نیاز به یک زبان ساختار یافته ؛ کادآمد و سطح بالا بود که بتونه جایگزین زبان اسمبلی در نوشتن برنامه های سیستمی بشه. زبان C هم مثل هر زبان دیگه ای تونست بین موارد زیر توازن نسبی ایجاد کنه:

سهولت استفاده

امنیت در مقابل بازدهی

استحکام در مقابل گسترش

برنامه سازان معمولا قبل از مطرح شدن C باید زبانی رو از بین زبانهای دیگه انتخاب می کردن که تنها یکی از خصوصیات گفته شده رو داشته باشه .مثلا زبان فرترنFORTRAN امکان نوشتن برنامه های نسبتا کارآمد برای کاربرد های علمی رو به ما میده اما این زبان برای نوشتن برنامه های سیستمی مناسب نیست یا با اینکه یادگیری بیسیکBASIC آسونه اما زبان قدرتمندی نیست و در ساختارش نقص داره. با استفاده از زبان اسمبلیAssembly می تونیم برنامه های بسیار کارآمد تولید کنیم اما یادگیری اون مشکله و به کار بردن اونم خیلی سخته علاوه بر این اشکال زدایی در آن هم دشوار و وقت گیره.

مشکل دیگه اینه که زبان هایی وثل بیسیک و کوبولCOBOL و فرترن بر اساس اصول ساختار یافته طراحی نشده اند و همه این زبان ها از دستور GOTO برای هدایت کنترل برنامه ها استفاده می کردند و در نتیجه برنامه هایی که با این زبان ها نوشته می شدند منجر به تولید کد اسپاگتی(حجم زیادی از انشعابات شرطی و غیر شرطی که درک برنامه رو سخت میکنه) می شدند.

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

در اوایل دهه ۷۰ میلادی انقلاب کامپیوتری فراگیر شده بود و نیاز به رسیدن به نرم افزار های بهتر؛برنامه سازان را به شدت برای تولید سریع اینگونه نرم افزار ها تحت فشار قرار میداد. در محافل آکادمیک هم همه نیروی برنامه سازان برای طراحی و پیاده سازی یک زبان بهتر به کار می رفت.

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

زبان برنامه نویسی C توسط دنیس ریچی طراحی و برای اولین بار در یک کامپیوتر PDP-11 تحت سیستم عامل یونیکس اجرا شد. این زبان نیز نتیجه فرآیندی بود که با زبان قدیمی تری به نامBCPLکه توسط مارتین ریچاردز طراحی شده بود؛ آغاز شده بود.

C++ گام بعدی

زبان برنامه نویسی C در اواخر دهه ۷۰ و اوایل دهه ۸۰ میلادی با زبان برنامه سازی غالب تبدیل شد و هنوز هم طرفداران مخصوص به خود را دارد. با این وجود سوالی که مطرح است این است که با در نظر گرفتن قابلیت های زیاد این زبان چرا نیاز به تولید یک زبان دیگر با وجود آمد؟ پاسخ این سوال  پیچیدگی است.

در سرتاسر تاریخ برنامه سازی پیچیدگی رو به رشد برنامه ها؛ موجب مطرح شدن ضرورت روشهای بهتر برای مدیریت این پیچیدگی شده است.

روش برنامه سازی جدیدی به نام برنامه سازی شیئ گرا Object Oriented Program برای حل مشکل پیچیدگی ابداع شد.OOP نوعی متدلوژی برنامه سازی است که امکان سازماندهی برنامه های پیچیده را از طریق وراثت inheritance  ؛ نهان سازی encapsulation و پلی مورفیزم فراهم می کند.

اگر چه C یکی از بزرگترین زبان های برنامه سازی جهان است اما توانایی محدودی جهت مدیریت پیچیدگی دارد. وقتی حجم برنامه ای از ۲۵۰۰۰ تا ۰۰۰/۱۰۰ سطر بیشتر می شود آنقدر پیچیده شده است که تسلط بر تمام آن مشکل است. C++ امکان حل این مشکل رو فراهم کرد.

BJarne StroustrupPowerPoint در سال ۱۹۷۹ وقتی در آزمایشگاه بل در نیوجرسی مشغول کار بودC++ را ابداع کرد و در ابتدا نام اونو C with classes گذاشت.

زمینه برای جاوا فراهم می شود

در اواخر دهه ۸۰ میلادی برنامه سازی شی ئ گرا با C++ فراگیر شد.

چون C++ بازدهی بالا و عناصر دارای سبک زبان Cرا با سبک شی ئ گرا ترکیب کرده بود؛ زبانی بود که میشد از اون برای ایجاد محدوده گسترده ای از برنامه ها استفاده کرد.

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

ظهور جاوا

جاوا در سال ۱۹۸۱ توسط جیمز گاسلینگ ؛ پاتریک نوتون ؛ کریس وارث ؛ اد فرانگ و مایک شرایدن  در شرکت سان میکرو سیستم ایجاد شد. نخستین نگارش اون پس از ۱۸ ماه کاری تولید شد .اسم این زبان در ابتداOaK  بوداما در سال ۱۹۹۵ به جاوا تغییر کرد. در فاصله زمانی بین نخستین پیاده سازی OaK در پاییز سال ۱۹۹۲ و اعلام موجودیت جاوا در بهار سال ۱۹۹۵ افراد زیادی در طراحی و تکامل این زبان مشارکت داشتن.

جالبه بدونید که محرک اولیه برای آماده سازی جاوا اینترنت نبود بلکه در عوض محرک اصلی ؛ نیاز به یک زبان مستقل از محیطPlatform independent یا معماری خنثی بود که بتوننن از اون برای ایجاد نرم افزار های قابل استفاده در تجهیزات الکترونیکی خانگی مثل ماکرو فر و دستگاه های کنترل از راه دور ؛استفاده کنن.

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

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

همزمان با تولید جاوا عامل دوم و مهمتری نیز ایجاد شد که نقش زیادی در آینده جاوا داشت.این نیرو وب جهانی WW بود.هرچند وب جهانی همزمان با پیاده سازی جاوا شکل نگرفته بود اما این امکان وجود داشت که جاوا زبانی مهم و گمنام برای آماده سازی تجهیزات الکترونیکی باقی بمونه. با ظهور وب جهانی جاوا پیشرفت قابل ملاحظه ای کرد زیرا وب جهانی هم نیاز به برنامه های قابل انتقال داشت.

گفتیم جاوا شباهت های زیادی به CوC++دارد. طراحان جاوا می دونستن که استفاده از ساختار گرامری C و استفاده از میژگیهای شی ئ گراییC++ به خوبی برنامه نویسان با تجربه این دو زبان رو به جاوا جذب میکنه.

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

به دلیل شباهتهای جاوا باCو C++ اغلب به اشتباه تصور میشه که این زبان صرفا نگارش اینترنتی دو زبان ذکر شده است اما جاوا تفاوتهای فلسفی با آنها دارد.

ارتباط با C#

موفقیت جاوا بسیار مهمتر از اونه که نادیده گرفته بشه. شاید مهمترین مثال از تاثیر جاوا ؛ C# باشه. C# ارتباط تنگاتنگی با جاوا داره و توسط شرکت میکرو سافت به منظور پشتیبامی از.NET Framework طراحی و پیاده سازی شده.

ساختار گرامری مشابه ای بین جاوا و C# وجود داره ؛ هر دو اونا از برنامه سازی توزیع شده Distributed و از مدل شی ئ گرای یکسانی بهره مند هستن.

خوب این هم یه تاریخچه ای از جاوا.

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

منتظر درس نامه های بعدی باشید….

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

Be Sociable, Share!


۱۷ دیدگاه


  1. امیر
    ۲۱ مهر ۱۳۸۸

    من هم خیر مقدم میگم . امیدوارم که موفق باشید و در کارتون مستمر.

    البته این یک شعر نیست!




  2. رضا
    ۲۱ مهر ۱۳۸۸

    من هم به نوبه خودم به خانم هوشمند ( فامیلش من رو یاد یکی میندازه 🙁 که فامیلش هوشمند بود ) خیر مقدم عرض میکنم .
    امیدوارم در کنار دوستان به فعالیتشون ادامه بدن و همیشه موفق باشند .

    بابت مطلب هم ممنونم




  3. رامتين
    ۲۲ مهر ۱۳۸۸

    شما میخواید جاوا یاد بدید یا جاوا اسکریپت؟
    اگه اشتباه نکنم این دوتا با هم مگه فرق ندارن؟




  4. کامران
    ۲۲ مهر ۱۳۸۸

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




  5. هادی
    ۲۲ مهر ۱۳۸۸

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




  6. مینا
    ۲۳ مهر ۱۳۸۸

    از همه دوستان ممنونم- راستش بهتره اول از کامران تشکر کنم که این محیط رو ایجاد کرده . یه محیط حرفه ای که اصلا رنگ و بوی لوس بازی های بعضی از سایت های ایرانی رو نداره و همه چیز با قاعده و قانون در اون جریان داره.
    و باز هم تشکر که اجازه داد من هم توی این محیط با بقیه دوستان شریک باشم.
    دوست دارم انتقادات ؛ انتقادات، انتقادات و پیشنهادها و تشویقاتتون رو همیشه داشته باشم چون تنها راهیه که میفهمم باید بقیه راه رو چطور ادامه بدم.
    بر می گردم، حتما…..




  7. کامران
    ۲۳ مهر ۱۳۸۸

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




  8. مينا
    ۲۳ مهر ۱۳۸۸

    چشم آقای رییس- ولی در هر صورت ادب حکم می کرد تشکر کنم. چه لطف باشه چه نباشه…




  9. کیان
    ۲۵ شهریور ۱۳۸۹

    با خانم هوشمند آشنایی دیرینه دارم! اما نمی دونستم یک همچین قلم توانایی در آموزش برنامه نویسی آن هم جاوا دارند. مدتها دنبال یه همچین درسنامه هایی می گشتم و نیافتم! از همه دست اند کاران این سایت تشکر می کنم




  10. diho
    ۲۶ آبان ۱۳۸۹

    سلام من دانشوجوی رشته IT هستم و از سایت شما برای مطلعات شخصی خودم استفاده میکنم به دوستان خودم هم سایت شما رو معرفی کردم و از تلاشتون بسیار تشکر می کنم و ارزوی موفقیت دارم
    ————–
    یه پیشنهاد داشتم
    تو اموزش هاتون مثل همین صفحه لطفا یه لینک به درس بعدی در انتهای مطلب بذارید که برای خوندن درس بعدی دچار مشکل نشیم!
    مرسی




  11. ali
    ۲۳ آذر ۱۳۸۹

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




  12. مهدی
    ۲۲ اسفند ۱۳۸۹

    سلام خدمت دوستان عزیز و اقا کامران

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

    من اشکالاتم رو از طریق این سایت منتقل میکنم امیدوارم به سوالات پاسخ داده بشه




  13. arash
    ۱۶ تیر ۱۳۹۰

    سلام امکان این وجود داره که این مطالب در فایل pdf باشه

    اگه این امکان وجود داشته باشه خانوم هوشمند خیلی ممنون میشم از لطفتون




  14. ايمان
    ۲ مرداد ۱۳۹۰

    سلام خوب هستید ، مطالب جالبه هستش ، اما یه مشکل توی پی دی اف گرفتن از سایت شما وجود داره و اون اینه که سایت
    http://www.web2pdfconvert.com/
    وقتی لینک سایت شما رو بهش میدم به دلیل فارسی بودن آدرس از صفحه ی اول وبسایت شما پی دی اف می گیره ، اگه امکان داره ، اسم صفحه های خودتون رو به صورتی انگلیسی بنویسید تا این مشکل برطرف بشه ، باتشکر




  15. iman
    ۶ مهر ۱۳۹۰

    سلام ممنون از زحماتتان ، یک سوال فقط :
    اگر از مطلب فوق لذت برده اید آنرا با دوستان خود به اشتراک بگذارید.

    چرا در اینجا وایه گوگل پلاس اشتراکی نگذاشتید ؟ اگه امکانش هست گوگل پلاس رو هم اصافه کنید به اینها دی:

    با تشکر.




  16. غزل
    ۵ اسفند ۱۳۹۰

    سلام خوب بود عزیزم موفق باشی




  17. غزل
    ۵ اسفند ۱۳۹۰

    خوب بود عزیزم موفق باشی



دیدگاه خود را بنویسید