آموزش جاوا -47

به نام خدا
سلام دوستان
درس چهل و هفتم
متوقف ساختن ریسمان
متد stop() ، هرگاه که خروج از صفحه مربوط به اپلت موجب توقف آن گردد ، اجرا می شود و بهترین جا برای متوقف ساختن ریسمان در حال اجرا می باشد .
متد stop() مربوط به اپلت Revolve شامل جملات زیر است :
Public void stop() {
If (runner != null) {
Runner = null;
}
}

آموزش جاوا -46

به نام خدا
سلام دوستان
درس چهل و ششم
دریافت پارامترها در اپلت
برای بازیابی پارامترها از صفحه وب ، ناچارید تغییراتی در برنامه خود اعمال کنید ، در غیر این صورت این پارامترها نادیده گرفته خواهد شد.
متد getParameter() از کلاس JApplet، یک پارامتر را از برچسب موجود روی یک صفحه وب بازیابی می کند . نام پارامتر که توسط خصوصیت NAME در صفحه وب مشخص می شود ، به عنوان آرگومان getParameter() به کار می رود . آنچه در زیر آمده مثالی است از getParameter() در عمل :

String display1= getParameter("Headinel");

متد getParameter() تمامی پارامترها را به شکل رشته باز می گرداند ، لذا در صورت نیاز ناچارید آنها را به انواع دیگر تبدیل کنید .

آموزش جاوا -45

به نام خدا
سلام دوستان
درس چهل و پنجم
فرستادن پارامترها از صفحه وب
یکی از دلایل استفاده از پارامتر در اپلتهای جاوا ، بیزاری و هراس از کامپایل کردن می باشد . پارامترها شما را قادر می سازند که عناصر اپلت را بدون هیچ گونه ویرایش و یا کامپایل کردن مجدد تغییر دهید . آنها همچنین برنامه را بسیار مفیدتر می سازند .
پارامترها در صفحه وبی که شامل اپلت می باشد، ذخیره می شوند. آنها با استفاده از برچسب در HTML و دو خصوصیت آن : NAME و VALUE ، ایجاد می شوند. یک اپلت می تواند می تواند بیش از یک برچسب باشد ، اما همه آنها باید بین دو برچسب (یا برچسبهای و که آنها نیز از پارامترها پشتیبانی می کنند) قرار داشته باشند. مانند مثال زیر:



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

آموزش جاوا -44

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

آموزش جاوا -43

به نام خدا
سلام دوستان
درس چهل و سوم
استفاده از برچسب جدید

آموزش جاوا -42

به نام خدا
سلام دوستان
درس چهل و دوم
استفاده از متد drawstring()
برای نمایش یک متن در پنجره اپلت ، از متد drawstring() از کلاس Graphics2D و یا متد مشابه ، در کلاس Graphics استفاده می شود .
عملکرد drawstring() مشابه متد System.out.println() می باشد که اطلاعات را در خروجی استاندارد سیستم نمایش می دهد .
البته پیش از آنکه بتوانید متد drawstring() از کلاس Graphics2D را بکار ببرید ، باید یک شیء Graphics2D داشته باشید که نمایشگر پنجره اپلت باشد .
متد paint() در تمام اپلتها شامل یک شیء Graphics ، به عنوان تنها آرگومان خود ، می باشد . این شیءنمایانگر پنجره اپلت بوده و لذا می تواند برای ایجاد یک شیء Graphics2D که آن نیز مشخص کننده این پنجره اپلت بوده و لذا می تواند برای ایجاد یک شیء Graphics2D که آن نیز مشخص کننده این پنجره باشد ، به کار رود .
و حتما می دانید که از قالب ریزی (casting) برای تبدیل یک شیء Graphics به یک شیء Graphics2D استفاده می کنیم .Graphics2D یک زیر کلاس از Graphics می باشد و این امر استفاده از جمله زیر را ممکن می سازد :

Graphics2D Screen2D=(Graphics2D)Screen;
این جمله یک شیء Graphics به نام Screen را به یک شیء Graphics2D به نام Screen2D تبدیل می کند .
پس از ایجاد یک شیء Graphics2D ، می توانید متد drawstring را برای نمایش متن در ناحیه ای از صفحه که به این شیء مربوط می باشد ، فراخوانی کنید .
سه آرگومان زیر به متد drawstring() فرستاده می شوند :
• متنی برای نمایش ، که می تواند از چندین رشته و متغییر که با عملگر + به هم پیوسته اند ، تشکیل شده باشد .
• موقعیت x (در سیستم مختصات دو بعدی(x,y)) محلی که رشته در آنجا نمایش داده خواهد شد .
• موقعیت y محلی که رشته در آنجا نمایش داده خواهد شد .

آموزش جاوا -41

به نام خدا
سلام دوستان
درس چهل و یکم
قرار دادن اپلت در صفحۀ وب
اپلتها به همان روشی در صفحات وب قرار می گیرند که هر چیز غیر معمول دیگری در این صفحات قرار می گیرد . فرمانهای HTML برای توصیف اپلت به کار می روند و مرورگر وب آن را همراه سایر بخشهای صفحه Load می کند .

یکی از راههای قرار دادن اپلتها در صفحات وب ، استفاده از یک برچسب < APPLET> و چندین خصوصیت می باشد . مورد زیر مثالی است از HTML مورد نیاز برای قرار دادن یک اپلت را در یک صفحه وب :

خصوصیت CODE نام فایل کلاس اپلت را تعیین می کند. اگر یک اپلت مشتمل بر چندین فایل کلاس باشد ، CODE باید به فایل کلاس اصلی ، که زیر کلاسی از کلاس JApplet می باشد ، اشاره کند.
اگر هیچ خصوصیتی ار نوعCODEBASE وجود نداشته باشد ، تمام فایلهای وابسته به اپلت ، باید در همان پوشه ای قرار گیرند که صفحه وب در آن واقع است . CODEBASE باید به پوشه یا زیر پوشه ای اشاره کند که بتوان اپلت و فایلهای وابسته را در آن یافت .
خصوصیات HEIGHT و WIDITH اندازه دقیق پنجره اپلت را در صفحه وب معین می کنند .
مابین برچسبهای می توانید نوعی جایگزین ، برای کاربران وبی که نرم افزار مرورگرشان توانایی اجرای برنامه های جاوا را ندارد ، فراهم کنید.
خصوصیت دیگری که می توانید با اپلت به کار برید ، ALIGN می باشد . این خصوصیت معین می کند. که اپلت نسبت به آنچه در اطرافش قرار دارد ، از قبیل متن و گرافیک ، چگونه نمایش داده خواهد شد. مقادیر مربوطه شامل ALIGN=”left” وALIGN=”right” و غیره می باشد .

آموزش جاوا -40

به نام خدا
سلام دوستان
درس چهلم
متد () destroy
متد () destroy نقطۀ مقابل متد init()می باشد. این متد درست قبل از اتمام اجرا و بسته شدن اپلت به کار می افتد این متد در مواردی نادر که بعضی چیزها در طی یک برنامه تغییر می کنند و باید به حالت اولیه خود بازگردانده شوند ، به کار می رود . این متد نیز بیشتر در متحرک سازی مورد استفاده قرار خواهد گرفت ، تا دیگر انواع برنامه ها .

آموزش جاوا -39

به نام خدا
سلام دوستان
درس سی و نهم
متدهای start() و stop()
در هر نقطه ای که اجرای برنامه اپلت شروع شود ، متد start() وارد عمل خواهد شد . هنگام شروع برنامه ، متدinit() ، به دنبال متد () start فراخوانی می شود . پس از آن ، در بسیاری موارد هیچ عاملی موجب راه اندازی مجدد متد ()start ، باید اجرای اپلت در مقطع یا مقاطع خاصی متوقف گردد .
هنگامی که اجرای اپلت متوقف می شود ، متد () stop فراخوانی می گردد . ممکن است این اتفاق هنگامی رخ دهد که کاربر ، صفحۀ وب شامل اپلت را ترک کرده ، وارد صفحۀ دیگری بشود . همچنین فراخوانی مستقیم متد () stop نیز می تواند سبب وقوع این رویداد شود .
در برنامه هایی که ضمن آموختن زبان جاوا خواهید نوشت ، start() و() stop بیشتر در متحرک سازی مورد استفاده قرار خواهند گرفت .
_________________

آموزش جاوا -38

