شرکت همراه نرم افزار نوین به عنوان اولین شرکت تولید کننده نرمافزار تلفنهمراه نزدیک به 3 سال است در این زمینه فعالیت خود را آغاز نموده که نتیجه آن فارسیساز رابط کاربر تلفنهای سری 60 نوکیا و همچنین تولید برنامهای جهت مدیریت های شخصی بر اساس تاریخ شمسی بوده است.
با توجه به امکانات قابل توجه تلفن های همراه جدید به موازات موارد فوق این شرکت اقدام به تولید نرم افزارهای دیگری نظیر قرآن،مفاتیح الجنان اذان،مناسک حج،بانک اطلاعات مشاغل و...
نموده است به دلیل پیشرو بودن در این زمینه این شرکت بخش قابل توجهی از منابع خود را به امور تحقیقات و ارائه راهکارهای جدید برای استفاده بهتر از تلفنهای همراه اختصاص داده است.
من به مدت 240 ساعت در شرکت همراه نرم افزار نوین مشغول به کار شدم.
هدف از این کار :
بمنظور آشنایی با محیط کاری و اینکه آنچه راکه در مدت کاردانی به صورت تئوری وتاحدودی عملی آموخته ام در جامعه کاری به صورت کاربردی از آن استفاده کنم و بکار گیرم.
این شرکت مجموعاً به چند بخش عمده تقسیم بندی شده است که شامل:
1- بخش تولید
2- بخش اداری- پرسنلی
3- بخش تبلیغات
4- بخش فروش
5- بخش خدمات پس از فروش
من در ابتدا مدتی در بخش فروش مشغول به کار شدم.
نفرات متعددی در این بخش کار میکردند از جمله: مدیر بازاریابی و فروش – سرپرست فروش- سوپروایزر تهران و سوپروایزر شهرستانها.
باشند
در این واحد نرم افزارهایی که توسط بخش تولید،تهیه و تأیید شده و بارکد خورده باشند به فروش می رسد.
این شرکت کاملاً به صورت مکانیزه عمل می کند.
در این واحد نرم افزارهایی که توسط بخش تولید،تهیه و تأیید شده و بارکد خورده باشند به فروش می رسد.
هر نرم افزار در سایت این شرکت به صورت رایگان دانلود میشود اما برای اجرای آن باید مبلغی را به حساب شرکت مذکور واریز کنند، بعد از تایید واریز وجه کد فعال سازی به تعداد نرم افزار هایی که مشتری یا مشتریان خریداری می کنند در اختیار آنها قرار می گیرد و هر مشتری برای فعال سازی آن برنامه به صورت خودکار هنگامی که برنامه ها را فعال میکند اطلاعات او در سرور های شرکت ثبت و نگهداری می شود که البته قابل ذکر است که بخش(اتاق) سرور ها کاملاً ایزوله شده و هیچکس جز مسئول مربوطه اجازه دسترسی به آنها را ندارد.
سوپروایزر شهرستانها هم به امور نماینده ها در سراسر ایران نظارت میکند و به مشتری های شهرستانی شرکت خدمات می رساند.
بعد از آن مدتی در قسمت خدمات پس از فروش مشغول به کار شدم،این قسمت بسیار جالب بود چون تمام کاربران از اقسا نقات ایران و حتی خارج از ایران تماس گرفته و مشکلاتی که برای آنها از نسب برنامه گرفته تا مشکلاتی که هنگام نسب یا بعد از نسب نرم افزار پیش می آمد صحبت می کردند.
می توان گفت این قسمت یعنی همان بخش خدمات پس از فروش به نوعی قلب این شرکت میباشد و محبوبیت این شرکت در بین کاربران و حتی نمایندگان خود به دلیل خدمات نامحدود آن است و بدون اینکه وجهی دریافت کند تا مادامی که از آن نرمافزار استفاده می شود خدمات رایگان در اختیار آن کاربر گذاشته می شود.کاربران اغلب بصورت تماس تلفنی مشکلاتشان را مطرح کرده و مسئولین فنی و اپراتورها به آنها پاسخ میدهند تا مشکلات آنها را برطرف کنند و اگر مشکل آنها خیلی حاد بود به شرکت مراجعه میکنند ولی اکثراً با یک تماس مشکل برطرف میشود.در این بخش تمام خدمات به صورت رایگان در اختیار کاربران قرار میگیرد.
خدماتی که این بخش در اختیار یوزرهای خود میگذارد شامل : نسب نرمافزار در کوتاهترین مدت ممکن نکته:البته قابل ذکر است که تمام نرم افزارها به صورت پکیج به بازار عرضه شده که هرکدام از پکیج ها شامل: دفترچه راهنمای نسب و کد فعال سازی میباشد که با خواندن آن دفترچه به راحتی مراحل نسب انجام میشود.
در این صورت حتی اگر کاربر نتواند این کار را انجام دهد مسئولین این بخش باکمال رضایت این خدمات را در اختیار کاربران می گذارند.
چک کردن سرورها که حتی برای یک ثانیه هم متوقف نشوند.چون اگر چنین مسئله ای پیش بیاید در سراسر ایران فروشندگان و نمایندگان وعاملین فروش و موبایل فروشی ها کارشان مختل میگردد.
پاسخ گویی به مشتریانی که تماس تلفنی گرفته و میخواهند به صورت شنیداری و به کمک راهنمایی های اپراتور مشکلات خود را در زمینه ی نصب کردن برطرف نمایند.
حفاظت از سرورها کار کاملاً خطیری است که به این بخش محول شده و باید از نظر Security کاملاً واقب باشند که به هیچ یک از کدهای داخل سرور کوچکترین خدشه ای وارد نشود و تغییر و جابجایی در آنها صورت نگیرد.
نمایندگان استانها و شهرستانها که تماس میگیرند تا ببینند چه تعداد از کدهای آنها مصرف شده و چه تعداد از کدها باقی مانده است.مثلاً اگر کسی از مقررات سرپیچی کرده باشد(یعنی قانون کپی رایت را نادیده گرفته باشد)سریعاً باگزارشی که به این بخش میشود جلوی آن کد را گرفته و کد مذبور بلاک میشود تا فرد متخلف نتواند از آن برنامه استفاده کند بدین صورت که کد آنرا میسوزانند و اگر کاربر خطا کار بخواهد از آن استفاده کند پیغام : " این کد فاقد اعتبار است" را نشان میدهد که این کار یکی از شاخص های شرکت است که هیچ یک از شرکتهای ایرانی تولید کننده نرمافزار به این مسئله توجه نکردند و بعد از مدت کوتاهی تمام نرمافزارهایی که آنها زحمات فراوانی برای تولید آن می کشند سریعاً هک میشود ولی تاکنون با گذشت پنج سال از تولیدات نرمافزارهای این شرکت هنوز هیچکس نتوانسته حتی یک نسخه را هم هک کند.
بخش بعدی مربوط به بخش تولید است که در آنجا دوگروه مشغول به فعالیت میباشند: گروه اولProgramer ها هستند که استراکچرها و برنامه ها را مینویسند وبا برنامه های متعددی کار میکنند از جمله: C++ و java که در قسمت های بعدی به توضیح جامع و کاملتری از نرمافزار جاوا میپردازم.
گروه دوم Data intry ها هستند یعنی،افرادی که با نرمافزارها و ابزارهایی که توسط برنامه نویسان طراحی و ساخته شده است کار میکنند که اطلاعات را وارد کرده و ایراد یابی میکنند تا در نهایت تایید شده و به مرحله بهره برداری برسد باید در نظر داشت که حتی کوچکترین خطا و اشتباه منجر به مشکلات بزرگی خواهد شد.
این بخش نقش کلیدی و حیاتی را در تهیه برنامه ایفا میکند.
در قسمت ضمائم نیز چند نمونه از نرمافزارهای تولید شده توسط این شرکت و قابلیت های آنها را توضیح داده ام .
توضیحات ذکر شده مختصری از شرح کارآموزی من در این شرکت بود و من در طی این مدت با چگونگی عملکرد نرمافزار جاوا که یکی از نرم افزار های مورد استفاده در این شرکت بود تا حدودی آشنا شدم که در زیر به شرح قسمت هایی از آن پرداخته ام: جاوا جاوا یک زبان برنامه نویسی است که در اوایل دهه 90 توسط جاوا سافت، بخش نرم افزاری شرکت سان، توسعه داده شد.
هدف آن بود که جاوا زبانی ساده، فوی و همه منظوره باشد.
جاواتمام جنبههای مثبت C و C++را در خوددارد، و آن چیزهایی که برنامه نویسان ازآن نفرت داشته اند ( مانند وراثت چند گانه، تحریف اپراتورها و اشاره گرها) را به کناری گذاشته است.
مهمترین ویژگی جاوا این است که اساساً شییء گر است.
اولین ادعای oppتوانایی استفاده مجدد از کد است؛ چیزی که C++ با تمام ادعاهایش هرگز نتوانست بدان دست بابد، اما در اولین قدم خواهید دید که ادعای جاوا در این زمینه تا چه اندازه صحت دارد.
تصورش را بکنید که با صرف کمی وقت بتوانید برنامهای بنویسید که در سیستمهای ویندوز، یونیکس و مکینتاش براحتی اجرا شود!
همین که یک شرکت نرم افزاری بتواند برای تمام پلاتفرمهای موجود در آن واحد پروژهای را تولید کند ( و مقادیر عظیمی پول صرفه جویی کند) خود میتواند بهترین دلیل اقبال جاوا باشد .
و امروزه دیگر همه ( و نه فقط شرکتهای نرم افزاری) به سمت جاوا کشیده شدهاند.
با این ویژگی ( استقلال از پلاتفرم) یک برنامه نویس میتواند برای سیستمی برنامه بنویسید که هرگز با آن کار نکرده است.
این ویژگی اصلی ترین علت توفیق جاوا در اینترنت است.
اینترنت شبکه پچیدهای است از میلیونها کامپیوتر مختلف در سراسر دنیا، و مقاومت در مقابل این وسوسه که بتوانید برنامهای بنویسید که روی تمام این سیستمهای متفاوت و نامتجانس اجرا شود چندان ساده نیست.
جاوا یک زبان بسیار ساده است چون شما را وادار نمیکند تا در محیط جدید ( و ناآشنایی) کار کنید و این برای کسانی که اطلاعات فنی ناچیزی درباره کامپیوتر دارند بسیار مهم است .
ساختار زبان جاوا در نگاه اول بسیار شبیه C و C++ است و این به هیچ وجه تصادفی نیست .
C زببانی است ساخت یافته و C++ زبانیست شییء گرا ، و مهمتر از همه قسمت اعظم برنامه نویسان دنیا از آنها استفاده میکنند.
از سوی دیگر این شباهت حرکت به طرف جاوا از برای این قبیل افراد ساده خواهد کرد بنابراین طراحان جاوا برای اجتناب از دوباره کاری از زبانهای C وC++ بعنوان مدل استفاده کردند.
( و آیا این خود به تنهایی نشانه نبوغ طراحان جاوا نیست؟) .
جاوا با دور انداختن اشاره گرها و بر دوش کشیدن بار مدیریت حافظه، برنامه نویسانC++ /C را برای همیشه از این کابوسها رهایی بخشیده است.
علاوه برآن، چون جاوا زبانی برای اینترنت است، از ایمنی و حفاظت ذاتی بالایی برخودار است.
طراحان حاوا از ابتدا یک محیط برنامه نویسی امن را مد نظر داشتهاند.
مسئله حفاظت سیستمها رابطه تنگاتنگی با اشاره گرها دارد؛ اکثر مهاجمان برای ورودی غیر قانونی به جاوا مکانیزمهای حفاظتی دیگری هم دارد که در جای خود به آنها اشاره خواهیم کرد.
برای آشنایی بیشتر با جاوا بهتر است نگاه مختصری به تاریخچه آن بیندازیم.
اما چون جاوا رابطه تنگاتنگی با اینترنت دارد، آوردن تاریخچهای از اینترنت و وب خالی از فایده نیست.
تاریخچه مختصر اینترنت وب اینترنت به عنوان یک پروژه دولتی ایالات متحده امریکا در سال 1969 بدنیا آمد.
این پروژه ، که درابتدا آرپانت (arpanet) نام داشت.
فقط چهار کامپیوتر را در نقاط مختلف ایالات متحده به هم متصل میکرد.
آرپانت بتدریج رشد کردو در سال 1972 پنجاه دانشگاه و مرکز تحقیقاتی نظامی در آن فعال بودند.
در اواخر دهه 1980 متجاوز از هشتاد هزار کامپیوتر در این شبکه عظیم به هم متصل شده بودند.
این کامپیوترها خود به دستجات ( شبکههای) کوچکتری تقسیم شده بوددند و شبکه شبکهها ( یا اینترنت) آنها را به یکدیگر متصل میکرد.
در تمام این مدت اینترنت ملک اختصاصی محققان و دانشگاهیان بود و با آن که شرکتهای خصوصی هم میتوانستند به آن دسترسی داشته باشند ولی سیاست حاکم بر آن مانع استفاده تجاری از اینترنت شده بود.
در سال 1991 با حذف ممنوعیت تجارت در اینترنت اوضاع دگرگون شد؛ ولی کماکان محدوده تجارت و تحقیق از هم جدا بود.
از همین نقطه بود که رشد انفجاری اینترنت شروع شد به طوری که هم اکنون نزدیک به 100 میلیون کاربر در این شبکه عضویت دارند و اینترنت به تمام زاویای زندگی رسوخ کرده است.
با آن که اینترنت چندان جوان نیست اما از تولد وب ( یا شبکه تار عنکبوتی جهانی، World Wide Wed-WWW) زمان زیادی نمیگذرد.
وب در سال 1989 در آزمایشگاه اروپایی فیزیک ذرات (CERN) متولد شد.
وب حاصل زحمات تیم برنرز – لی_(tim berners-lee) بود که تلاش داشت تا فیزیکدانان سراسر دنیا بتواند اطلاعات خود را در شبکه اینترنت و به صورت اَبَرمتن(hypertext) با هم در در میان بگذرند .
وی براساس زبان عمومی علامتگذاری استاندارد SGML یک زبان جدید بنام زبان علامتگذاری اَبَرمتن HTML بوجود آورد.
برای انتقال اسناد HTMLهم یک پروتکل جدید ابداع شد که پروتکل انتقال اَبرمتن HTTPنام گرفت.
این پروتکل وسیلهای بود برای جستجو، یافتن، بازیابی و نمایش سریع اسناد.
با استفاده از ابرمتن میتوان در شبکهای از منابع، با برنامهای بنام کاوشگر BROWSER بدنبال اسنادی با ویژگیهای خاص کاوش کرد.
چون اولین کاوشگر فقط میتوانست متون را نمایش دهد با اقبال کمی مواجه شد.
در حقیقت درسال 1993 فقط پنجاه پایگاه وب در تمام دنیا وجود داشت.
شروع محبوبیت وب ورشد برق آسای آن با ورود کاوشگر گرافیکی موزائیک MOSAIC همراه بود.
این کاوشگر در NCSA ( مرکز ملی کاربردهای سوپر کامپیوتر) توسعه داده شد.
امروزه در دنیا دهها کاوشگر گرافیکی و متجاوز از یکصد هزار پایگاه وب وجوددارد.
موفقیت موزائیک باعث شد تا عدهای از محققان NCSA شرکت نت اسکیپ NETSCAPE را تأسیس کنند و این همان شرکتی است که معروفترین کاوشگر وب یعنی NetsCape Navigator را تولید کرده است.
کاوشگر نت اسکیپ علاوه بر HTML قابلیتهای متعددی در زمینه مالتی مدیا دارد که باعث تسریع در روند رشد اینترنت و وب شده است.
اما سال 1995 یکی از مهمترین سالها در تاریخ اینترنت و وب است: در این سال بود که میکروسافت ویدئوی اینترنتی را توسعه داد و صوت را تبدیل به یکی از اجزاء تفکیک ناپذیر اسناد ابرمتن کرد؛ نت اسکیپ با افزودن قابلیتهای بیشمار به کاوشگر خود همه را شگفت زده کرد؛ اولین ویرایش زبان مدلسازی واقعیت مجازی VRML به بازار آمده و سان جاوا را در یک سینی طلایی بدنیا عرضه کرد.
توسعه دهندگان وب با جاو ابزاری را یافتند که باآن میتوانستند صفحات تعاملی مالتی مدیا در اینترنت بوجود آورند و این نقطه عطف جدیدی در تاریخچه اینترنت به شمار میآید.
تکامل جاوا جاوا هم مانند اکثر اختراعات مهم حاصل تلاش گروهی دانشمند پیشتاز است.
اما نکته جالب درباره جاوا آن است که جاوا از ویرانههای یک پروژه شکست خورده سر برآورد .
اگر پروژه گرین Greenکه شرکت سان در سال 1991 آن را شروع کرد به موفقیت میانجامد امروز نه سان دیگر یک شرکت کامپیوتری میبود و نه جاوا متولد میشد.
در سال 1991، شرکت سان میکروسیستمز در آغاز راه تبدیل شدن به بزرگترین تولید کننده ایستگاههای کاری یونیکس بود و در طول فقط پنج سال در آمدش را از 210 میلیون دلار به 5/2 میلیارد دلار رسانده بود و بنظر می رسد هیچ چیز نمیتواند جلودار آن باشد.
عامل عمده موفقیت سان کارهای پیشتازانهاش در ایجاد شبکههای باز بود و در این زمینه هیچ کس به پای آن نمیرسید.
مدیران سان به این فکر افتادند تا کاری کنند که این رشد برای مدتی طولانی ادامه یابد.
یکی از زمینههای مورد علاقه سان بازار لوازم الکترونیکی بود؛ پروژه گرین بوجود آمد تا برای این بازار نرم افزاری پیشرفته خلق کند.
مهندسان سان توجه خود را به میکروپروسسورهایی معطوف کردند که دارای قابلیت استفاده در این گونه سیستمها باشند.
اگر پروژه گرین میخواست موفق باشد باید کاری میکرد تا سیستم مزبور بتواند براحتی به بسترهای سخت افزاری مختلف منتقل شود.
برای این منظور ابتدا از کامپایلر C++ استفاده شد ولی بزودی نارساییهایC++ در این زمینه خود را نشان دادند.
مهندسان سان خیلی سریع دریافتند که برای ادامه کار باید چیزی جدید و قوی خلق کنند.
در همین زمان بود که جیمز گاسلینگ کار بر روی زبان جدید اوکOak را شروع کرد .
تقدیرآن بود که این زبان جاواJava نامیده شود، چون اداره ثبت نامهای تجاری نام اوک را رد کرده بود.
بتدریج مهندسین یک دستگاه شبه PDA ساختند که در آن از سیستم عامل ،زبان برنامه نویسی و واسط کاربر جاوا استفاده شده بود و با وجود ابتدایی بودن توانست توجه مدیران سان را به خود جلب کند.
بعدها گروهی که در پروژه گرین کار کرده بودند شرکت جاواسافت را بنیان نهادند.
متأسفانه بخت با پروژه گرین یار نبود و بعد از چند شکست متوالی، سان آن را کنار گذاشت.
در همین زمان بود که عدهای از محققان NCSA شرکت نت اسکیپ را تأسیس کردند و این اتفاقات با آتشی که به سرعت دنیا را در مینوردید و شبکه تار عنکبوتی جهانی Wwwنام داشت همزمان شد.
بنابراین اتفاقی نبود که مهندسان پروژه گرین به سمت اینترنت و وب به عنوان بستر پروژه سان جلب شوند.
بعد از آن دیگر جزء تاریخ است، چهار سال بعد پروژه گرین به بار نشست و جاوا تبدیل به داغترین موضوع اینترنت شد: همه،از برنامه نویسان و طراحان صفحات وب گرفته تا کاربران اینترنت، میخواهند از جاوا استفاده کنند.
سان بلافاصله برای جاوا یک کاوشگر هم تولید کرد.
این اولین کاوشگری بود که میتوانست اپلتهای جاوا را اجرا کند و نام آن هم هات جاواHotJava بود.
ویژگیهای زبان برنامه نویسی جاوا جاوا ویژگیهای متعددی دارد که آن را منحصر به فرد کرده است.
جاوا هم کامپایلر دارد و هم اینترپرتر.
( توضیح: کامپایلر برنامهای است که متن برنامه را گرفته و در پایان یک فایلexe تولید میکند.
بعد از کامپایل شدن یک برنامه، دیگر به وجود کامپایلر نیازی نیست و میتوان برنامه exe را روی هر کامپیوتر سازگاری اجرا کرد.
اما اینترپرتر هیچ برنامه exe ای تولید نمیکند و برنامه را خط به خط اجرا میکند.
برای اجرای برنامه حتماً باید اینترپرتر هم روی کامپیوتر مورد نظر موجود باشد).
هر کامپایلر فقط برای یک سیستم خاص ( مانند اینتل، اپل یا آلفا) میتواند کد اجرایی تولید کند.
اما کامپایلر جاوا کد اجراییexe تولید نمیکند و در عوض یک فایل بینابینی میسازد که بایت کد نام دارد.
بایت کد چیزی شبیه زبان اسمبلی است، اما این زبان مختص هیچ پروسسور خاصی نیست بلکه زبان اسمبلی یک ماشین ویژه به نام ماشین مجازی جاوا jvm است.
در هنگام اجرای چنین برنامهای اینترپرتر زمان اجرای جاوا ، که روی ماشین مجازی جاوا اجرا میشود، دستورات فایل بایت کد را به دستورات قابل فهم برای پروسسوری که روی آن اجرا می شود تبدیل خواهد کرد.
اماشاید از خود سوال کنید که چرا جاوا این همه کار را بر خود( و دیگران) سخت گرفته است؟
این همه لایه و ماشین مجازی برای چیست؟
یکی از بزرگترین ادعاهای جاوا آزاد بودن از بستر سخت افزاری است.
اما ، این یعنی چه؟
اگر جاوا بخواهد در اینترنت موفق باشد برنامههای آن باید بتوانند بدون هیچ اشکالی روی تمام کامپیوترهای متصل به اینترنت اجرا شود، اما شما بهتر می دانید که اینترنت شبکه عظیمی است از کامپیوترهای نامتجانس، از سوپر کامپیوترهای عظیم گرفته تا PC های مبتنی بر پروسسورهای اینتل و پاورپی سی تا ماشین های یونیکس مبتنی بر پروسسورهای آلفا و ...!
چگونه یک برنامهاجرایی میتواند روی این طیف وسیع کامپیوترها اجرا شود؟
ایده اولیه ساده است: برنامهها برای یک ماشین مجازی کامپایل شوند و این ماشین مجازی روی تمام کامپیوترهای متصل به اینترنت نصب شود.
این دقیقاً همان روشی است که جاوا در پیش گرفته است.
برنامهتان را با یک کامپایلر جاوا کامپایل کنید؛ آن را در پایگاه وب خود قرار دهید و به دیگران اطلاع دهید تا با یک کاوشگر مجهز به جاوا این برنامه را ( که ممکن است در دل یک صفحه وب قرار داشته باشد) اجرا کنند.
شاید هرگز تصور نمیکردید که برنامهای را که با یک PCاینتل نوشتهاید روی یک ماشین مکینتاش یا یونیکس اجرا شود، ولی اکنون به لطف جاوا این دیگر آرزویی دست نیافتنی نیست.
با آن که C و C++ بدون شک زبانهایی بسیار قدرتمندی هستند اما اشکالاتی ذاتی دارند که شاید هرگز نتواند از آن رهایی یابند.
عمدهترین این اشکالات در مدیریت حافظه و اشارهگرهای آنها است.
برای اکثر برنامه نویسانC++ /C مدیریت حافظه و اشاره گرها یک کابوس واقعی است.
با آن که جاوا بدلیل محبوبیت فوق العاده C++ ظاهری شبیه آن دارند ولی در جاوا مدیریت حافظه به طور خودکار انجام میشود و اشاه گر هم اساساً در جاوا آرایهها عضوی از یک کلاس هستند که تمام مشکلات کار با آرایه را از دوش برنامه نویس بر میدارد.
جاوا در زمینه بهینه کردن استفاده از حافظه بسیار قویتراز اسلافش است، یکی از ویژگیهای جاوا پاکسازی خود کار حافظه از چیزهای بیمصرف است.
( این برنامه نام بامسمای آشغال جمع کن gc را دارد!) .
شیئ گرایی در جاوا به غایت خود رسیده است.
جاوا در استفاده از اشیاء بسیار مفید و سخت گیر است و تخطی از اصول را نمیپذیرد.
در C++ شما میتوانید از اشیاء به موازات برنامه نویسی به سبک قدیم استفاده کنید و اکثراً در پایان کار چنان ملغمهای بوجود میآید که مدیریت آن نه با روشهای برنامه نویسی شیئء گرا امکان دارد نه با روشهای قدیمی.
جاوا دیگر به شما اجازه نمیدهد تا خود را در چنین مخمصهای گرفتار کنید!
شروع برنامه نویسی با جاوا اولین برنامهای که مینویسم یک برنامه متکی به خود است بنامhello worldتفاوت یک برنامه متکی به خود و یک اپلت آن است که در برنامه متکی به خود ( که ازاین به بعد به آن فقط برنامه خواهیم گفت) از متدی بنام main() استفاده میشود در حالیکه اپلت چنین متدی ندارد.
برنامه helloworld بسیار ساده است و فقط جمله”Hello World!” را نمایش میدهد.
با این حال، از آن میتوان به عنوان سنگ بنای برنامههای پیشرفتهتر استفاده کرد چون تمام برنامههای جاوا ساختار کلی مشابهی دارند .
class Helloworld{ public static void main(string args[]) { system.out.println(“hello world!”); } } این برنامه پنج خطی دارای تمام ویژگیهای یک برنامه کامل و مفصل شیئگرا است .
نکته: برای نوشتن برنامههای جاوا از هر ادیتوری که خروجیASCII تولید کند میتوانید استفاده کنید.
برنامه را با نام helloworld.java ذخیره کنید .
نام برنامه باید همان نام کلاس برنامه باشد.
این برنامه دو قسمت مهم دارد: -تمام برنامه در واقع یک تعریف کلاس است.
-کل برنامه در متد main() قرار دارد.
برای کامپایل کردن برنامه باید از کامپایلر جاوا Javac استفاده کرد .
روش کار چنین است: javac helloworld.java نکته : در تمام این کتاب از کامپایلر سان، که با JDKمیآید، استفاده کرده ایم، اگر شما از کامپایلر دیگری استفاده میکنید به مستندات آن مراجعه کنید.
کامپایلر بعد از پایان کار یک فایل کلاس بنام helloworld.class تولید خواهید کرد.
اصولاً کامپایلر برای هر کلاس برنامه یک فایل کلاس جداگانه تولید خواهد کرد.
فایل تولید شده یک فایل اجرایی مستقل نیست.
برای اجرای فایل باید از اینترپرتر جاوا استفاده کرد.
اینتر پرتر جاوا ، java نام دارد.
برای اجرای فایل کلاس تولید شده چنین کنید: Java heloworld اگر همه چیز درست پیش رفته باشد، جمله “hello world” را روی صفحه کامپیوتر خود مشاهده می کنید.
نکته: دقت کنید که کامپایلر جاواو ینتر پرتر جاوا دو چیز متفاوتند.
کامپایلر از فایل متن برنامه یک فایل کلاس میسازد و اینتر پرتر فایل کلاس را اجرا میکند.
ایجاد یک اپلت جاوا ایجاد اپلت با ایجادبرنامه فرق دارد و قواعد متفاوتی بر آن حکمفرماست، یک اپلت برای اجرا در صفحات وب نوشته می شود بنابراین کمی پیچیدهتر از یک برنامه است.
در واقع یک اپلت تا زمانی که در یک کاوشگر اجرا نشود خروجی خود را نمایش نخواهد داد .
نکته : سعی کنید برنامهها، اپلتها و صفحات وب را در دایر کتوریهای جدا گانه ذخیره کنید.
اپلتی که در این قسمت مینویسیم،HelloWorld Applet نام دارد.
Import java.awt.graphics; Public class helloworldapplet extends java.
applet.Applet{ Public void paint (graphics g) { g.drawstring (“hello world!” , 5, 25); } } اپلت را با نامHelloWordApplet.java ذخیره کنید.
در موردیک اپلت باید به چند نکته توجه کنید: دستور import در خط 1 شبیه دستور#include در C است، با این دستور اپلت می تواند از کلاسهای jdkبرای کارهای گرافیکی استفاده کند.
-متد paint() برای نمایش محتویات اپلت است.
در این جا عبارتhello world!
روی صفحه نمایش داده خواهد شد .
اپلتها متد main() ندارند و به جای آن از متدهای paint() یا start(), init() استفاده میکنند.
برای کامپایل کردن این اپلت چنین کنید: درا ین حالت هم کامپایلر یک فایل کلاس به نام helloworld.class ایجاد خواهد کرد.
اما برای اجرای یک اپلت یک قدم دیگر هم باید برداشت و آن ایجاد یک فایل html است که اپلت در ان اجرا خواهد شد .
HELLO TO EVERYONE MY JAVA APPLET SAYS: تحلیل برنامه برای اجرای یک اپلت در فایلHTML باید از بر چسب استفاده کرد به دو نکته ذیل دقت کنید: -برای مشخص کردن نام کلاسی که اپلت در آن است از صفت CODE استفاده کنید.
-0برای مشخص کردن ابعاد پنجرهای که اپلت در آن اجرا خواهد شد از صفتهای WIDTH و HEIGHT استفاده کنید.
اعداد مشخص شده بر حسب پیکسل هستند.
این فایل را با نامHELLOWORLDAPPLE.HTML ذخیره کنید.حالا آمادهاید تا اپلت را اجرا کنید.
این کار به دو روش امکانپذیر است: -استفاده از کاوشگرهای مجهز به جاوا مانند نت اسکیپ.
-استفاده از برنامه APPLETVIEWER که با JDK میآید.
این برنامه کل صفحه وب را نمیتواند نمایش دهد و فقط اپلت را نمایش خواهد داد.
برای دیدن اپلت در یک کاوشگر، فایل HTML فوق را باز کنید، با این کار صفحه وب و اپلت درون آن به نمایش در خواهند امد.
روش استفاده از APPLETVIEWER چنین است: نکته: با اینکه میتوان برنامه APPLETVIEWER را از محل فایل HTML اجرا کرد ولی در این حالت بدون بستن آن نمیتوان اپلت را مجدداً بار کرد.
در حالیکه اگر مشاهده گر اپلت از محل دیگری اجرا شود.
( مانند دستور فوق) میتوان یک اپلت را تغییر داده، مجدداً کامپایل کرده و سپس دوباره در مشاهدهگر بار کرد.
خلاصه جاوا یک زبان برنامه نویسی است که با آن میتوانید برنامههای متنوعی بنویسید.
بیشترین کاربرد جاوا در ایجاد اپلتهایی است که در کاوشگرهای وب قابل مشاهده هستند.
اپلتها برنامههایی هستند که جزیی از صفحات وب محسوب می شوند .
تقریباً هر کاری با اپلتها امکانپذیر است.
قدرت جاوا در سادگی و استقلال از آن از بستر سخت افزاری ( چه در مقابل منبع برنامه، و چه در کد باینری آن) است.
باجاوا میتوان برنامههایی هم نوشت که بدون کاوشگرهای وب قابل اجرا باشند.
امروز هم یک برنامه جاوا نوشتید و هم یک اپلت جاوا، و تفاوت آن دو را دیدید.
اپلتهای جاوا را فقط در فایلهای HTML میتوان مورد استفاده قرار داد.
برنامه نویسی شیئی گرا یکی از بزرگترین ایدههای برنامه نویسی در دو دهه اخیر است ، اما تسلط کامل بر این ایده به سالها زمان و ممارست نیاز دارد.
برنامه نویسی شیئی گرا در واقع پیوند دنیای واقعی با برنامه نوسی کامپیوتر است.
امروز با مفاهیم برنامه نویسی شیئی گرا در جاوا، و ارتباط این مفاهیم با ساختار برنامهها آشنا می شوید: -شیئی و کلاس چیست و رابطه آنها چگونه است.
-یک شییء یا کلاس دو جزءء مهم دارد: رفتار و حالت -وراثت و نقش آن در طراحی برنامهها - بسته ها و واسطها در جاوا اگر از قبل با برنامه نویسی شیگرا آشنا هستید می توانید امروز را استراحت کنید و برای درس فردا آماده شوید.
مفاهیم برنامه نویسی شیئء گرا برنامه نویسی شیئی گرا قصد دارد مدلی از دنیای واقعی را وارد برنامه نویسی کامپیوتر کند.
دنیای اطراف ما از اشیاء Object ساخته شده است.
اشیاء Object و کلاسهاclasses شیئء کلیدیترین مفهوم برنامه نویسی شییء گرا است.
هر شیئء یک حالت ( یا خاصیت) و رفتار دارد، و برنامه عبارت است بر هم کنش بین اشیاء حالت یک شیئ عبارت است از متغیرهای ( عناصر دادهای) شیئی و مقدار آنها رفتار یک شیئ را متدهای آن تعیینن میکنند ( نزدیکترین مفهوم به متد همان تابع است) .
شیئ در واقع مقداری کد است که کار خاصی انجام می دهد.
هر شیئ کپسولی است از مقداری متغیر و کد، که کار نگهداری و به روز در آوردن آنها را ساده میکند.
معمولاً درون یک شیئ ( مانند یک کپسول در بسته ) از دسترس دنیای خارج بدور است و برای کار با آن باید از ارسال پیام استفاده کرد.
مزیت کپسول آن است که کاربر برای کار با آن هیچ نیازی به دانستن مکانیزمهای درونی آن ندارد و فقط باید ساختار پیام ها را بداند.
معمولاً ساختار پیامها در اشیاء مختلف یکسان است.
در دنیای واقعی هم وضع به همین منوال است، مثلاً برای استفاده از یک تلویزیون شما هیچ نیازی به آشنایی با پیچیدگیهای درون آن ندارید فقط کافیست بدانید که باید آن را به برق بزنید، آن را روشن کنید و یک کانال را انتخاب کنید.
کلاس در واقع الگویی است برای ایجاد شیئی در واسط برنامه نویسی جاوا java APIچندین کلاس مختلف وجود دارد که در جای خود به آنها خواهیم پرداخت.
نکته : اگر باC آشنا باشید، میتوانید کلاس را چیزی مانند struct و typedef تصور کنید؛ اما یک کلاس بسیار پیچیدهتر و کارآتر از struct است.
چند کلاس با هم یک کتابخانه کلاس class library می سازند.
برنامه نویسی جاوا اصولاً چیزی نیست جز طراحی و پیاده سازی کلاسها.
ایجاد یک کلاس برای درک بهتر مفاهیمی که تعریف شدند در این قسمت یک مثال عملی خواهیم آورد.
در این مثال یک موتور سیکلت را شبیه سازی می کنیم .
یک موتور سیکلت واقعی دارای حالت و رفتاری خاص خود است.
حالت موتور سیکلت در واقع همان خواص آن ( مانند رنگ، مدل، نوع و ..
) است .
مجموع این خواص یک موتور سیکلت خاص را مشخص خواهند کرد که از موتور سیکلتهاای دیگر قابل تمیز است.
هر شئی وهله ایست از یک کلاس ، کلاس موجودی قابل لمس نیست، در حالیکه شئی موجودی است قابل لمس که به کلاس خود موجودیت داده است.
مثلاً ، انسان یک کلاس است در حالیکه شما نمونه ای هستید از کلاس انسان؛ شما موجودیت دارد در حا لیکه چیزی به نام انسان وجود خارجی ندارد ، بلکه در اشیاء خاص ( من ، شما، دیگران) موجودیت مییابد.
موتور سیکلت ما دارای رفتارهایی هم هست، رفتارهایی مانند روشن شدن ، خاموش کردن، تعویض دنده،سرعت گرفتن، ترمز کردن و غیره.
وراثت، واسط ها و بسته ها وراثت ( InheritanCe) وراثت یکی از کلیدی ترین مفاهیم برنامه نویسی شیئی گراست و تأیثر مستقیمی روی نحوه طراحی و نوشتن کلاس ها جاوا دارد.
وراثت مکانیزمی است برای تغییر شکل دادن به کلاس ها و استفاده مجدد از آنها: با مکانیزم وراثت می توان به طور خودکار از اطلاعات کلاس های دیگر استفاده کرد.
هر کلاس یک فوق کلاس superclass و یک یا چند زیر کلاس subclass دارد.
هر کلاس از کلاس های بالاتر خود در این سلسله مراتب ارث می برد و به کلاس پایین تر از خود ارث می دهد.
هر زیر کلاس تمام متدها و متیرهای فوق کلاس خود را به ارث می برد و دیگر نیازی به تعریف مجدد آنها وجود ندارد.
بالاترین کلاس در سلسله مراتب کلاس های جاوا کلاسobject است و تمام کلاس های دیگر از این کلاس مشتق می شوند.
این کلاس تعیین کننده کلیترین متدها و خواص تمام کلاس های ذیل خود است.
معمولاً کلاس ها ضمن ارث بردن از کلاس های بالاتر از خود چیزهایی رابه آن اضافه و پیاده سازی میکنند.
ایجاد سسلسله مراتب کلاس وقتی تعداد کلاس ها زیاد شود ، منطقی است که آنها را در یک سلسله مراتب گرد آوریم تا بتوانیم نحوه به ارث رسیدن متدها و خواص را بهتر کنترل کنیم بدین ترتیب نیاز به دوباره نویسی کدها به حداقل رسیده و هنگام نیاز به تغیر کدها نیز این اصلاحات فقط در یک نقطه انجام خواهند شد و از آنجا به تمام نقاط دیگر تسری خواهند یافت.
وراثت چگونه عمل می کند؟
چگونه یک شیئ متغیرها و متدهای کلاس بالاتر را به طور خودکار بدست می آورد؟
در مورد متغیرها، وقتی شیئی بوجود میآید یک مسیر دسترسی به تمام متغیرهای کلاس مربوطه را بدست میآورد.
در مورد متدها هم وضع به همین منوا ل است و تعریف یک متد در اختیار تمام زیر کلاس ها قرار خواهد گرفت.
وقتی در یک شیئی متدی فراخوانی می شود، جاوا ابتدا در همان کلاسی که متد تعریف شده به دنبال کد آن می گردد اگر کد آن را نیافت.
در سلسله مراتب یک پله بالاتر رفته و در فوق کلاس بدنبال آن خواهد گشت تا زمانیکه کد متد را بیابید.