PDA

View Full Version : آموزش جاوا قسمت اول : مقدمه ای بر جاوا



hotice
پنج شنبه 17 دی 1383, 23:14 عصر
با سلام
مقدمه:
در اکثر بخش های این سایت و سایت های دیگر که شما نگاه کنید مطالبی تحت عنوان آموزش خواهید دید که برنامه یا زبانهای خاصی را قدم به قدم توضیح داده اند.
متاسفانه بعلت ناشناخته ماندن وتاکمی مبهم بودن این زبان حتی برای برنامه نویسان در حد متوسط گرایش به این زبان در کشور مابسیار کم رنگ می باشد.و علت دیگر شاید نداشتن یک IDE یکتا وثابت برای این زبان است( اگر کمی وقت در اینترنت صرف یافتن IDE برای جاوا کنیدبه گزینه های زیادی برمی خورید Eclipse , Websphere , JDeveloper , Netbeans , Intelli.... که خو گرفتم با هریک حتی برای برنامه نویسان حرفه ای وقت لازم دارد ."البته به نظر من این یک قوت است"). من در این نوشتار قصد ندارم برتری جاوا بر بقیه زبانها را بگویم ویا تفاوت .NET با J2EE را بیان کنم بلکه آموزشی در حد مقدماتی بر این زبان خواهیم داشت.
بحث ونوشته هایی که در این تاپیک و تاپیک های آینده مطرح وارائه می شود حاصل و برگرفته از :
- ترجمه بخشهایی از کتاب Core Java
- کتب و مقالات موجود در اینترنت و مجلات
- Java Doc
- و تجربه و معلومات شخصی بنده
( هر کدام از مباحثی که حاصل تجربیات شخصی اینجانب است قابل نقد ، بحث و رد میباشد)
همچنین در این مقالات قصد دارم که IDE بسیار قدرتمند Eclipse را مورد استفاده قرار دهیم که به موقع و بین دروس به آن خواهیم پرداخت.
توجه : پروژه ها ومثالهایی که اجرا خواهیم کرد احتیاج به هیچ IDE ندارد ،شما میتوانید حتی با Notepade هم آنهارا بنویسید. اما برای راحتی کار واشنایی با یک IDE قدرتمند توصیه میشود از Eclipse استفاده کنید.
خوب برای شروع به چه چیزهایی نیاز داریم :
- دانشی از برنامه نویسی ( هرچند مقالات به گونه ای خواهد بود که افراد نا آشنا با برنامه نویسی قدم به قدم اصول برنامه نویسی را فرا خواهند گرفت. اما دانستن اصول برنامه نویسی بد نیست مخصوصاً اشنایی با syntax های C عالی خواهد بود )
- Java SDK
- یک کامپیوتر (سیستم عامل فرق نمی کند)
- Eclipse IDE (واجب نیست ، مستحب است)
توجه : یک CD حاوی J2SE5 ، JavaDoc5 ، Eclipse(همراه پلاگین های مربوطه) ، کتابهای Core Java I,II وچند کتاب و نرم افزار دیگر(همچنین برنامه JEdit که اُپن سورس هست و قصد دارم بعد از تکمیل مباحث جاوا به بومی سازی این نرم افزاربپردازم) برای مدیریت محترم سایت فرستاده می شود که امید است دوستانی که قادر به دریافت این برنامه ها از طریق خطوط کم سرعت تلفن نیستد از این طریق بتوانند آنرا فراهم کنند.
نکته : بعلت مسائل کاری من هرروز نمیتوانم به پای کامپیوتر بروم.اگر سوالی مطرح کردید و جواب آنرا از طرف بنده دیر به دستتان رسید پیشاپیش عذر خواهی میکنم.
سرفصل های دروس بیشتر بر اساس کتاب Core Java خواهد بود و شاید گریزهایی به خارج از آن زدیم. سرفصل ها شامل : مقدمه ای برجاوا ، محیط برنامه نویسی جاوا ، ساختار پایه برنامه نویسی در جاوا ، شیء گرایی ، وراست ، کلاسهای درونی و اینتر فیس ، برنامه نویسی گرافیکی ، مدیریت رویداد و..... خواهد بود.