به نام خدا
سلام دوستان
درس سی و هشتم
متد init( )
متد init()تنها یکبار و در ابتدای اجرای اپلت ، وارد عمل می شود . در نتیجه ، مکانی مناسب برای تنظیم مقادیر اشیاء و متغییرهایی است که اپلت ، برای اجرای موفقیت آمیز به آنها نیاز دارد . این متد ، همچنین مکان مناسبی برای تنظیم فونتها ، رنگها و رنگ پس زمینه صفحه می باشد .
البته متغییرها و اشیاء نباید درون متدinit() ایجاد شوند . چرا که در این صورت تنها در محدوده این متد وجود خواهند داشت .
برای مثال ، اگر یک متغییر از نوع عدد صحیح ، به نام display داخل متد init() ایجاد کنید و بخواهید از آن در متد paint() استفاده برید هنگام کامپایل کردن برنامه یک خطا دریافت خواهید کرد .
تمامی متغییرهایی را که می خواهید در یک کلاس ، به عنوان متغییرهای شی به کار برید ، درست بعد از عبارت class و قبل از هر متدی ، ایجاد کنید
_________________

آموزش جاوا -37

به نام خدا
سلام دوستان
درس سی و هفتم
متد paint( )
متد paint() ، بخشی از تمامی اپلتهای شما خواهد بود ، چرا که بدون آن توانایی نمایش هیچ چیز را نخواهید داشت.
هر گاه چیزی در پنجره اپلت نیاز به نمایش و یا نمایش دوباره داشته باشد ، متد paint( ) انجام وظیفه را به عهـده می گیرد.
متد paint() یک آرگومان می گیرد .مورد زیر مثالی است از یک متد paint() ساده :

public class paint(Graphics screen) {
//display statements go here
}

در اپلتهای جاوا 2 ، اولین جمله از متد paint( ) باید متد paint( ) را از کلاس ارشد خود صدا بزند . این کار تضمین می کند که پنجره اپلت به درستی ، به هنگام سازی شود . جمله زیر این وظیفه را انجام می دهد :

Super.paint(screen);

این مثال یک شی گرافیکی به نام screen را به متد paint() از کلاس ارشد می فرستد . این شی باید همان شیئی باشد که به متد paint()اپلت فرستاده شده است .
آموزش جاوا -32

آموزش جاوا -36

به نام خدا
سلام دوستان
درس سی و ششم
ادامه متد های استاندارد اپلت
در برنامه های کاربردی، اجرای برنامه با اولین عبارت داخل بلوک main() شروع می شود و با آخرین آکلاد بسته (}) که بلوک را می بندد ، پایان می پذیرد . در اپلت جاوا متدی تحت عنوان main() موجود نیست و لذا مکان مشخصی برای شروع برنامه وجود ندارد .
در عوض ، اپلت دارای گروهی از متدهای استاندارد است که هنگام اجرای آن ، در پاسخ به رویدادهای مشخصی ، وارد عمل می شوند .
موارد زیر رویدادهایی هستند که می توانند یکی از متدهای اپلت را وارد عمل کنند :
• برنامه برای اولین بار Load می شود .
• رویدادهایی که مستلزم نمایش دوباره پنجره اپلت می باشند .
• برنامه توسط مرورگر متوقف می شود .
• برنامه پس از توقف ، دوباره کار خود را آغاز می کند .
• اجرای برنامه پایان یافته ، برنامه Unload می شود .

مثال زیر چارچوب یک اپلت را نشان می دهد :
Public class Skeleton extendes com.sun.java.swing.JApplet {
//program will go here
}
برخلاف برنامه های کاربردی ، فایلهای کلاس اپلت برای اینکه بتوانند کار خود را انجام دهند .باید public باشند .
کلاس اپلت شما وارث تمام متدهایی است که هنگام نیاز به طور خودکار وارد عمل می شوند : destroy(),stop(),start(),paint(),init() . لیکن هیچکدام از این متدها کاری انجام نمی دهند . اگر می خواهید که در اپلت شما اتفاق خاصی بیفتد ، باید این متدها را با نسخه های جدیدی در برنامه اپلت خود ، جایگزین کنید . متدهایی که اغلب جایگزین خواهید کرد pint() وinit() می باشند.
_________________

آموزش جاوا -35

به نام خدا
سلام دوستان
درس سی و پنجم
متدهای استاندارد اپلت
اولین کار در ایجاد اپلت آن است که آن را در یک زیر کلاس از jApplet در نظر بگیریم که بخشی از بسته com.sun.jsva.swing می باشد . این بسته که Swing نامیده می شود ، مجموعه از کلاسها را برای ایجاد یک رابط کاربر گرافیکی ، گرافیک کامپیوتری و دیگر عناصر بصری برای برنامه های کامپیوتری ، ارائه می هد.
یک اپلت به عنوان یک پنجره بصری ، داخل یک صفحه وب عمل می کند بنابراین JApplet بخشی است از Swing همراه با دکمه های قابل کلیک ، نوارهای مرورگر و دیگر اجزای یک رابط کاربر .
JApplet یک زیر کلاس از Applet می باشد که کلاسی است از بسته java.applet
قرار گرفتن در این سلسله مراتب اپلتهای نوشته شده را قادر می سازد که از تمامی رفتارها و خصوصیاتی که برای اجرا در صفحه جهانی وب مورد نیاز است ، استفاده کنند . اپلتهای شما ، بدون اینکه جمله ای به آنها بیفزایید . توانایی تعامل با مرورگرهای وب را خواهند داشت ، خود را load و unload خواهند کرد . در پاسخ به تغییرات در پنجره مرورگر ، پنجره های خود را دوباره ترسیم کرده ، وظایف ضروری دیگری را انجام خواهند داد.

آموزش جاوا -34

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

آموزش جاوا -33

به نام خدا
سلام دوستان
درس سی و سوم
JavaBeans
JavaBeans کلاسهای جاوایی هستند که به منظور استفاده مجدد طراحی شده اند . این کلاسها که در بسیاری از زبانهای برنامه نویسی ، عناصر نرم افزاری (software components) نامیده می شوند ، تحت مجموعه ای از استاندارد از قواعد ، توسعه می یابند .
برای توسعه beans ، علاوه بر کیت توسعه جاوا (JDK) ، نیازمند ابزار برنامه نویسی دیگری نیز هستید . شرکت Sun Microsystems ابزار خود را تحت عنوان Beans Development Kit (کیت توسعه Beans) در سایت http://java.sun.com/beans/software
ارائه می دهد .
کیت توسعه Beans که BDK نیز نامیده می شود ، شامل یک ابزار بصری (visual) به نام BeanBox است که برای افزودن Beans به برنامه های جاوا و فراهم کردن زمینه همکاری اشیای Bean با همدیگر به کار می رود .
برنامه نویسی Bean یکی از جنبه های تخصصی جاواست و یادگیری کامل آن تنها پس از تسلط بر اصول پایه ای زبان میسر است . اما برنامه نویسان مبتدی با استفاده از Bean های موجود می توانند به نتایج قابل توجهی دست یابند پس خالی از فایده نخواهد بود اگر همزمان با فراگیری برنامه نویسی با JavaBean نیز آشنا شوید .

آموزش جاوا -32

به نام خدا
سلام دوستان
درس سی و دوم
کار کردن با اشیای موجود
در آغاز معرفی جاوا ، به اشتراک گذاشتن اشیاء موضوعی غیر رسمی بود . برنامه نویسها اشیای خود را به گونه ای می نوشتند که حداکثر استقلال را داشته باشد و با استفاده از متغییرهای (private) و متدهای عمومی (public) جهت خواندن و نوشتن آن متغییرها ، اشیای خود را در برابر استفاده نادرست محافظت می کردند .
اگراستانداردی برای توسعه اشیای قابل کاربرد مجدد وجود داشته باشد به اشتراک گذاشتن اشیا قوت بیشتری خواهد گرفت . مزایای وجود یک استاندارد عبارت است از :
• نیاز چندانی به مستند سازی چگونگی کارکرد اشیا وجود نخواهد داشت .
• با استفاده از استاندارد امکان طراحی ابزارهای توسعه (development tools) فراهم می شود که استفاده از این اشیا را آسانتر می سازد .
• اشیایی که از این استاندارد پیروی کرده اند ، بدون نیاز به برنامه نویسی خاص می توانند با یکدیگر تعامل و همکاری کنند
استاندارد مربوط به توسعه اشیای قابل کاربرد مجدد در جاوا ، JavaBeans نام دارد و هر شی ء منفرد از این مجموعه یک Bean نامیده می شود .
_________________

آموزش جاوا -31

به نام خدا
سلام دوستان
درس سی و یکم
استفاده از this و super در یک زیر کلاس
دو کلمه کلیدی بسیار مفید جهت استفاده در زیرکلاسها عبارتند از this و super . کلمه کلیدی this برای رجوع به شی ء جاری به کار می رود .هنگامی که کلاسی ایجاد می کنید و ناچار به رجوع به شی ء خاصی از این کلاس هستید می توانید از this استفاده کنید ، مانند جمله زیر :
This.title=”Cagney”;
این جمله متغییر title از این شی ء را برابر Cagney قرار می دهد.

کلمه کلیدی super نیز کاربرد مشابهی دارد و به کلاس ارشد مستقیم آن شی ء رجوع می نماید. Super را می توان به چندین روش مورد استفاده قرار داد :
• برای رجوع به یک متد سازنده از کلاس ارشد ، مانند super(“Adam”,12) .
• برای رجوع به متغییری از کلاس ارشد، مانند super.Hawaii=50 .
• برای رجوع به یک متد از کلاس ارشد ، مانند super.dragNet() .
یکی از کاربردهای کلمه کلیدی super در متد سازنده ، مربوط به یک زیر کلاس می باشد . از آنجایی که هر زیرکلاس کلیه رفتارها و خصوصیات کلاس ارشد خود را به ارث می برد ، شما باید هر متد سازنده از زیر کلاس را با یک متد سازنده از کلاس ارشد آن همراه کنید . در غیر اینصورت برخی از رفتارها و خصوصیات به درستی تنظیم نخواهد شد و زیر کلاس عملکرد صحیحی نخواهد داشت .
جهت حصول اطمینان از فراخوانی متد سازنده کلاس ارشد ، باید این متد را در اولین جمله از سازنه زیر کلاس فرا خوانی کنید و برای این منظور باید از کلمه کلیدی super استفاده کنید ، مانند جملات زیر :
Publiv ReadFile(String name,int length){
Super(name,length);
}
مثال فوق ، متد سازنده ای است از یک زیر کلاس که با استفاده از super(name,lenth) متد سازنده متناظر از ارشد خود را فرا می خواند.

آموزش جاوا -30

به نام خدا
سلام دوستان
درس سی ام
برقراری ارث بری
برای قرار دادن یک کلاس به عنوان زیرکلاس کلاسی دیگر، از جمله extends استفاده می کنیم. مانند :

Class Animatedlogo extends java.applet.JApplet {
// behavior and attributes go here
}

در اینجا جمله extends ،کلاس AnimatedLogo را به عنوان زیر کلاس Japplet قرار می دهد. کلیه اپلتهای جاوا 2 باید زیرکلاسی از Japplet باشند، چرا که برای اجرا روی وب جهانی به کارکرد این کلاس نیازمندند.
برای دوباره نویسی یک متد، باید آن را به همان شکلی که در کلاس ارشد مربوطه آغاز می گردد، آغاز کنید . یک متد public بایدpublic باقی بماند، مقدار بازگردانده شده توسط متد باید یکسان باشد و تعداد و نوع آرگومانهای ارسالی به متد نیز نباید تغییر یابد.
_________________

آموزش جاوا -29

به نام خدا
سلام دوستان
درس بیست و نهم
دوباره نویسی متدها
برخی از متدهای تعریف شده در کلاس Applet، در یکی از کلاسهای ارشد آن نیز تعریف شده اند. مثلاً متد resize( ) هم در کلاس Applet وهم در کلاس Component تعریف شده است . این متد برای تغییر اندازه یک عنصر روی یک رابط کاربر گرافیکی به کار می رود. اگر متدی هم در زیرکلاس و هم در کلاس ارشد آن تعریف شده باشد، متد تعریف شده در زیرکلاس، مورد استفاده قرار می گیرد. این امر ، زیرکلاس را قادر می سازد که برخی از رفتارها و خصوصیات کلاسهای ارشد خود را تغییر دهد، جایگزین کند و یا به کلی از بین ببرد.
ایجاد یک متد جدید در یک زیر کلاس، به منظور تغییر رفتار به ارث برده شده از یک کلاس ارشد را دوباره نویسی (overriding) متد می نامند. در مواردی که رفتار به ارث برده شده، ممکن است منجر به نتایج نامطلوب شود، باید متد مربوطه را دوباره نویسی کنید.

آموزش جاوا -28

به نام خدا
سلام دوستان
درس بیست و هشتم
به ارث بردن رفتارها و خصوصیات
رفتارها و خصوصیات هر کلاس ، ترکیبی هستند از دو چیز : رفتارها و خصوصیات خود آن کلاس و رفتارها و خصوصیاتی که از کلاسهای ارشد خود به ارث می برد.
برخی از رفتارها و خصوصیات Applet از این قرارند:
• متدequals( ) معین می کند که آیا شیء Applet دارای مقداری برابر با شیء دیگر هست یا نه .
• متد setBackground( ) رنگ زمینه پنجره اپلت را تنظیم می کند .
• متد add( ) برای افزودن عناصر رابط کاربر از قبیل دکمه ها و فیلدهای متنی به اپلت به کار می رود.
• متد showStatus( ) سطری از متن را درون نوار وضعیت مرورگر وب نمایش می دهد.
کلاس Applet می تواند از کلیه این متدها استفاده کند، گرچه تنها متدی که از کلاسهای دیگر به ارث نبرده showStatus( ) است . متد equals( ) در Object ، متد SetBackground( ) در Component( ) و متد add( ) در Container تعریف شده است .

آموزش جاوا -27

به نام خدا
سلام دوستان
درس بیست و هفتم
استفاده از کلمه کلیدی this
با توجه به اینکه درون یک کلاس می توان به متغییرها ومتدهای همان کلاس و کلاسهای دیگر رجوع کرد، در برخی شرایط متغیری که به آن رجوع می شود، ممکن است باعث ابهام وسردرگمی شود. یک روش برای کاستن از این گونه ابهامات ، استفاده از جمله this می باشد. با استفاده از این جمله، یک برنامه می تواند به شیء مربوط به خود رجوع کند.
هنگام استفاده از متدها یا متغیرهای یک شیء شما نام آن شیء را همراه بایک علامت نقطه، پیش از نام متد یا متغیر قرار می دهید.

مثال:
Virus chichenpox=new Virus( );
Chichenpox.name=”LoveHandles”;
Chichenpox.setSeconds(75);

جملات فوق یک شیء جدید Virus به نام chickenpox ایجاد کرده ، متغیر name از chickenpox را مقداردهی می کنند و سپس متد setSeconds( ) از chickenpox را فرامی خوانند .
گاهی در یک برنامه لازم است که به شیء جاری یا به عبارت دیگر، به شیء مربوط به خود برنامه رجوع کنید.
برای مثال ، درون کلاس Virus ممکن است متدی داشته باشیم که دارای متغیری به نام author باشد :

Void public checkAuthor( ) {
String athor=null;
}
متغیر author فقط در حوزه دید متد checkAuthor( ) وجود دارد و با متغیر شیء author متفاوت است . اگر بخواهید درون این متد به متغیر author از شیء جاری رجوع کنید، ناچار به استفاده از جمله this خواهید بود :

system.out.println(this.author);

با استفاده از this مشخص می کنید که به کدام متغیر یا متد رجوع کرده اید هر جایی از یک کلاس که امکان رجوع به یک شیء توسط نام آن وجود داشته باشد، می توانید از this استفاده کنید . می توانید از جمله به شکل زیر استفاده کنید :
verifyData(this);

آموزش جاوا -26

به نام خدا
سلام دوستان
درس بیست وششم
قرار دادن یک کلاس درون کلاس دیگر
اگر چه هر برنامه جاوا معمولاً به عنوان یک کلاس در نظر گرفته می شود، در بسیاری از موارد ، یک برنامه ممکن است برای انجام کار خود به بیش از یک کلاس احتیاج داشته باشد. برنامه های جند کلاسه (multiclass) از یک کلاس اصلی و چندین کلاس کمکی (helper class) تشکیل می یابند.
به عنوان مثال می توان یک اپلت جاوا را در نظر گرفت که در بخشی از رابط کاربر گرافیکی خود، عنوان متحرکی را نمایش می دهد.
برای تعریف کلاسهای کمکی در برنامه ای که به چندین کلاس تقسیم شده است، دو روش وجود دارد ، روش اول آن است که هر کلاس به صورا جداگانه تعریف می شود، مانند:
Public class wreakHavoc {
String author=”Ignoto”;

Public void infectfile( ) {
virusCode vic=new virusCode(1024);
}
}
class virusCode {
int vsize;

virusCode(int size) {
vsize=size;
}
}
در این مثال virusCode به عنوان یک کلاس کمکی برای wreakHavoc به کار رفته است . کلاسهای کمکی اغلب در همان فایل مبدا .java که کلاس اصلی در آن واقع است ، تعریف می شوند. با کامپایل کردن این فایل مبدا، چندین فایل کلاس تولید خواهد شد .