و اینک : بسم الله الرحمن الرحیم
مقدمه ای بر جاوا
برای اکثر کسانی که فقط نامی از جاوا شنیده اند(البته در ایران) ویا در حد خیلی ابتدایی با جاوا کار کرده باشند جاوا مترادف است با : برنامه نویسی شبکه ، اجرای خیلی کند ، خیلی سخت ، غیر قابل فهم ، کم طرفدار در ایران ، بدون رابط کاربر، برنامه نویسی کنسولی و...... آیا واقعا چنین است ؟؟
قبل از توضیح دادن بعضی ازآنها به تاپیک هایی که در همین بخش با عنوان " کار های برزرگ با جاوا"،"یک بازی سه بعدی با جاوا"،"نوشتن سیستم عامل باجاوا" مراجعه کنید و یا می توانید خودتان در اینترنت به جستجو بپردازید.اما بعضی از این حرف ها هم شاید رد کردن آن چندان کار درستی نباشد.
- برنامه نوسی شبکه : مطمئناً یکی از بازوهای قدرت مند جاوا است.
- اجرای خیلی کند : در مقایسه با برنامه های native compile تقریبا درست است. البته بخاطر ویژگی وساختار زبان جاواست.در ضمن تفاوت آن چندان محصوص نیست.
- خیلی سخت : موافق نیستم ، شاید برای افراد راحت طلب درست باشد.
- غیر قابل فهم : شاید برای برنامه نویسان روال گرا (procedure oriented) وغیر اشنا با OOP(برنامه نویسی شیء گرا) کمی درفهم آن مشکل داشته باشند.
- کم طرفدار در ایران : بخاطر ناشناخته ماندن آن.
- بدون رابط کاربر : اگر منظورشان IDE باشد که بیشتر از انگشتان دستتان IDE وجود دارد. و اگر منظورشان ساخت GUI برای برنامه ها باشد که حرف کاملا غلطی است. رجوع کنید به اینترنت یا تاپیک "کارهای بزرگ با جاوا". در بخش گرافیک و رابط کار بر توضیح خواهم داد.

و قص الی هذا ...........
"جاوا فردا بهتر از امروز خواهد بود". شاید این یک شعار دهن پر کن بنظر برسد اما با نگاهی به روند تکامل آن گویای این مطلب خواهد بود که جمله فوق چندان هم یک شعار نیست. سوالی که شاید در ذهنتان باشد این است که :
"این بهبود ها از کجا آمده است؟" . از تغیر در ساختار وزیر بنای جاوا نبوده بلکه قسمت اعظم آن تغیر در کتابخانه های جاوا بوده. به مرور زمان سان مایکروسیستمز خیلی از توابع کتابخانه ای جاوا را تغیر داد (برای سازگاری بیشتر)، تغیر در مدل گرافیکی با تغیر مدل رویداد و بازنویسی قسمت هایی از آن و هم چنین اضافه کردن ویژگی های مهمی مثل پرینت گرفتن که در نگارش های اولیه دیده نمی شد.نتیجه این تغیرات پلتفرم برنامه نویسی بسیار مفیدی با قابلیت های زیاد در ورژن های بعد بود.
نکته :
مایکروسافت هم محصولی بانام J++ بیرون داده بود که مشترکاتی با خانواده جاوا داشت.J++ دارای مفسری سازگار با ماشین مجازی جاوا برای اجرای بایت کد های جاوا بود.اما تفاوت اصلی در بخش interface و رابط کاربرآن بود. پایه دستورات تقریبا با جاوا برابر بود. مایکروسافت ابزار های مشکوکی در بخش interfacing و رابط کاربر آن اضافه کرده بود.منظورم استفاده از API های ویندوز بود.(( نظر من این است که : این کار مایکروسافت ترفندی برای لوکالیزیشن کردن برنامه ها بود. یا همان انحصاری کردن برنامه ها برای ویندوز.با این کار قابلیت حمل پذیری جاوا از بین می رفت. وشاید ترفندی برای زمینه سازی .NET . که جای بحث دارد)) در کل جاوا و J++ اشتراکات زیادی زیادی در توابع کتابخانه ای شان داشتند مثلاً : string, utilities, networking, multithreading, math و غیره که واقعاً برابر بودند. مایکروسافت برای مدت طولانی پشتیبانی از J++ را ادامه نداد بلکه پلتفرم وزبان جدیدی را معرفی کرد که بسیار شبیه به جاوا بود وآن .NET و C# بود.
برتری های جاوا :
- اولین برتری جاوا محیط اجرایی یا همون runtime environment آن است. که پلتفرم مستقلی را فراهم می کند که شما می توانید یک کد را روی ویندوز،لینوکس،مکینتاژ و.... اجرا کنید.این قابلیت وقتی مورد توجه قرار می گیرد که شما برنامه ای را روی پلتفرم های متفاوتی از اینترنت دانلود کنید.
- برتری دیگر آن سینتکس شبیه به C++ آن بوده. که ساخت برنامه ها را برای برنامه نویسان C/C++ آسان میکند.
- همچنین جاوا یک زبان برنامه نویسی کاملا شئ گرا می باشد حتی بیشتر از C++.تمام چیز ها در جاوا بجز تایپ های اولیه مثل اعداد همگی اشیاء هستند.