روش دیگر برای تعریف کلاسهای کمکی آن است که آنها را درون کلاس اصلی قرار دهیم . در این حالت، کلاس کمکی یک کلاس درونی (inner class) نامیده می شود.
کلاس درونی ، بین آکلاد باز و بسته یک کلاس دیگر تعریف می شود، مانند:
Public class wreakMoreHavoc {
String author=”Ignoto”;

Public void infectFile( ) {
virusCode vic=new virusCode(1024);
}
class virusCode {
int vsize;
virusCode(int size) {
vsize=size;
}
}
}
کلاسهای درونی را می توان مشابه سایر کلاسهای کمکی مورد استفاده قرار داد. تنها اختلاف آن است که کلاسهای درونی پس از کامپایل شدن، نام جدیدی دریافت می کنند که شامل نام کلاس اصلی آنها نیز می باشد

آموزش جاوا - 25

به نام خدا
سلام دوستان
درس بیست و پنجم
حوزه دید متغیرها درون یک متد
وقتی یک متغیر یا شیء را درون یکی از متدهای یک کلاس ایجاد می کنید، فقط درون همان متد می توانید از آن استفاده کنید. علت این امر، مفهومی است به نام حوزه دید متغیر (variable scope) .
حوزه دید ، بخشی از برنامه است که یک متغیر در آن وجود دارد. با خروج از این بخش ، دیگر نمی توان از آن متغییر استفاده کرد.
محدوده یک متغیر در برنامه با علائم { و } تعریف می شود. متغیری که بین این دو علامت ایجاد شده ، خارج از آنها نمی تواند مورد استفاده قرار گیرد .برای مثال جملات زیر را در نظر بگیرید:

If (numfile<1) {
String warning=”no files remaining.”;
}
system.out.println(warning);

این مثال عملکرد صحیحی نخواهد داشت، چرا که متغیر warning درون آکلادهای مربوط به جمله بلوک if تعریف شده است که حوزه دید آن را مشخص می سازند. این متغیر خارج از آکلادها وجود ندارد و لذا متد system.out.println( ) نمی تواند از آن به عنوان یک آرگومان استفاده کند.

آموزش جاوا -24

به نام خدا
سلام دوستان
درس بیست وچهارم
متدهای کلاس
متدهای کلاس نیز مانند متغیرهای کلاس، روشی هستند برای ایجاد کارکردهایی که با کل یک کلاس در ارتباطند، نه با شیء خاص از آن کلاس.
اگر متدی یک شیء خاص از کلاس را تحت تاثیر قرار ندهد، باید به صورت متد کلاس تعریف شود .مانند متد parseInt() از کلاس Integer . این متد برای تبدیل یک رشته به متغییری از نوع int به کار می رود مانند:

Int time=integer.parsInt(timetext);
برای تبدیل یک متد به متد کلاس، قبل از نام آن از static استفاده کنید ، مانند زیر :

Static void showVirusCount() {
System.out.println(“there are”+virusCount+”viruses.”);
}
متد showVirusCount( ) یک متد کلاس است که مقدار این متغییر را نمایش می دهد و باید آن را توسط جمله ای به صورت زیر فراخوانی کنید:
Virus. showVirusCount( );

آموزش جاوا -23

به نام خدا
سلام دوستان
درس بیست و سوم
متدهای سازنده
برای ایجاد یک شیء در برنامه، از جمله new استفاده می شود، مانند زیر:
Virus typhoid=new virus( );
این جمله، یک شیء virus جدید به نام typhoid ایجاد می کند. وقتی از جمله newاستفاده می کنید، متد خاصی از کلاس آن شیء فراخوانی می شود. این متد سازنده (constructor) نامیده می شود، چرا که عملیات مربوط به ایجاد شیء را انجام می دهد .هدف اصلی از وجود سازنده، مقداردهی کلیه متغیرهایی است که برای کارکرد صحیح شیء ، مورد نیاز می باشند .
متدهای سازنده ، مانند سایر متدها تعریف می شوند، با این تفاوت که قادر به بازگرداندن مقدار نمی باشند. در زیر دو متد سازنده برای کلاس virus را مشاهده می کنید:
Public virus() {
author=”Ignoto”;
maxFileSize=30000;
}
public virus(string name,int size) {
author=name;
maxFileSize=size;
}
با استفاده از آرگومانهای مختلف ، می توان برای یک کلاس، چندین سازنده تعریف کرد. در مثال بالا ، سازنده اول وقتی فراخوانی می شود که یک جمله new مانند زیر به کار رفته باشد:
Virus mumps=new virus();
سازنده دیگر در صورتی فراخوانده خواهد شد که در جمله new از یک رشته و یک عدد صحیح به عنوان آرگومان استفاده شده باشد، مانند :
Virus rubella=new virus(“April Mayhem”,60000);
اگر برای یک کلاس هیچ متد سازنده ای تعریف نکنید، این کلاس ، سازنده ای از کلاس ارشد خود که هیچ آرگومانی نمی گیرد، به ارث خواهد برد. در ضمن ، بسته به کلاس ارشد به کار رفته، کلاس فوق ممکن است متدهای سازنده دیگری را نیز به ارث ببرد.
هر کلاسی باید دارای یک متد سازنده باشد که تعداد و نوع آرگومانهای آن با آنچه در جمله new مربوط به ایجاد اشیای آن کلاس به کار رفته ، یکسان باشد.
مثلاً برای ایجاد اشیای از نوع virus که دارای دو سازنده به صورت virus() و virus(string name,int size) می باشد، تنها می توان از دو نوع جمله new استفاده کرد : یکی بدون آرگومان و دیگری دارای دو آرگومان که اولی از نوع رشته و دومی از نوع عدد صحیح می باشد .

آموزش جاوا -22

نام خدا
سلام دوستان
درس بیست و دوم
متدهای مشابه با آرگومانهای مختلف
با ارسال آرگومان به یک متد ، می توان عملکرد آن را تحت قرار داد.متدهای مختلف در یک کلاس می توانند دارای اسامی مختلف باشند، لیکن امکان اینکه چند متد دارای نام یکسان باشند نیز وجود دارد ، به شرط اینکه آرگومانهای آنها متفاوت باشد .
دو متد می توانند دارای اسامی یکسان باشند، به این شرط که تعداد آرگومانهای آنها مختلف بوده و یا نوع برخی از آرگومانهای آنها فرق داشته باشد.
برای مثال، کلاس Virus می تواند دارای دو متد tauntUser() (به معنای طعنه زدن به کاربر) باشد که یکی از آنها آرگومانی نگرفته باشد و یک طعنه عمومی را نمایش دهد و دیگری متن طعنه را به صورت یک آرگومان از نوع رشته دریافت کند. مانند زیر:
Void tauntUser() {
System.out.println(“the problem is not with your set,but”+”with yourselves.”);
}
void tauntUser(string taunt) {
system.out.println(taunt);
}

آموزش جاوا -21

به نام خدا
سلام دوستان
درس بیست و یکم
معرفی یک متد
جمله ای که متدها توسط آن ایجاد می شوند، شبیه جمله ای است که یک کلاس را آغاز می کند. هر دو بین پرانتزهایی که پس از نامشان قرار می گیرد، قادر به دریافت آرگومان بوده ، هر دو از علائم { و } برای مشخص کردن شروع و پایان خود استفاده می کنند .
تفاوت اصلی آن است که متدها قادر به بازگرداندن یک مقدار می باشند . این مقدار می تواند یکی از انواع ساده، مانند اعداد صحیح یا مقادیر Boolean و یا یک کلاس می باشد. برای تعریف متدی که مقداری را برنمی گرداند، از جمله void استفاده می کنیم .
نمونه زیر ، مثالی است از متدی که کلاس Virus می تواند برای آلوده کردن فایلها از آن استفاده کند:
Public Boolean intectFile(string filename) {
Boolean success = false;
// file-infecting statements would be here
return success;
}

آموزش جاوا -20

به نام خدا
سلام دوستان
درس بیستم
ایجاد رفتار با استفاده از متدها
خصوصیات هر کلاس، نگاهدارنده اطلاعات مربوط به آن کلاس می باشند، لیکن درعمل ، قادر به انجام هیچ کاری نیستند . برای اینکه یک کلاس بتواند کارهایی را که برای انجام آنها به وجود آمده ، انجام دهد ،باید رفتار لازم را برایش ایجاد کنید .
رفتار عبارت است از کلیه بخشهایی از یک کلاس که وظیفه معینی را انجام می دهند. هر یک از این بخشها را یک متد(method) می نامیم.
متدها نیز مانند متغییرها، در ارتباط با یک شیء یا یک کلاس به کار می روند. به نام متد، همراه با یک نقطه به دنبال نام شیء یا کلاس قرار می گیرد. مانند screen.drowString() یا Integer.parselnt() .
_________________

آموزش جاوا -19

به نام خدا
سلام دوستان
درس نوزدهم
ایجاد متغیرهای کلاس
هر شیء به محض ایجاد ، شامل یک کپی مخصوص به خود ، از کلیه متغییرهایی است که بخشی از کلاس مربوط به آن شیء می باشند. به عنوان مثال ، هر شیء ایجاد شده از کلاس Virus شامل نسخهای مربوط به خود ، از متغییرهای newSeconds,maxFileSize,author می باشد . اگر یکی از این متغییرها را در یک شی ء تغییر دهید، تاثیری روی همان متغییر از شیء Virus دیگر نخواهد داشت .
گاهی یک خصوصیت بیش از آنکه مربوط به یک شیء خاص باشد، مربوط به خود کلاس است.
متغییرهایی که تاکنون برای اشیاء ایجاد می کردیم متغییرهای شیء (object variables) نامیده می شوند، چرا که وابسته به یک شیء خاص می باشند . متغییرهای کلاس(class variables) ، متغییرهایی هستند که وابسته اند به یک کلاس از اشیا و نه به یک شیء خاص .
هر دو نوع این متغیرها به یک شکل ایجاد می شوند و مورد استفاده قرار می گیرند ، با این تفاوت که متغییرهای کلاس با استفاده از جمله static ایجاد می شوند. مثال زیر ، یک متغیر کلاس را برای کلاس Virus ایجاد می کند :

Static int virusCount=0;

نحوه تغییر مقدار یک متغییر کلاس ، تفاوتی با چگونگی تغییر یک متغیر شیء ندارد. اگر یک شیء Virus به نام tuberculosis داشته باشید ، می توانید کلاس virusCount را با استفاده از جمله زیر تغییر دهید:

Tuberculosis.virusCount++;

ولی از آنجایی که متغیرهای کلاس با کل کلاس ارتباط دارند و نه به یک شیء خاص، می توانید به جای نام شیء ، از نام کلاس استفاده کنید :

Virus.virusCount++;

هر دو جمله فوق عمل یکسانی انجام می دهند، لیکن استفاده از نام کلاس ، هنگام کار با متغیرهای کلاس بهتر است ، چرا که بلافاصله مشخص می کند که متغیر مورد نظر ، یک شیء نیست ، بلکه یک متغیر کلاس است . اگر هنگام کار با متغیرهای کلاس ، همواره از اسامی اشیا استفاده کنید، فهمیدن اینکه آیا یک متغیر کلاس است یا نه ، بدون بررسی دقیق کد مربوط به کلاس ، امکان پذیر نخواهد بود

آموزش جاوا - 18

به نام خدا
سلام دوستان
درس هجدهم
ایجاد متغییرها
خصوصیات یک شیء مشخص کننده کایه متغییرهایی هستند که این شیء برای عملکرد خود بدانها نیازمند است . این متغییرها می توانند انواع داده ای ساده ای از قبیل String یا Graphics باشند.متغییرهای یک شیء را در تمامی برنامه مربوط به آن ، یعنی در تمامی متدهای آن شیء، می توان مورد استفاده قرار داد. این متغییرها بلافاصله پس از جمله class مربوط به شیء و قبل از کلیه متدهای آن تعریف می شوند.
یکی از چیزهای مورد نیاز برای یک شیءVirus ، روشی است برای دانستن اینکه آیا یک فایل قبلاً آلوده شده است یا نه . برخی از ویروسهای کامپیوتری برای این منظور، محتویات فیلدی از فایل را که زمان آخرین تغییر آن فایل را نگهداری می کند، تغییر می دهند.
برای مثال یک ویروس ممکن است زمان فوق را از 13:41:20 به 13:41:61 تغییر می دهد . از آنجایی که هیچ فایلی در شرایط عادی در ثانیه 61 تغییر نمی یابد ، این زمان می تواند تعیین کننده آلودگی فایل باشد .
شیء Virus فیلد ثانیه از زمان تغییر فایل را به عدد 86 تغییر می دهد(علت انتخاب این عدد ، اصطلاح عامیانه ای است در زبان انگلیسی که در آن ، این عدد به معنای دور انداختن و طرد کردن به کار می رود). این مقدار در یک متغییر صحیح به نام newSeconds ذخیره خواهد شد.
جملات زیر ، تعریف کلاس به نام Virus را با یک خصوصیت به نام newSeconds و دو خصوصیت دیگر آغاز می کنند :