قسمت پایانی :
یکی از حضار از "استفان ویلد استروم" نویسنده بیزنیس ویک در کنفرانس CeBIT نیویورک می پرسد :
فکر میکنید کدام زبان برنامه نویسی در چند سال آینده بر سایر زبانها غالب خواهد بود ؟
فکر کنم دو زبان برنامه نویسی عمده همچنان C++ و جاوا باقی بمانند.البته گرایشی به سمت C# هم وجود دارد که با جا افتادن دات نت وکاربرد بیشتر آن این گرایش قوی تر خواهد شد.اما هنوز فکر می کنم C++ و جاوا زبانهای برنامه نویسی اصلی باقی بمانند.(ر.ک. : نشریه عصر ارتباط شنبه 12 دی 83)

خوب تا اینجا برای مقدمه فکر میکنم کافی باشد.در ضمن من خواننده انتقادات و پیش نهادات شما خواهم بود.

موفق باشید. :)

jirjirakk
یک شنبه 20 دی 1383, 00:06 صبح
hotice عزیز از زحمتی که کشیدی تشکر :) واقعا دمت گگرم :thnx:

علی ارجمندی
جمعه 02 بهمن 1383, 20:15 عصر
سلام دوست من
واقعاً از شما ممنونم . چون به شما زبان نوشتاریت برای برنامه نویسها خیلی قابل فهم تر
از یه کتاب یا مرجع . من خیلی مایل به یاد گیری این زبان هستم چه اینکه فعات تب مهاجرت
بالاست و جاوا خیلی خواهان داره . امیدوارم این اطلاعات رو در یک قالب متمرکز نشر بدهید .
با تشکر

Mah
دوشنبه 05 بهمن 1383, 14:54 عصر
سلام
از شما بسیار ممنونم که این بحث را شروع کردید .
من هم مشتاق یادگیری Java هستم .

hmm
سه شنبه 06 بهمن 1383, 08:39 صبح
بنده نیز هم !!!!
اگه امکان داره آموزشها مداوم باشه که بیشتر مورد استقبال قرار گیره
اگه هم بشه در قالب pdf عرضه بشه که خیلی عالیه
ممنون

MM_Mofidi
سه شنبه 06 بهمن 1383, 11:45 صبح
بنده نیز هم !!!!
اگه امکان داره آموزشها مداوم باشه که بیشتر مورد استقبال قرار گیره
اگه هم بشه در قالب pdf عرضه بشه که خیلی عالیه
ممنون
کاملا موافقم :تشویق: :موفق:

vDelphi
پنج شنبه 08 بهمن 1383, 21:58 عصر
:تشویق: :flower:

DJINN
سه شنبه 13 بهمن 1383, 14:21 عصر
اگه هم بشه در قالب pdf عرضه بشه که خیلی عالیه

با این پی دی اف ها چیکار میکنی راستشو بگو :kaf:
خیلی ممنون به نظر من بهتره که روی یک ای دی یی معروف و حرفه ای متمرکز بشید و کد ها و مثالها هم در قالب کد های Swing , JDataStore و غیره باشه این طوری با یک تیر دو نشون میزنین.

ساران سافت
چهارشنبه 28 بهمن 1383, 13:54 عصر
اقا کتاب فارسی مفیدی در این زمینه سراغ ندارید؟ :گیج: :wink:

shahab2380
چهارشنبه 12 اسفند 1383, 13:53 عصر
کار خیلی خوبی است من نیز به دنبال یادگیری این زبان هستم

متشکرم :flower:

neda_6512
جمعه 18 فروردین 1385, 00:11 صبح
سلام من راجع به عامل گرایی در جاوا سوال دارم اگر میتوانید به من کمک کنید با تشکر

persianshadow
جمعه 18 فروردین 1385, 06:30 صبح
میشه بگید منظورتون از عامل گرایی چیه ؟

SH.Daneshvar
دوشنبه 28 فروردین 1385, 13:17 عصر
ممنون از توضیحات کاملتون
راستش من چند ماه و چند روز هست که بشدت بدنبال
یک زبان و پلتفرم جدید و آینده دار هستم
من بر روی Delphi تا حد بسیار قابل قبولی حرفه ای شده ام
اما احساس میکنم این روز ها وقتش که فکر یک روند جدید باشم
البته کار من برنامه نویسی سیستم های MIS و ERP هستم
و کار دیگر من برنامه نویسی Embedded با C و EC++ هستش
و در C و C++ تا حدقبولی در C++ حرفه ای هستم
در کل مابین Java .Net
PHP ASP.NET
Delphi.Net
گیر کردم
لطفا کمکم کنید

متشکرم.
یا حق.

persianshadow
دوشنبه 28 فروردین 1385, 13:56 عصر
خوب معلومه چون تویه این بخش سوال کردی میگم : java

ولی پیشنهاد اساسی می کنم : .Net

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

تویه این زمینه نیرو می خوان.

اگه به فکر طولانی مدت هستی باز هم جاوا . کوتاه مدت دات نت .

کلا تویه ایران باید آچار فرانسه باشی تا کار خوب گیرت بیاد.

SH.Daneshvar
سه شنبه 29 فروردین 1385, 08:54 صبح
ممنون از جوابتون
راستش این روزها تحقیق کردم و به این نتیجه رسیدم

گروه زیر دستم فعلا از Delphi for Win32
خودم شروع کنم به بردن Source ها و Component ها به روی Delphi for .Net
و میخوام به صورت تحقیقاتی بر روی Java کار کنم
اما از اونجایی که حس میکنم Java
و Edition های مختلفش رو درست نمی شناسم
لطفا اگر زحمتی نیست بیشتر راجع به Edition های Java
Version های جدیدش و چیزهایی لازم دیگری که من حقیر ازش خبری ندارم
توضیح بدین.

متشکرم.
یا حق.

mani_khalili
جمعه 08 دی 1391, 21:17 عصر
اقا کتاب فارسی مفیدی در این زمینه سراغ نداری
به نظر من کتابهای برنامه نویسی مهندس صدیقی خوبه یه نگاهی به لینکهای پایین بندازید

http://www.filefactory.com/file/33jdyicnipd/n/Java_Web_Programming_Demo.pdf
http://www.filefactory.com/file/brnztxrobdn/n/Core_Java_Programming_Demo.pdf
http://www.filefactory.com/file/7b5ak10k5vul/n/J2EE_Open_Source_Programming_Demo.pdf

fatemeh-r
شنبه 09 آذر 1392, 08:47 صبح
سلام منم توی لینک زیر هر ماه آموزش جاوا SE از پایه و نصب برنامه هاش میزارم :

http://www.rasekhoon.net/article/show/791091/پلتفرم-java-SE-با-محیط-توسعه-NetBeans-(IDE)-(1)/