Public class Virus {
Public int newSeconds = 86;
Public String author = “Sam Snett”;
Int maxFileSize = 30000;
هر سه متغییر newSeconds و maxFileSize و author جزو خصوصیات این کلاس می باشند . قرار دادن جملاتی مانند public را در معرفی یک متغییر ، کنترل دسترسی (access control) می نامیم . چرا که این جملات چگونگی دسترسی سایر کلاسها به این متغییر را مشخص می سازند .
متغییر newSeconds دارای مقدار اولیه 86 است و جمله ای که آن را ایجاد می کند ، با public شروع می شود . public کردن به این معنا است که هر برنامه ای که از اشیای Virus استفاده می کند، می تواند این متغییر را تغییر دهد . مثلاً اگر عدد 92 برای این برنامه حائز اهمیت باشد ، می تواند مقدار newSeconds را به این عدد تغییر دهد. فرض کنید که برنامه ای یک شی Virus به نام influenza ایجاد کند. این برنامه می تواند مقدار متغییر newSeconds این شیء را توسط جمله زیر تنظیم کند :

influenza.newSeconds=92;
در کلاس Virus، متغییر author نیز public است و لذا برنامه های دیگر می توانند آزادانه مقدار آن را تغییر دهند. لیکن متغییر maxFileSize تنها در درون خود این کلاس قابل استفاده است .
با public کردن یک متغییر از یک کلاس ، این کلاس کنترل خود را روی چگونگی استفاده از آن متغییر، توسط برنامه های دیگر از دست می دهد. در بسیاری از موارد ، این امر مساله خاصی ایجاد نخواهد کرد. برای مثال ، متغییر author می تواند مساوی هر نام یا لقبی که مو لف ویروس را مشخص کند ، قرار گیرد.
محدود کردن دسترسی به یک متغییر باعث جلوگیری از خطاهایی می شود که ممکن است در اثر تخصیص مقادیر نادرست به آن متغییر رخ دهد. در مورد کلاس Virus، اگر متغییر newSeconds برابر عدد 60 یا عددی کوچکتر از آن قرار داده شود ، دیگر این کلاس به طور صحیح قادر به تعیین آلودگی فایلها نخواهد بود ، چرا که برخی از فایلها که بدون دخالت ویروس ، در همان ثانیه تغییر یافته اند ، از نظر این کلاس به عنوان فایلهای آلوده شناسایی خواهند شد . اگر کلاس Virus بخواهد از این مساله اجتناب کند، باید دو عمل زیر انجام پذیرد :
• متغییر newSeconds را از حالت public به حالت protected یا private تبدیل کنید. این جملات دسترسی به متغییر را محدودتر می سازند.
• رفتارهای لازم را برای تغییر مقدار این متغییر و گزارش کردن مقدار آن به دیگر برنامه ها به ابن کلاس بیفزایید.
یک متغییر protected فقط توسط خود کلاس ، کلیه زیر کلاسهای آن و کلیه کلاسهای موجود در همان بسته (package) قابل استفاده می باشد، بسته گروهی از کلاسهای مرتبط است که هدف مشترک را تعقیب می کنند.
یک متغییر private از نظر دسترسی، حتی از متغییر protected نیز محدودتر است و فقط توسط خود کلاس قابل استفاده می باشد . بهتر است که متغییر ها را عموماً به صورت protected یا private تعریف کنید . مگر در مواردی که بدانید تغییر یک متغییر توسط برنامه های دیگر، خللی به عملکرد کلاس مربوطه وارد نخواهد کرد .
جمله زیر newSecond را به یک متغییر private تبدیل می کند:
private int newSeconds=86;
نوع دیگری از کنترل دسترسی نیز وجود دارد که عبارت است از عدم استفاده از هیچ یک از جملات public,private,protected هنگام ایجاد متغییر .
وقتی یک متغییر بدون استفاده از جملات کنترل دسترسی را اغلب دسترسی پیش فرض(default access) یا دسترسی بسته (package access) می نامند ، هر چند جمله خاصی برای آن در نظر گرفته نشده است .

آموزش جاوا - 17

به نام خدا
سلام دوستان
درس هفدهم
تبدیل متغیرهای ساده به اشیا و بالعکس
تبدیل یک شی به یک متغیر ساده و یا عکس آن ، از طریق قالب ریزی امکان پذیر نمی باشد ، چرا که انواع اطلاعاتی در جاوا بسیار متفاوت می باشند .
در عوض ، بسته java.long به ازای هر نوع متغیر ساده ، دارای یک کلاس متناظر می باشد.
این کلاسها عبارتند از : Short , Long ,Integer , Float , Double , Character , Byte , Boolean
همانطور که می بینید نام کلیه این کلاسها با حروف بزدگ شروع می شود و این امر یادآور این نکته است که اینها همگی شیء می باشند ، نه متغییر ساده .
با استفاده از متدهای تعریف شده در هر یک از کلاسها و ارسال مقدار یک متغییر به عنوان آرگومان ، می توانید شییء متناظر با آن متغییر ایجاد کنید .

مثال :
Integer suffix = new Integer (907);
مثال بالا ، برای مقدار 907 یک شیء Integer ایجاد می کند .
پس از ایجاد این شیء می توانید از آن مانند اشیای دیگر استفاده کنید.
به عنوان مثال ، برای به دست آوردن یک مقدار int از شیء suffix می توانید از جملات زیر استفاده کرد :

Int newSuff=suffix.netValue();

یکی از قالب ریزیهای معمول از بک شیء به یک متغییر ، مربوط به هنگامی است که شیی از نوع رشته باید به صورت یک عدد مورد استفاده قرار گیرد . این امر ا استفاده از متدparselnt( ) از کلاس Integer انجام می شود.

مثال :
String count=”46”;
Int myCunt=Integer.parselnt(count);

آموزش جاوا - 16

به نام خدا
سلام دوستان
درس شانزدهم
قالب ریزی اشیا
اشیا را می توان به اشیای دیگر قالب ریزی کرد ، به شرطی که شی مبدا و مقصد از طریق ارث بری با هم مرتبط باشند . به عبارت دیگر ، یکی از کلاسها باید زیر کلاس دیگری باشد.
برخی اشیا هیچ نیازی به قالب ریزی ندارند و می توان از آنها به جای هر یک از کلاسهای ارشدشان استفاده کرد .
برای مثال ، از آنجایی که کلیه اشیا در جاوا زیر کلاسهای کلاس Object هستند ، هر جا که آرگومانی از نوع Object مورد نیاز باشد ، می توان از هر شیی استفاده کرد .
در ضمن ، هر جا یکی از کلاسها یک شی مورد احتیاج باشد، می توان از خود آن شی استفاده کرد.
جهت استفاده از یک شی به جای یکی از زیرکلاسهای آن ، باید از طریق جملاتی مانند زیر ، آن را صریحاً قالب ریزی کنید:
Window win = new Window();
Frame top = new (Frame)win;
این جملات ، سبب قالب ریزی یک شی Window به نام win ، درون یک شی Frame می شوند.

آموزش جاوا - 15

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

مثال:
Float source =2.06 ;
Int destination = ( int ) source ;
جملات بالا، یک مقدار float را به int تبدیل می کنند
گاهی می توان بدون استفاده از قالب ریزی، متغییری را در قالبی متفاوت به کار برید
مثلاً می توانید متغییرهای char را به جای متغییرهای int به کار برد. همچنین متغییرهای int به جای متغییرهای long و کلیه متغییرهای عددی به جای متغییرهای dubele قابل استفاده می باشند.
در این حالت ، چون مقصد در مقایسه با مبدا دارای ظرفیت بیشتری است ، معمولاً تبدیل اطلاعات بدون تغییر مقدار اولیه متغییر صورت می پذیرد .
مهمترین موارد استثنا، مربوط به هنگامی می شود که یک متغییر int با long ، به float و یا یک long به bubel قالب ریزی می گردد .
برای تبدیل اطلاعات از یک نوع متغییر به نوع کوچکتر ، باید به طور صریح از قالب ریزی استفاده کرد .

آموزش جاوا - 14

به نام خدا
سلام دوستان
درس چهاردهم
تبدیل اشیا و متغییرهای ساده
یکی از عملیات رایج در زبان جاوا ، تبدیل اطلاعات از شکلی به شکل دیگر است . این تبدیلات ، انواع مختلفی دارند :
• تبدیل یک شئ به شئ دیگر
• تبدیل یک متغیر ساده به متغیری از نوع دیگر
• استفاده از یک شئ برای ایجاد یک متغیر ساده
• استفاده از یک متغیر ساده برای ایجاد یک شئ
متغیر های ساده ، همان انواع داده های پایه ای هستند . این انواع ، شامل int، char، long ، double می باشند .
هنگام استفاده از یک متد یا عبارت در برنامه ، باید از انواع صحیح اطلاعات که مورد نظر آن متد یا عبارت می باشد ، استفاده کنید . برای مثال ، اگر متدی انتظار دریافت یک شئ از نوع رشته را داشته باشد . باید شئ از نوع رشته را در اختیار آن قرار دهید . اگر به متدی که تنها یک آرگومان از نوع عدد صحیح می گیرد،یک عدد اعشاری ارسال کنید ، هنگام کامپایل کردن برنامه ، با پیام خطا مواجه خواهید شد .
تبدیل اطلاعات از یک شکل به شکلی دیگر را در یک برنامه ، قالب ریزی (casting) می نامیم . قالب ریزی ، مقدار جدیدی ایجاد می کند که نوع آن با نوع متغیر یا شئ اولیه متفاوت است . هنگام قالب ریزی ، مقدار متغیر یا شئ اولیه تغیر نمی یابد .بلکه متغیر یا شئ جدیدی با قالب مورد نیاز ایجاد می شود .
جاوا هنگام بررسی نوع داده ها بسیار سختگیر است . تنها استثنا بر این قاعده رشته ها می باشند . مثلا با اینکه متدی مانند ( )System.out.println نیاز به آرگومانی از نوع رشته دارد ، شما می توانید انواع مختلفی از اطلاعات را با عملگر + ترکیب و به این متد ارسال کنید . تا وقتی که یکی از عناصر شرکت کننده در این ترکیب ، از نوع رشته باشد ، کل ارگومان نیز به یک رشته تبدیل خواهد شد و لذا جملۀ زیر ، به عنوان مثال ، جمله ای است معتبر :

Float sentence = 17.5 F;
System . out .printin(“My sentence has been reduced to”
+sentence + “years.”);

هنگام بحث دربارۀ مفهوم قالب ریزی ، از اصطلاحات مبدأ (source) و مقصد ( destination) استفاده می کنیم . مبدأ عبارت است از گونه ای از اطلاعات ( متغیر یا شئ ) در شکل اولیۀ آن و مقصد ، نسخۀ تبدیل یافتۀ مبدأ می باشد .

آموزش جاوا - 13

به نام خدا
سلام دوستان
درس سیزدهم
ایجاد سلسله مراتب مبتنی بر ارث بری
ارث بری، امکان توسعه چندین کلاس مرتبط را بدون انجام عملیات زاید و تکراری فراهم می سازد.ارث بری می تواند از یک کلاس به کلاس دیگر و از آن کلاس به کلاس به کلاس بعدی منتقل شود.
مجموعه ای از کلاسها که اینگونه با هم مرتبط گشته اند، سلسله مراتب کلاسها (class hierarchy) می نامند و کلیه کلاسهای استاندارد که در برنامه های جاوا به کار می روند ، بخشی از یک سلسله مراتب می باشند.
درک سلسله مراتب با استفاده از مفاهیم زیر کلاس (subclass) و کلاس ارشد (superclass) آسانتر خواهد بود. کلاسی که از کلاس دیگر ارث می برد، زیرکلاس و کلاسی که از کلاسهای دیگر از آن ارث می برند، کلاس ارشد نامیده می شود.

آموزش جاوا - 12

به نام خدا
سلام دوستان
درس دوازدهم
درک مفهوم ارث بری
ارث بری (inheritance) مکانیزمی است که از طریق آن ، یک شی ء رفتارها و خصوصیات اشیای مشابه دیگر را به ارث می برد.
هنگامی که شروع به ایجاد اشیا برای استفاده در برنامه های مختلف بکنید ، به زودی در می یابید که برخی اشیای جدید که مورد نیاز شما می باشند،شباهت زیادی دارند به اشیای دیگری که قبلاً ایجاد کرده اید.پس از طریق ارث بری، برنامه نویس می تواند کلاس جدیدی تعریف کرده و فقط تفاوتهای آن را با یکی از کلاسهای موجود مشخص سازد.
ارث بری یک کلاس از کلاس دیگر، توسط جمله extends انجام می گیرد. در زیر چارچوب کلی کلاس topname را که از کلاسname ارث می برد، مشاهده می کنید :
Class topname extends name {
//program goes here
}

آموزش جاوا - 11

به نام خدا
سلام دوستان
درس یازدهم
ایجاد نخستین شیء
در برنامه نویسی شیءگرا ، هر شیء مشتمل بر دو جیز است :خصوصیات و رفتار .
خصوصیات (attributes) چیزهایی هستند که یک شی ء را توصیف و تفاوت آن با دیگر اشیا را مشخص می کنند.
رفتار (behavior) عبارتست از کاری که یک شی ء انجام می دهد .
در زبان جاوا ،اشیا با استفاده از یک کلاس (class) که حکم الگو یا قالب (template) را دارد ، ایجاد می شوند.

مثال:
Public class Dog {
String name;

Public void speak() {
System,out.println(“Hop! Hop1”);
}
}
این برنامه شباهت زیادی به برنامه هایی که تا کنون نوشته ایم دارد،این کلاس مانند آن برنامه ها ، با جمله class آغاز می شود، با این تفاوت که یک جمله public نیز به آن افزوده شده است . جمله publicبه این معناست که عموم برنامه ها می توانند از اشیای Dog استفاده کنند.
اگر بخواهید از شی ء Dogدر یک برنامه استفاده کنید، می توانید شی ء مورد نظر را مانند یک متغییر ایجاد نمایید.

مثال:
Dog firstDog=new Dog( );
firstDog.name=”checkers”;
firstDog.speak( );

آموزش جاوا - 10

به نام خدا
سلام دوستان
درس دهم

ذخیره اطلاعات توسط آرایه :
آرایه گروهی از متغییرهای مرتبط با هم می باشند که دارای نوع یکسانی هستند و متغییرهایی هستند که تحت یک نام مشترک گروه بندی شده اند .
آرایه ها نیز همانند متغییرها با مشخص کردن نوع اطلاعاتی که درون آنها ذخیره خواهد شد و نیز نام آرایه ایجاد می شوند. تنها اختلاف عبارت است از افزوده شدن علائم کروشه ، یعنی [ و ] .

مثال :
String[] key;
جمله بالا یک آرایه از متغییرهایی با نوع رشته ای ایجاد می کند.
و برای مقداردهی اولیه آن یا باید همواره با نوع متغییر ، از جمله new استفاده کنید و یا اینکه مقادیر اولیه را بین علامتهای { و } درون آرایه ذخیره کنید .

مثال :
Int[] number=new int[250];
مثال فوق، آرایه ای از اعداد صحیح به نام number با 250 عنصر ایجاد می کند.

مثال :

String[] month={“ farvardin” ,”ordibehesht” , “khordad” }

استفاده از آرایه:

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

مثال :
Number[12] +=1;
Key[6756]=”max”;

آرایه های چند بعدی :

برای تعریف و استفاده از آرایه های دوبعدی، باید از یک کروشه اضافی استفاده کنید ، مانند مثال زیر :

Boolean[][] selectedkey=new Boolean[50][50];
Selectedkey[7][4]=true;
Selectedkey[3][8]=true;
این مثال ، آرایه ای از مقادیر Boolean به نام selectedkey ایجاد می کند ، این آرایه در بعد اول دارای 50 عنصر و در بعد دوم دارای 50 عنصر است و لذا دارای 2500 عنصرمنفرد برای ذخیره سازی مقادبر می باشد.

آموزش جاوا - 8

به نام خدا
سلام دوستان
درس هشتم:
عملگر سه گانه (ternary) ، پیچیده ترین جمله شرطی است که شما در زبان برنامه نویسی جاوا با آن برخورد خواهید کرد.
این عملگر در مواقعی استفاده می شود که شما بخواهید براساس نتیجه یک شرط ، مقداری را تخصیص داده . این عملگر به صورت زیر به کار برده می شود :
• شرط مورد بررسی که باید در درون پرانتز قرار گیرد . مثال (age>10)
• یک علامت سووال .(?)
• مقداری که در صورت درست بودن شرط ، مورد استفاده قرار می گیرد.
• علامت دو نقطه(
• مقداری که در صورت نادرست بودن شرط ، مورد استفاده قرار می گیرد.

مثال:
;Numberclass=(age>10)?12:20

البته نگران نباشید اگر کار با این عملگر برایتان سخت است می توانید از همان جملاتif و else استفاده کنید.

مثال :
If (age>10)
Numberclass=12;
Else
Numberclass=20;

آموزش جاوا - 7

به نام خدا
سلام دوستان
درس هفتم :
برای بررسی یک شرط در یک برنامه جاوا ، ساده ترین راه استفاده از جمله if می باشد . عبارت if همواره با یک شرط که قرار است بررسی شود و فقط در صورتی عمل مورد نظر را انجام می دهد که نتیجه شرط true باشد مورد استفاده قرار می گیرد ، مانند جمله زیر :
If (average<12)
System.out.println (“that’s very bad”);
باید توجه داشته باشید در زبان برنامه نویسی جاوا ،عملگر >به معنی کوچکتر از ، عملگر< به معنی بزرگتر از ، عملگر =>به معنی کوچکتر مساوی ، عملگر=< به معنی بزرگترمساوی و عملگر== به معنی مساوی می باشد .

در بسیاری از موارد لازم است که در پاسخ به یک جمله if ، بیش از یک عمل انجام بگیرد . برای انجام این کار از علائم ({،}) برای ایجاد یک جمله بلوک (جملاتی هستند که به صورت یک گروه سازماندهی شده اند .) استفاده می شود .

مثال :
if (playerScore>9999) {
playerLives++;
system.out.println(“ Extra life!”);
level=level+5;
}
و اما مواقعی پیش می آید که بخواهید عملیاتی را در صورت درست بودن و عملیات دیگری را در صورت نادرست بودن شرط انجام دهید .
این کار با استفاده از جمله else به همراه جمله if انجام می شود.

مثال :
If (grade==’A’)
System.out.println(“You got an A. Great job!”);
Else if (grade==’B’)
System.out.println(“You got an B. Good work!”);
Else if (grade==’C’)
System.out.println(“You got an C. You’ll never get into a good!”);
else
System.out.println(“You got an F. You’ll do well in congress!”);


جملات if و else در مواقعی مفید واقع می شوند که دارای دو حالت ممکن می باشند ، اما گاهی ناچار به تصمیم گیری درباره چندین انتخاب ممکن هستیم. در این موارد از دستور switch استفاده می شود .
حال برای اینکه با طرز استفاده از دستور switch آشنا شوید مثال بالا را از طریق دستور switch می نویسیم :
Switch (grade) {
Case ‘A’:
System.out.println(“You got an A. Great job!”);
Break;
Case ’B’:
System.out.println(“You got an B. Good work!”);
Break;
Case ’C’:
System.out.println(“You got an C. You’ll never get into a good!”);
Break;
Deafalt:
System.out.println(“You got an F. You’ll do well in congress!”);
}

آموزش جاوا - 6

به نام خدا
سلام دوستان
درس ششم :

هنگام استفاده از جمله System.out.println( ); و کار کرذن با رشته ها مواردی پیش می آید که می خواهیم دو رشته را به هم بچسبانیم ، برای انجام اینکار از عملگر + استفاده کنیم (این عملگر به جای جمع کردن ، دو رشته را به هم می چسباند).
مثال:
System.out.println(“\’ welcome to”+”\t my weblog\’ ”);

بعد از اجرای دستور بالا مشاهده خواهید کرد عبارت ‘welcom to my weblog’ چاپ خواهد شد .
و برای چاپ یک متغیر می توان مانند مثال زیر عمل نمود:
Int lesson=6;
System.out.println(“ this lesson is”+lesson);
در خروجی عبارت this lesson is 6 نمایان است .

معرفی چند تابع مفید :

برای تعیین طول رشته (برحسب تعداد کاراکتر ) از تابع length( ) استفاده می کنند .
مثال :
String myname=”paradise”;
Int key=myname.length( ) ;
این مثال key که یک متغییر صحیح است را برابر 15 قرار می دهد .

و برای مقایسه دو رشته از تابع equal( ) استفاده می کنند به شکل زیر :
String myname=”mona”;
String myweblog=”paradise19791979”;
System.out.println(“ answer:”+ myname.equal(myweblog));
با اجرای برنامه در خروجی خواهید داشت :
Answer: false
و برای نمایش دادن متغییرهای رشته ای با حروف بزرگ از تابع toUppercase( ) و نمایش با حروف کوچک از تابع toLowercase( ) در زبان جاوا استفاده می شود .
_________________

آموزش جاوا - 5

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

;( )System.out.println
این جمله هر رشته یا متغییر را که داخل پرانتزقرار دارد را چاپ می کند.
مثال:

;("System.out.println(“hello
دستور println در واقع مخفف “print this line” (این سطر را در یک خط چاپ کن ) می باشد.

چاپ کاراکترهای ویژه:

کاراکترهای ویژه خروجی
\’ چاپ علامت نقل قول منفرد
\” چاپ علامت نقل قول دوتایی
\\ backslash
\t tab
\b backspace
\r Carriage return
\f صفحه جدید
\n سطر جدید

آموزش جاوا - 3

به نام خدا
سلام دوستان
درس سوم :
نکته مهمی که در برنامه نویسی جاوا باید به آن توجه کرد آن است که برنامه مورد نظر کجا اجرا می شود.
برنامه های جاوایی که به طور محلی روی کامپیوتر اجرا می شوند،برنامه های کاربردی(Applications) و برنامه هایی که در صفحات وب اجرا می شوند، اپلت (Applet) نامیده می شوند .
اینک توضیحات ما مربوط به برنامه های کاربردی می باشد ، در درسهای آتی به توضیح اپلتها خواهیم پرداخت.

متغییرها:
در برنامه های جاوا متغییرها با دستورالعملی ایجاد می شوند که مشتمل بر دو بخش است :
• نام متغییر
• نوع اطلاعاتی که متغییر در خود ذخیره خواهد کرد .

انواع متغییر
برای نگهداری متغییری از نوع اعداد صحیح (اعداد غیر اعشاری) از نوع int می توان استفاده کرد .int هر عدد صحیح بین 14/2 – میلیارد تا 14/2 میلیارد را نگهداری می کند.

مثال: int max; یعنی متغییری با نام max و از نوع اعداد صحیح(int)

و برای ذخیره متغییرهای اعشاری از نوع float استفاده می شود .

مانند: float average; یعنی متغییری با نام average و از نوع اعداد اعشاری(float)

و اما برای ذخیره متغییرهای غیر عددی اگر متغییر از نوع کاراکتر بود از عبارت char استفاده می شود و اگر متغییر رشته بود نوعString به کار برده می شود.

مانند: char key=’c’; یعنی متغییری با نام key با مقدار c از نوع کاراکتر
و String name=”orbitz”; یعنی متغییری با نام name با مقدار orbitz از نوع رشته

توجه داشته باشید هنگامی که از مقادیر کارکتری استفاده می کنید باید در دو طرف کارکتری که به متغییر نسبت داده می شود ، علامت نقل قول منفرد قرار دهید و در مورد مقادیر رشته ای ، از علامت نقل قول دوتایی استفاده کنید در ضمن یادتان نرود که همواره در تایپ کلمه String ، S را با حرف بزرگ چاپ کنید .
_________________

آموزش جاوا - 2

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

آغاز برنامه :
با استفاده از ویرایشگر خود (wordpad,notepad ) تمام سطرهای زیر را وارد کرده، دقت کنید که حروف بزرگ و کوچک را دقیقاً به همان صورتی که نشان داده شده وارد کنید.
Class exampel1 {
Public static void main(String[] arguments) {
//this is my first java program
}
}
حال برنامه را با نام exampel1.java ذخیره کنید . باید توجه داشته باشید که کلمه exampel1 در سطر اول، نشان دهنده نام برنامه است و در برنامه های دیگر تغییر خواهد کرد .
سطر سوم نیز کاملاً واضح است . چرا که جمله ایست به زبان انگلیسی و تنها برای توضیحات بیشتر در برنامه آورده شده است ، به این توضیحات که در ابتدای آنها از // استفاده می شود comments می گویند .
سطر اول برنامه ( class exampel1 { ) به ماشین می گوید که نام برنامه را exampel1 قرار بده یعنی شما از جمله class برای نامگذاری برنامه ی کامپیوتری خود استفاده می کنید البته در درسهای بعدی در رابطه با این جمله توضیحات بیشتری خواهیم داد .
توجه داشته باشید که نام برنامه دقیقاً باید مطابق نام فایل باشد یعنی هر برنامه باید با نامی save شود که دقیقاً بعد از کلمه class نوشته شده است البته با پسوند .java
سطر بعدی برنامه به این ترتیب است
Public static void main(String[ ] arguments) {
این سطر به برنامه می گوید که بخش اصلی برنامه از اینجا شروع می شـــود ، در واقع main نقطه شروع برنامه می باشد باید توجه داشت که از آکولاد ها برای گروه بندی بخشهایی از برنامه استفاده می شود ، هر آنچه بین آکولاد باز(}) و آکولاد بسته({) قرار دارد بخشهای یک بلوک (block) حساب می شود .
شما باید همواره برای مشخص کردن آغاز و پایان برنامه هایتان بعد از نام برنامه در سطر اول آکولاد را باز کنید و در سطر آخر برنامه آکولاد را ببندید .
در درسهای بعدی بیشتر به توضیح این سطر می پردازیم اینک بیایید برنامه را کامپایل کرده و آنرا اجرا نماییم .
وارد برنامه commant prompt شوید (start/all programas/Accessibility/commant prompt) یا چنانچه علاقه زیادی به کار در محیط dos ندارید از خط فرمان Run در منوی start خط زیر را تایپ کنید:
Javac exampel1.java
در صورتی که کامپایل برنامه با موفقیت انجام شود ، فایل جدیدی به نام exampel1.class در همان پوشه حاوی exampel1.java ایجاد خواهد شد .

سپس عبارت زیر را در خط فرمان تایپ کنید : Java exampel1
با اجرای برنامه مطمئناً چیزی مشاهده نمی کنید چرا که هیچ فرمانی مبتنی بر print به برنامه ندادید اما نگران نباشید در آینده ای نزدیک خروجی را نیز مشاهده خواهید کرد .
_________________

آموزش جاوا - 1

به نام خدا
سلام دوستان
درس اول

برنامه جاوا توسط یکی از برنامه نویسان شرکت Sun Microsystems به نام جیمز گوسلینگ James Goslingبه عنوان روش بهتر برای ایجاد برنامه های کامپیوتری اختراع گردید . گوسلینگ از نحوه کاربرد زبان C++ روی پروژه ای که مشغول انجام آن بوده رضایت نداشت و از زبان جدیدی ابداع کرد که بهتر از عهده آن کار بر آید .

شروع کار :
اغلب برنامه های کامپیوتری به همان شکلی نوشته می شوند که شما یک نامه را می نویسد . یعنی با تایپ کردن هر جمله در یک ویراشگر متن .
برخی از ابزارهای برنامه نویسی دارای ویرایشگر خاص خود می باشد برخی دیگر با هر نرم افزار ویرایشگر متن کار می کنند .
برای نوشتن برنامه های جاوا نیز باید ابتدا یک ویرایشگر متن مانند Not pad یا Word pad را گشوده برنامه را نوشته آنگاه برنامه را با پسوند Java ذخیره کرد به عنوان مثال Calculator. java نامی برای یک فایل برنامه جاوا است .

پیش از شروع به نوشتن برنامه های ، جاوا لازم است که یکی از نرم افزارهای برنامه نویسی جاوا را تهیه و راه اندازی کنید، کیت توسعه جاوا JDK نامیده می شود که نسخه های متعددی مانند1.2 ، …1.4 دارد .
نسخه های این کیت را می توانید از سایت زیر Download کنید .
Http://www.java.sun.com
__________________