تبليغاتX
مجله آموزشی جاوا
Your Weblog Banner
درس بيستم: معرفي يك متد

درس بيستم: معرفي يك متد

-----------------------------------------------

 

معرفی یک متد

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

تفاوت اصلی آن است که متدها قادر به بازگرداندن یک مقدار می باشند . این مقدار می تواند یکی از انواع ساده، مانند اعداد صحیح یا مقادیر Boolean  و یا یک کلاس می باشد. برای تعریف متدی که مقداری را برنمی گرداند، از جمله void استفاده می کنیم .

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

Public Boolean intectFile(string filename) {

   Boolean success = false;

   // file-infecting statements would be here

 return success;

}

 

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

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:41 |
درس نوزدهم: استفاده از متدها

درس نوزدهم: استفاده از متدها

-----------------------------------------------

 

ایجاد رفتار با استفاده از متدها

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

رفتار عبارت است از کلیه بخشهایی از یک کلاس که وظیفه معینی را انجام می دهند. هر یک از این بخشها را یک متد(method) می نامیم.

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

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:41 |
درس هجدهم: ايجاد متغييرهاي كلاس

درس هجدهم: ايجاد متغييرهاي كلاس

-----------------------------------------------

 

ایجاد متغیرهای کلاس

هر شیء به محض ایجاد ، شامل یک کپی مخصوص به خود ، از کلیه متغییرهایی است که بخشی از کلاس مربوط به آن شیء می باشند. به عنوان مثال ، هر شیء ایجاد شده از کلاس Virus شامل نسخهای مربوط به خود ، از متغییرهای newSeconds,maxFileSize,author می باشد . اگر یکی از این متغییرها را در یک شی ء تغییر دهید، تاثیری روی همان متغییر از شیء Virus دیگر نخواهد داشت .

گاهی یک خصوصیت بیش از آنکه مربوط به یک شیء خاص باشد، مربوط به خود کلاس است.

متغییرهایی که تاکنون برای اشیاء ایجاد می کردیم متغییرهای شیء (object variables) نامیده می شوند، چرا که وابسته به یک شیء خاص می باشند . متغییرهای کلاس(class variables) ، متغییرهایی هستند که وابسته اند به یک کلاس از اشیا و نه به یک شیء خاص .

هر دو نوع این متغیرها به یک شکل ایجاد می شوند و مورد استفاده قرار می گیرند ، با این تفاوت که متغییرهای کلاس با استفاده از جمله static ایجاد می شوند. مثال زیر ، یک متغیر کلاس را برای کلاس Virus ایجاد می کند :

 

Static int virusCount=0;

 

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

 

Tuberculosis.virusCount++;

 

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

 

Virus.virusCount++;

 

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

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:40 |
درس هفدهم: ايجاد متغييرها

درس هفدهم: ايجاد متغييرها

-----------------------------------------------

 

ایجاد متغییرها

خصوصیات یک شیء مشخص کننده کایه متغییرهایی هستند که این شیء برای عملکرد خود بدانها نیازمند است . این متغییرها می توانند انواع داده ای ساده ای از قبیل 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)  می نامند ، هر چند جمله خاصی برای آن در نظر گرفته نشده است .

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:40 |
درس شانزدهم: متغيير-اشيا

درس شانزدهم: متغيير-اشيا

-----------------------------------------------

 

تبدیل متغیرهای ساده به اشیا و بالعکس

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

در عوض ، بسته 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);

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:39 |
درس پانزدهم: قالب ريزي اشياء

درس پانزدهم: قالب ريزي اشياء

-----------------------------------------------

 

قالب ریزی اشیا

اشیا را می توان به اشیای دیگر قالب ریزی کرد ، به شرطی که شی مبدا و مقصد از طریق ارث بری با هم مرتبط باشند . به عبارت دیگر ، یکی از کلاسها باید زیر کلاس دیگری باشد.

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

برای مثال ، از آنجایی که کلیه اشیا در جاوا زیر کلاسهای کلاس Object هستند ، هر جا که آرگومانی از نوع Object مورد نیاز باشد ، می توان از هر شیی استفاده کرد .

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

جهت استفاده از یک شی به جای یکی از زیرکلاسهای آن ، باید از طریق جملاتی مانند زیر ، آن را صریحاً قالب ریزی کنید:

Window  win = new Window();

Frame top = new (Frame)win;

این جملات ، سبب قالب ریزی یک شی Window به نام win ، درون یک شی Frame می شوند.

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:38 |
درس چهاردهم: قالب ريزي متغييرهاي ساده

درس چهاردهم: قالب ريزي متغييرهاي ساده

-----------------------------------------------

 

قالب ریزی متغییرهای ساده

در رابطه با متغیرهای ساده ، قالب ریزی معمولا بین متغیر های عددی ( مانند اعداد صحیح و اعداد اعشاری ) صورت می گیرد . نوعی از متغیرها که در هیچ گونه قالب ریزی نمی تواند شرکت کند ، نوع Boolean است .

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

 

مثال:

Float source =2.06 ;

Int destination = ( int ) source ;

جملات بالا، یک مقدار float را به int تبدیل می کنند

گاهی می توان بدون استفاده از قالب ریزی، متغییری را در قالبی متفاوت به کار برید

مثلاً می توانید متغییرهای char را به جای متغییرهای int به کار برد. همچنین متغییرهای int به جای متغییرهای long و کلیه متغییرهای عددی به جای متغییرهای dubele قابل استفاده می باشند.

در این حالت ، چون مقصد در مقایسه با مبدا دارای ظرفیت بیشتری است ، معمولاً تبدیل اطلاعات بدون تغییر مقدار اولیه متغییر صورت می پذیرد .

مهمترین موارد استثنا، مربوط به هنگامی می شود که یک متغییر int با  long ، به float  و یا یک long به bubel قالب ریزی می گردد .

برای تبدیل اطلاعات از یک نوع متغییر به نوع کوچکتر ، باید به طور صریح از قالب ریزی استفاده کرد .

 

مثال :

Int  num=14;

Byte  val=(byte)num;

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:37 |
درس سيزدهم: تبديل اشيا و متغييرهاي ساده

درس سيزدهم: تبديل اشيا و متغييرهاي ساده

-----------------------------------------------

 

تبدیل اشیا و متغییرهای ساده

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

·         تبدیل یک شئ به شئ دیگر

·         تبدیل یک متغیر ساده به متغیری از نوع دیگر

·         استفاده از یک شئ برای ایجاد یک متغیر ساده

·         استفاده از یک متغیر ساده برای ایجاد یک شئ

متغیر های ساده ، همان انواع داده های پایه ای هستند . این انواع ، شامل  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) استفاده می کنیم . مبدأ عبارت است از گونه ای از اطلاعات ( متغیر یا شئ ) در شکل اولیۀ آن و مقصد ، نسخۀ تبدیل یافتۀ مبدأ می باشد .

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:35 |
درس دوازدهم: درك مفهوم ارث بري

درس دوازدهم: درك مفهوم ارث بري

-----------------------------------------------

 

درک مفهوم ارث بری

ارث بری (inheritance)  مکانیزمی است که از طریق آن ، یک شی ء رفتارها و خصوصیات اشیای مشابه دیگر را به ارث می برد.

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

ارث بری یک کلاس از کلاس دیگر، توسط جمله extends انجام می گیرد. در زیر چارچوب کلی کلاس topname  را که از کلاسname ارث می برد، مشاهده می کنید :

Class topname extends name {

             //program goes here

}

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:34 |
درس يازدهم: ايجاد نخستين شيء

درس يازدهم: ايجاد نخستين شيء

-----------------------------------------------

 

ایجاد نخستین شیء

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

خصوصیات (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(

 

منبع: www.20metri.150m.com

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه بیست و یکم آبان 1386 و ساعت 16:31 |
جاوا را بهتر بشناسيم

جاوا را بهتر بشناسيم

 

چرا جاوا زباني جالب است ؟

در يكي از مقالات در باره ي زبان شركتSun جاوا را با اين خصوصيات  شرح مي دهد :

جاوا يك زبان ساده ، شي گرا ،‌توزيع شده ، تفسير شده ، قدرتمند ، ايمن ، با معماري خنثي ، قابل حمل ، با عملكرد سطح بالا چند نخ كشي شده و پويا است .

Sun تصديق ميكند كه به طور قطع اين كلمات رشته هايي از واژه هاي متداول در زبان برنامه نويسي هستند ، اما حقيقت اين است كه اين واژه ها به طور ماهرانه اي خصوصيات اين زبان را شرح ميدهند .

حال به برخي از خصلت هاي جاوا در پشت اين واژه ها ميپردازيم .

 

شي گرا :Object Oriented

جاوا يك زبان برنامه نويسي شي گرا است . براي يك برنامه نويس اين به اين معنا است كه به جاي فكر كردن به قسمت هاي رويه برنامه ، بايد به كاربرد داده ها و روش هايي كه روي آن داده ها عمل ميكنند ، توجه شود.

اگر شما به برنامه نويسي با اعلان رويه در C عادت كرده ايد ،ممكن است دريابيد كه به هنگام استفاده از جاوا مجبور به تغيير در روش و چگونگي برنامه تان هستيد . هنگامي كه فهميديد اين الگوي جديد چقدر قدرتمند است ، به سرعت با آن هماهنگ ميشويد .

در يك سيستم شي گرا ، يك كلاس مجموعه اي از داده ها و روش هايي است كه روي آن داده عمل ميكنند. همراه بودن داده ها و متد ها رفتار و حالت يك شي را بيان مي دارد . كلاس ها به صورت سلسله مراتبي مرتب شده اند ، بنابر اين يك زير كلاس ميتواند رفتار هايي را از كلاس بالاتر به ارث ببرد . يك كلاس سلسله مراتبي هميشه يك كلاس ريشه دارد كه كلاسي است با رفتار هاي كاملا عمومي .

جاوا  به همراه دسته ي گسترده اي از كلاس هايي است كه در بسته هايي مرتب شده اند و شما مي توانيد از آنها در برنامه ي خود استفاده كنيد  . براي مثال جاوا كلاس هايي را ايجاد ميكند كه :

 بخش هاي رابط گرافيكي را ميسازند (the java.awt package) ،كلاس هايي كه عمليات ورودي و خروجي را به عهده دارند(the java.io package)  و كلاس هايي كه از شبكه پشتيباني ميكنند (the java.net  package )   .

يك شي كلاس(in the java.lang package) به عنوان ريشه كلاس سلسله مراتبي جاوا انجام وظيفه ميكند .

 جاوا بر خلاف C++ طوري طراحي شده است كه از همان ابتدا به صورت شي گرا باشد .  اكثر چيز ها در جاوا اشيا هستند . ارقام ابتدايي ، كاراكترها و مدل هاي منطقي تنها استثناء ها هستند . حتي رشته ها هم در جاوا به وسيله اشيا حاضر ميشوند ،همان طور كه ساختمان هاي مهم ديگر اين زبان ، مثل نخ ها   احضار ميشوند . يك كلاس يك واحد پايه براي كامپايل و اجرا شدن در جاوا است . تمام برنامه هاي جاوا متشكل از كلاس ها است .

    درست است كه جاوا طوري طراحي شده است كه مثل C++  باشد و خاصيت هاي آن را داشته باشد ، اما هنگامي كه با آن كار كنيد خواهيد فهميد كه بسياري از پيچيده گي هاي آن زبان را از بين برده است .

اگر شما يك برنامه نويس C++ هستيد حتما لازم است كه ساختار هاي شي گرايي در جاوا را به دقت مطالعه كنيد . اگرچه تركيب و نحوه دستورات آن تقريبا شبيه C++ است ،‌اما رفتار هاي آن خيلي مشابه نيست .

 

تفسير شده :Interpreted

جاوا يك زبان تفسير شده است . كامپايلر جاوا به جاي ايجاد كد محلي ماشين ، كد بايتي براي ماشين مجازي جاوا ايجاد ميكند . براي اجراي دقيق برنامه ، از مفسر جاوا براي اجراي كد هاي بايتي كامپايل شده استفاده ميشود . به دليل اينكه  كد هاي بايتي جاوا به نوع كامپيوتر بستگي ندارند ، برنامه هاي جاوا ميتوانند روي هر نوع كامپيوتري كه JVM (Java Virtual Machine) را دارند ، اجرا شوند .

در محيط تفسير شده ، مرحله لينك استاندارد توسعه برنامه از ديد كاربر پنهان است . اگر جاوا تنها يك مرحله لينك داشت ، فقط بارگذاري كلاس جديد به محيط پردازش ميشد كه يك پردازش نموي سبك وزن است كه در زمان اجرا مشاهده ميشود . كه اين خصوصيت با چرخه كامپايل-لينك-اجرا ي آرام و طاقت فرساي زبان هايي مانند C يا C++ در تضاد است .

 

معماري خنثي و قابل حمل :Architecture Neutral and Portable

به دليل اينكه برنامه هاي جاوا در فرمت كد بايتي با معماري خنثي كامپايل شده اند ، برنامه كاربردي جاوا ميتواند در هر سيستمي اجرا شود.

البته با اين شرط كه آن سيستم توانايي پياده سازي ماشين مجازي جاوا را داشته باشد . اين مسئله  تقريبا براي كاربرد هاي توزيع سده روي اينترنت و يا ديگر شبكه هاي ناهمگن مهم است . اما روش معماري خنثي براي كاربرد هاي بر مبناي شبكه مفيد است .

به عنوان يك توسعه دهنده  برنامه هاي كاربردي در بازار نرم افزاري  امروز ممكن است بخواهيد مدل هاي كاربردي خود را توسعه دهيد ، به طوري كه بتواند روي Pc ، مكينتاش و سيستم عامل Unix اجرا شود .با وجود گونه هاي مختلف Unix  ، Windows روي Pc و مكينتاش قوي جديد ، رفته رفته توليد نرم افزار براي همه انواع اين كامپيوتر ها سخت مي شود . اگر شما برنامه تان را در جاوا بنويسيد ميتواند روي همه ي اين كامپيوترها اجرا شود .

در حقيقت تفسير شده بودن جاوا وتعريف يك استاندارد  ، معماري خنثي داشتن و فورمت كد بايتي آن از بزرگترين دلايل قابل حمل بودن آن به شمار مي آيند .

اما جاوا باز از اين هم بيشتر گام برميدارد ،‌ با اطمينان حاصل كردن از اينكه هيچيك از جنبه هاي وابستگي اجرايي زبان را ندارد . براي مثال جاوا به طور صريح اندازه هريك  از انواع داده  را تعريف ميكند كه اين با C تفاوت دارد  ، برای مثال هريک از انواع صحيح می تواند بسته به نوع کامپيوتر16-32 يا 64 بيت طول داشته باشد .

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

يك برنامه جاوا  به توليد كنندگان نرم افزار كمك ميكند تا از قابل حمل بودن كد هايشان اطمينان حاصل كنند . برنامه نويسان فقط براي پرهيز از دام غير قابل حمل بودن برنامه احتياج به يك تلاش ساده دارند كه شعار تجارتي شركتSun  را زنده نگهدارند و آن شعار اين است :

« يك بار بنويس ، همه جا اجرا كن » .

 

پويا و توزيع شده :Dynamic and Distributed

جاوا يك زبان پويا است . هر كلاس جاوا ميتواند در هر زماني روي مفسر جاوا بارگذاري شود . سپس اين كلاس هاي بارگذاري شده ي  پويا ميتوانند به صورت پويا معرفي شوند . حتي كتابخانه كد هاي محلي  ميتواند به طور پويا بارگذاري شود .كلاس ها در جاوا با كلاس Class فراخواني ميشوند ؛ شما ميتوانيد به طور پويا در مورد يك كلاس در زمان اجرا اطلاعاتي بدست بياوريد . اين خصوصيت در جاوا 1-1 به طور درستي موجود است . با وجود بازتاب API اضافه شده (Application Program Interface ) كه به برنامه ساز امكان ميدهد كه با برنامه از طريق يك برنامه كاربردي ديگر ارتباط برقرار كند .

جاوا حتي با نام زبان توزيع شده نيز خوانده ميشود . به طور ساده اين به اين معنا است كه اين زبان پشتيباني سطح بالايي براي شبكه به وجود مي آورد . براي مثال كلاس URL و كلاس هاي مرتبط با آن در بسته ي Java.net  ، خواندن فايل هاي دوردست را به همان سادگي خواندن فايل هاي محلي كرده است . به طور مشابه در جاوا 1-1 ، احضار روش كنترلي RMI

(Remote Method  Invocation ) ،  API  به يك برنامه جاوا اجازه ميدهد كه روش هايي از اشياء دور دست جاوا را به همان صورتي كه اگر آن اشياء محلي بدند آنها را ميخواند ، بخواند  .( جاوا حتي از سيستم شبكه اي سطح پايين كه شامل آدرس مقصد و مسير جرياني كه توسط سوكت ها متصل شده است ، نيز پشتيباني ميكند .)

طبيعت توزيع شده ي جاوا زمانيكه با امكانات پوياي بارگذاري كلاس همراه ميشود ، واقعا درخشنده است . اين خصوصيات با هم اين امكان را براي مفسر جاوا به وجود مي آورند كه كد ها را از اينترنت بارگذاري و اجرا كند . ( همان طور كه بعدا خواهيم ديد جاوا باعث ميشود كه با وجود ابزار قدرتمند و ايمن اين كار به طور مطمئن انجام شود .) اين  چيزي است كه در هنگام بارگذاري و اجراي يك برنامه كاربردي از اينترنت توسط مرورگر وب ، اتفاق مي افتد  . اما داستان پيچيده تر از اين هم ميتواند باشد . تصور كنيد يك پردازشگر  كلمه چند رسانه اي در جاوا نوشته شده است  . وقتي  از اين برنامه پرسيده ميشود كه چند نوع از داده هايي را كه قبلا هرگز وارد نشده را نمايش دهد ، ممكن است به طور ديناميكي يك كلاس را كه ميتواند داده را شناسايي كند ، از شبكه بارگذاري كند و بعد كلاس ديگري را كه بتواند داده را از درون يك پوشه تركيبي بخواند ، باز به طور ديناميكي بارگذاري ميكند . برنامه اي مانند اين از منابع توزيع شده در شبكه  براي رشد و سازگاري خودكار كاربران استفاده ميكند .

 

ساده :Simple

جاوا يك زبان ساده است . طراحان جاوا سعي در اين داشتند تا زباني بوجود بياورند كه برنامه نويسان بتوانند به سرعت آن را ياد بگيرند . بنابراين تعداد ساختار هاي اين زبان تقريبا كم است . هدف ديگر طراحي اين زبان اين بود كه به منظور راحتي انتقال آن ، آن را طوري طراحي كنند كه براي عده ي زيادي از برنامه نويسان آشنا باشد . اگر شما يك برنامه نويس C يا C++   هستيد ، خواهيد فهميد كه جاوا از بسياري از ساختار هاي C و ‍  C++ استفاده ميكند .

براي اينكه اين زبان را هم به طور ساده و هم  آشنا و ملموس و هم  كوچك نگه دارند بسياري از خصوصيات   C  و C++ را در آن حذف كردند . اينها خصوصياتي بودند كه باعث مي شدند  برنامه نويسي ضعيفي صورت بگيرد  يا آنهايي بودند كه به ندرت در برنامه استفاده مي شدند . براي مثال جاوا از دستور goto استفاده نمي كند ، در عوض از  دستورهاي  break , continue   در مواقع نياز استفاده مي كند .

جاوا از سر فايل ها(header files)   استفاده نمي كند و پردازشگر C را هم حذف كرده است . به اين دليل كه جاوا يك زبان شي گرا است ، ساختار هاي C مثل struct , union  از آن برداشته شده است . جاوا حتي  بارگذاري مجدد و خواص چندگانه ارث بري از C++ را هم حذف كرده است . شايد مهمترين پارامتر ساده بودن جاوا عدم استفاده اين زبان از اشاره گر ها باشد . اشاره گر ها يكي از بيشترين موجوديت هاي دردسرساز  در C , C++ هستند . چون جاوا ساختمان ندارد و آرايه ها و رشته ها اشياء آن هستند ، بنابراين  احتياجي به اشاره گر نيست .جاوا به طور خودكار آدرس دهي و دستذسي به محتواي موجود در يك آدرس را براي شما انجام ميدهد .

جاوا حتي زباله هاي حافظه اي را هم به طور خودكار جمع آوري ميكند .(Garbage Collectin)  (* جمع آوري آشغال فرايندي است براي ترميم خودكار حافظه انباشته شده . بلوك هايي از حافظه كه زماني به فايل ها اختصاص داشتند اما مدتي است كه از آنها استفاده نمي شود و بلوك هايي از حافظه كه هنوز مورد استفاده قرار ميگيرند  ممكن است حركت داده شوند  تا از به هم پيوستن فضاهاي خالي حافظه بلوك هاي خالي بزرگتري بدست آيد .

[ از كتاب :  Microsoft computer dictionary] * ) بنابراين  لازم نيست كه نسبت به موضوع مديريت حافظه نگران باشيد ، همه اينها شما را از نگراني در مورد اشاره گر هاي بي ارزش ، خطرناك و هرز هاي حافظه رها ميكنند . بنابر اين شما ميتوانيد وقت خود را صرف بهبود برنامه تان كنيد .

 

قدرتمند :Robust

جاوا براي نوشتن نرم افزارهاي قدرتمند و بسيار ايمن ساخته شده است . جاوا هنوز هم به طور قطع نرم افزار ها را تضمين نميكند . تقريبا هنوز هم امكان نوشتن برنامه هاي مشكل ساز در جاوا وجود دارد ، هرچند كه جاوا برخي از انواع مشخص خطاهاي برنامه نويسي را حذف كرده كه به طرز چشمگيري نوشتن نرم افزار هاي ايمن را آسان تر كرده است .

جاوا يك زبان تايپ شده قدرتمند است ،‌ كه اجازه چك شدن مشكلات  و خطاهاي تايپي را در زمان كامپايل مي دهد . جاوا بسيار قويتر از C++ تايپ شده است كه بسياري از خصوصيات انعطاف پذير در زمان كامپايل را از C به ارث برده است . مخصوصا هنگام اعلان توابع .جاوا به مدل اعلان صريح احتياج دارد ، زيرا كه از مدل اعلان صريح C پشتيباني نميكند . اين مسئله مارا از اينكه كامپايلر ميتواند خطاهاي زمان اعلان را بدست آورد ، مطمئن ميكند . مسئله اي كه منجر به ايجاد برنامه هاي ايمن تري ميشود .

يكي از چيزهايي كه باعث شده كه جاوا ساده باشد عدم وجود اشاره گر ها ومحاسبات بر روي آنها است . اين ويژگي حتي قدرت جاوا را هم با از ميان بردن يك كلاس سراسري اشاره گر افزايش ميدهد .

به طور مشابه تمام دسترسي به آرايه ها و رشته ها در زمان اجرا چك مي شوند تا از قطعي بودن آنها اطمينان حاصل شود .با از بين بردن امكان دوباره نويسي حافظه و داده هاي هرزه ، تعويض نقش اشياء از نوعي به نوع ديگر هم در زمان اجرا كنترل ميشود تا از مجاز بودن آن اطمينان حاصل شود .

سرانجام زباله جمع كن خودكار جاوا بسياري از عمليات پاكسازي مرتبط با معماري حافظه را راه اندازي ميكند . چيزي كه از خطاهاي خطر ساز مرتبط با تخصيص و آزاد سازي حافظه جلوگيري ميكند .

 

ايمن : Secure

يكي از دلايل پرطرفدار بودن جاوا اين است كه يك زبان ايمن است . اين ويژگي مخصوصا به خاطر طبيعت توزيع شده ي آن بسيار مهم است .بدون وجود امنيت شما قطعا نميخواهيد كه يك كد را از يك سايت تصادفي اينترنت بارگذاري كنيد و به آن اجازه اجرا شدن روي كامپيوتر خودتان را هم بدهيد . اين دقيقا همان چيزي است كه مردم هرروز با يك كد جاوا انجام ميدهند . جاوا به صورت ايمن طراحي شده و چندين لايه كنترل امنيت به وجود مي آورد كه شما را در برابر كد هاي خطرساز محافظت مي كنند و به كاربر اجازه ميدهد كه برنامه هاي ناشناخته را با خيال راحت اجرا كند .

همان طور كه ديديم ، برنامه جاوا نميتواند اشاره گر ها را به حافظه يا آرايه هاي سرريز يا حافظه خواندني خارج  از محدوده يك آرايه يا رشته اشاره ، اشاره دهد. اين خصوصيت يكي از اصلي ترين وسايل دفاع جاوا در برابر كدهاي خطرساز است . دومين راه دفاع در برابر كد هاي خطرساز ، پردازش كدهاي بايتي به صورت قابل تصديق و تاييد است كه مفسر جاوا به روي هر كدي كه در حال بار گذاري باشد اعمال ميكند . اين مراحل تاييد از اينكه كد به صورت درستي ساخته شده اطمينان حاصل ميكنند ، كه براي مثال پشته سرريزي يا زيرريزي نداشته باشد ، يا شامل كد هاي بايتي غير مجاز نباشد .

كدهاي بايتي خراب يا خطرساز ممكن است از ضعف هاي اجرايي در مفسر جاوا سوء‌ استفاده كنند . لايه اي كه در اينجا ما را به طور ايمن محافظت ميكند ، مدل جعبه شني (Sand box) است : كدهاي ناشناخته در يك جعبه شني قرار ميگيرند  جايي كه ميتوانند به صورت ايمن اجرا شوند ، بدون اينكه هيچ صدمه اي به بقيه اجزاء يا محيط جاوا بزنند .

وقتي يك برنامه كاربردي يا ديگر كدهاي ناشناخته در جعبه شني در حال اجرا است ،‌ چند محدوديت در مورد كاري كه ميتواند انجام دهد ، وجود دارد . واضح ترين اين محدوديت ها اين است كه هيچ دسترسي به هيچ يك از فايل هاي محلي سيستم وجود ندارد . در جعبه شني محدوديت ديگري هم وجود دارد كه به وسيله كلاس مديريت امنيت اعمال ميشود  . اين مدل در ابتدا از اينكه سيستم هاي امنيتي را نصب كرده ايد يا نه ، مطمئن ميشود ، چرا كه همه كلاس هاي جاوا نياز به عمليات حساسي مانند دسترسي به سيستم فايل را دارند . اگر فراخواني به وسيله يك كد ناشناخته به صورت مستقيم يا غير مستقيم انجام شد ،‌ مدير امنيت مورد استثناء‌ را مي فرستد و عمليات صورت نمي گيرد .

و سرانجام در جاوا 1-1 يك راه حل ممكن ديگر براي مشكلات امنيتي وجود دارد ، به وسيله ضميمه كردن يك امضاء ديجيتالي به كد جاوا كه اصل آن كد ميتواند به صورت پنهاني و نهفته ساخته شود . اگر شما اعتماد خود را به يك شخص يا يك سازمان مشخص كرده باشيد ، كدي كه امضاء آن هويت مورد اعتماد روي آن قرار دارد ،‌ ايمن و مطمئن است . حتي زمانيكه  در حال بارگذاري شدن در شبكه است و ممكن است حتي بدون جلوگيري توسط جعبه شني اجرا شود .

 

عملكرد سطح بالا :High Performance

جاوا يك زبان تفسير شده است ، بنابر اين هرگز به سرعت زبان كامپايل شده اي مثل C نخواهد بود . گفته ميشود كه جاوا 0-1 به اندازه 20 برابر از C كند تر است . جاوا 1-1 تقريبا سرعتي دو برابر جاوا 1-1 دارد . بنابراين ممكن است عاقلانه باشد اينكه بگوييم كد C كامپايل شده 10 برابر سريع تر از كد هاي تفسير شده ي جاوا اجرا ميشود . اما قبل از اينكه به خاطر اين موضوع مايوس شويد ، آگاه باشيد كه اين سرعت بيشتر از آن چيزي است كه براي برنامه هاي پرسرعت ، كاربردهاي GUI (Graphical User Interface )  ، برنامه هاي برمبناي شبكه ، جايي كه برنامه كاربردي معمولا آماده براي اجرا شدن است ، انتظار براي كاربر كه يك دستوري اعمال كند و يا انتظار براي دريافت از شبكه ، لازم است .

به علاوه قسمت هايي كه به سرعت هاي بالا نياز دارند ، كه كارهايي از قبيل الحاق رشته ها و مقايسه را انجام ميدهند ، با كد محلي جاوا اجرا ميشوند .

علاوه بر اين كارايي ، بسياري از مفسر هاي جاوا اكنون شامل كامپايلر هاي فقط در زمان " just in time " نيز هستند كه ميتواند كدهاي بايتي جاوا را براي هر نوعCPU  در زمان اجرا به كد ماشين ترجمه كند . فرمت كد بايتي جاوا با اين كامپايلر هاي در زمان در مركز كافي و مناسب است و انصافا كدهاي خوبي توليد ميكند . در حقيقت   Sun ادعا ميكند كه كارايي كد هاي بايتي كه به كد ماشين تبديل شده اند ، تقريبا به خوبي كارآيي آن در C  و C++ است .

اگر شما خواهان اين هستيد كه قابل حمل بودن كد ها را قرباني بهبود در سرعت آن كنيد ، ميتوانيد بخش قابل توجهي از برنامه خود را در C و C++ بنويسيد و از روش هاي مخصوص جاوا براي مشترك كردن با اين كد محلي جاوا استفاده كنيد .

 

 

چند نخ كشي شده :Multitbreaded

در يك برنامه كاربردي بر مبناي GUI شبكه اي ، مثل مرورگر وب ، تصور اينكه چند چيز بتوانند به طور همزمان اجرا شوند ، آسان است . يك كاربر ميتواند همزمان با اينكه دارد يك صفحه وب را ميخواند به يك كليپ صوتي گوش دهد و همزمان در پس زمينه مرورگر يك عكس را بارگذاري كند .

جاوا يك زبان چندنخ كشي شده است ، كه از چندين رشته اجرايي (گاهي پردازش سبك وزن خوانده ميشود) پشتيباني ميكند و ميتواند چندين كار را انجام دهد . يكي از مزيت هاي چندنخ كشي شده اين است كه عملكرد سطح بالايي براي كاربردهاي گرافيكي براي كاربر فراهم ميكند .

اگر شما سعي كرده ايد كه با نخ ها در C و C++ كار كنيد ، ميدانيد كه كمي مشكل است . جاوا برنامه نويسي با نخ ها را بسيار آسان تر كرده است ، با به وجود آوردن زبان درون ساخته شده اي كه از نخ ها پشتيباني ميكند . بسته jana.lang  يك كلاس بوجود آورده است كه از روش هايي براي شروع و پايان يك نخ ، و مرتب كردن ترتيب گره ها در ميان چيز هاي ديگر ، پشتيباني ميكند .

حتي دستورات زبان جاوا از نخ ها پشتيباني ميكنند ، كه با استفاده از كلمات كليدي مطابق شده . اين كلمات كليدي علامت گذاري بخش هاي كد يا تمامي روش هايي را كه بايد فقط با يك نخ در يك زمان اجرا شوند را به شدت آسان كرده است .

به دليل اينكه جاوا استفاده از نخ ها را بسيار ساده ميكند ، كلاس جاوا در شماري از جاها از اين نخ ها استفاده ميكند . براي مثال هر برنامه كاربردي كه انيميشن اجرا ميكند ، از نخ ها استفاده كرده است .

به طور مشابه جاوا از برنامه هاي نا همگام ، ورودي ها و خروجي هاي بلاك نشده با اخطاري به وسيله سيگنال ها يا وقفه ها پشتيباني نميكند ، در اين صورت شما بايد يك نخ بسازيد كه روي هر كانال ورودي خروجي كه با آن كار ميكنيد بلاك شده باشد .

 

هاله مردانیان

ترجمه شده از كتاب : JAVA IN A NUTSHELL  By: O' Reilly

 

http://www.macromediax.com :منبع

|+| نوشته شده توسط هادی رفیعی در یکشنبه بیستم آبان 1386 و ساعت 21:3 |
درس دهم: آرايه

درس دهم: آرايه

-----------------------------------------------

 

ذخیره اطلاعات توسط آرایه :

آرایه گروهی از متغییرهای مرتبط با هم می باشند که دارای نوع یکسانی هستند و متغییرهایی هستند که تحت یک نام مشترک گروه بندی شده اند .

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

 

مثال :

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  عنصرمنفرد برای ذخیره سازی مقادبر می باشد.

 

منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:31 |
درس نهم: حلقه ها

درس نهم: حلقه ها

-----------------------------------------------

 

حلقه ها :

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

سه نوع جمله حلقه در جاوا وجود دارد : while,do,for . این جملات ، معمولا قابل تعویض با یکدیگر هستند .

 

حلقه های for :

حلقه for پیچیده ترین نوع از جملات حلقه می باشد. این حلقه اغلب در مواردی به کار می رود که بخواهیم قسمتی از برنامه به تعداد معین تکرار شود .

حلقه for از سه بخش متفاوت به صورت زیر تعریف می شود :

·         بخش مقدار دهی اولیه : در این بخش متغییر با یک مقدار اولیه ، مقدار دهی می شود .

·         بخش شرط : در این بخش ، از یک جمله شرطی ، مشابه آنچه در جملات  ifدیدیم ، استفاده می شود .

·         بخش تغییر : قسمت سوم جمله ای است که مقدار متغییر را با از عملگرها تغییر می دهد .

 

مثال :

For (int number=0; number<1000; number++) {

          If (number % 5 ==0)

                System.out.println(“#:” +number);

}

 

حلقه های while  :

حلقه while   مانند حلقه for دارای بخشهای مختلف نمی باشند و تنها چیزی که برای آن ضروری است یک جمله شرطی است که همراه جمله while مورد استفاده قرار می گیرد .

 

مثال :

While ( key<=20) {

       Key= key-2;

       If (key==10)

         Break;

       System.out.println(“the key is :” +key);

}

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

 

حلقه های do…while :

حلقه do…while   از لحاظ عملکرد مشابه حلقه  while می باشد ، با این تفاوت که دستورات یکبار اجرا می شوند سپس شرط حلقه بررسی می شود و در صورت درست بودن شرط بار دیگر دستورات حلقه اجرا می شود .

 

مثال :

 Do{

      Number=numer+2;

      Sum=number+sum;

      Average=num/sum;

} while (number>=20);

 

در نظر داشته باشید که حلقه ها نیز مانند سایر جملات برنامه جاوا ، می توانند در درون یکدیگر واقع شوندو همچین هرگاه حلقه ای دارای نام باشد، می توانید این نام را بعد از جمله break وcontinue به کار ببرید.

 

مثال:

 

Loop1:

While (sum<100){

         For (int count=0; count<10; count++) {

                Sum=sum+count;

         If (sum>250)

                 Break loop1;

         }

}

 

 منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:25 |
درس هشتم: Ternary

درس هشتم: Ternary

-----------------------------------------------

 

عملگر سه گانه (ternary) ، پیچیده ترین جمله شرطی است که شما در زبان برنامه نویسی جاوا با آن برخورد خواهید کرد.

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

·         شرط مورد بررسی که باید در درون پرانتز قرار گیرد . مثال (age>10)

·         یک علامت سووال .(?)

·         مقداری که در صورت درست بودن شرط ، مورد استفاده قرار می گیرد.

·         علامت دو نقطه(:)

·         مقداری که در صورت نادرست بودن شرط ، مورد استفاده قرار می گیرد.

 

مثال:

;Numberclass=(age>10)?12:20

 

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

 

مثال :

If (age>10)

   Numberclass=12;

Else

   Numberclass=20;

 

منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:24 |
درس هفتم: شرط

درس هفتم: شرط

-----------------------------------------------

 

برای بررسی یک شرط در یک برنامه جاوا ، ساده ترین راه استفاده از جمله 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!”);  

}

 

منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:20 |
درس ششم: چند تابع مفيد

درس ششم: چند تابع مفيد

-----------------------------------------------

 

هنگام استفاده از جمله 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( ) در زبان جاوا استفاده می شود .

 

منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:16 |
درس پنجم: Println

درس پنجم: Println

-----------------------------------------------

 

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

 

;( )System.out.println

این جمله هر رشته یا متغییر را که داخل پرانتزقرار دارد را چاپ می کند.

مثال:

 

;("System.out.println(“hello

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

 

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

 

کاراکترهای ویژه

خروجی

\’

چاپ علامت نقل قول منفرد

\

چاپ علامت نقل قول دوتایی

\\

backslash

\t

tab

\b

backspace

\r

Carriage return

\f

صفحه جدید

\n

سطر جدید

 

منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:15 |
درس سوم: متغييرها در برنامه هاي Application

درس سوم: متغييرها در برنامه هاي Application

-----------------------------------------------

 

نکته مهمی که در برنامه نویسی جاوا باید به آن توجه کرد آن است که برنامه مورد نظر کجا اجرا می شود.

برنامه های جاوایی که به طور محلی روی کامپیوتر اجرا می شوند،برنامه های کاربردی(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 را با حرف بزرگ چاپ کنید .

 

منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:14 |
درس چهارم: ادامه متغيير ها، عملگرها

درس چهارم: ادامه متغيير ها، عملگرها

-----------------------------------------------

 

متغییرهایی که تاکنون معرفی کردیم مهمترین انواعی هستند که در اغلب برنامه های جاوا به کار می رود. اما برای اعداد صحیح سه نوع متغییر دیگر نیز به کار می برند ، نوع اول ، byte برای اعداد بین 128- تا 127 مورد استفاده قرار می گیرد .

 

مثال                  byte key=21;  این جمله متغییری به نام key با مقدار اولیه 21 ایجاد می کند .

 

نوع دوم short  است که محدوده آن از 32.768- تا 32.767 می باشد

 

مانند           short number =43;     این جمله متغییری به نام number با مقدار اولیه 43 ایجاد می کند .

 

نوع آخر، یعنی long برای اعداد صحیح بزرگی به کار می رود که نوع int  برای نگهداری آنها کفایت نی کند .

 

و همچنین در زبان جاوا با متغییری برخورد خواهیم کرد به نام Boolean که برای ذخیره مقادیر true (درست) و false (نادرست ) به کار برده می شود .

در این زبان برنامه نویسی به دو صورت می توان متغییر ها را مقداردهی کرد :

 روش اول : می توان هنگام ایجاد یک متغییر مقداری را به آن تخصیص داد

روش دوم : بعد از تعریف متغییر در هر جایی از برنامه می توان مقداری را در آن قرار داد.

و در صورتی که دو متغییر از یک نوع باشند می توان مقدار یک متغییر را در متغییر دیگر قرار داد ، مثال :

Int number=24;

Int key=number;

در نتیجه شما دو متغییر با مقدار اولیه 24 تعریف کرده اید .

 

تقدم عملگرها  :

برای ارزیابی عبارات و محاسبه آنها ترتیب زیر باید رعایت شود :

·         عملگرهای افزایش (مانندx++ ، این عملگر به مقدار x یک واحد می افزاید) و کاهش (مانندy-- ، این عملگر از مقدار y یک واحد می کاهد ) اولویت اول را دارند .

·         ضرب ، تقسیم و تقسیم صحیح در اولویت بعد بعد قرار می گیرند .

·         جمع و تفریق در اولویت سوم قرار دارند .

·         عملگرهای مقایسه در اولویت بعدی قرار می گیرند .

·         علامت مساوی = که برای مقداردهی یک متغییر استفاده می شود دارای کمترین اولویت است.

 

مثال :

Int z=5;

Int number=x++*6+4*10/2;

در نتیجه مقدار number مساوی 50 می باشد.

 

منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:14 |
درس دوم: اولين برنامه جاوا

درس دوم: اولين برنامه جاوا

-----------------------------------------------

 

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

 

آغاز برنامه :

با استفاده از ویرایشگر خود (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 به برنامه ندادید اما نگران نباشید در آینده ای نزدیک خروجی را نیز مشاهده خواهید کرد

 

منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:10 |
درس اول: شروع و تاريخچه كوتاهي از جاوا

درس اول: شروع و تاريخچه كوتاهي از جاوا

-----------------------------------------------

 

تاريخچه:

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

 

شروع کار :

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

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

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

 

پیش از شروع به نوشتن برنامه های ، جاوا لازم است که یکی از  نرم افزارهای برنامه نویسی جاوا را تهیه و راه اندازی کنید،  کیت توسعه جاوا JDK نامیده می شود که نسخه های متعددی مانند1.2 ، …1.4 دارد .

نسخه های این کیت را می توانید از سایت زیر Download  کنید .

                                                                                                Http://www.java.sun.com

 

 

البته من توصيه مي كنم از دوستان و يا بر روي سي دي تهيه كنيد. چون حجم دانلود زيادي داره.

 

منبع: www.20metri.150m.com

|+| نوشته شده توسط هادی رفیعی در شنبه نوزدهم آبان 1386 و ساعت 23:8 |
اولين فنجان قهوه قسمت سوم (3از3)

منبع: java.schoolnet.ir

آموزش جاوا HelloWorld
اولین فنجان شما از قهوه ي جاوا

 

3. ساختن اولین Applet

HelloWorldApp یک مثال از یک Java application است. یک برنامهء standalone. حالا شما یک Java Applet به نام  HelloWorld که بازهم "Hello World!" را نشان میدهد. برخلاف HelloWorldApp ؛appletها تحت Java-enabled Web browser هایی مانند HotJava، Netscape Navigator، یا Microsoft Internet Explorer اجرا میشوند.

برای ساختن این applet، مراحلی شبیه به همان مراحل قبلی را طی میکنیم: یک فایل جاوا میسازیم؛ آنرا compile میکنیم؛ و آنرا اجرا میکنیم.


 

الف. ساختن یک فایل جاوا.

بازهم شما دو راه حل دارید :

- شما میتوانید فایلهای HelloWorld.java و Hello.html را روی کامپیوتر خود ذخیره کنید و سپس مستقیما به قسمت ب بروید.- و یا میتوانید دستورات زیر را دنبال کنید:

1. یک NotePad باز کنید و کدهای زیر را در آن وارد کنید :

 

import java.applet.*;

import java.awt.*;

 

/**

 * The HelloWorld class implements an applet that

 * simply displays "Hello World!".

 */

public class HelloWorld extends Applet {

    public void paint(Graphics g) {

        // Display "Hello World!"

        g.drawString("Hello world!", 50, 25);

    }

}

 این کدها را در فایلی به نام HelloWorld.java ذخیره کنید.

2. همچنین ما به یک فایل html در کنار applet خود نیاز داریم. کدهای زیر را در یک NotePad جدید بنویسید:

Here is the output of my program:

این کدها را در فایل hello.html ذخیره کنید.


ب. Compile کردن فایل.

در prompt ، دستور زیر را تایپ و آنرا اجرا کنید:

 

javac HelloWorld.java

 

Compiler، باید یک فایل bytecode جاوا تولید کند؛ HelloWorld.class .


پ. اجرای برنامه.

هرچند که میتوانید applet خود را در یک Web browser ببینید، ممکن است راحتتر باشید که از applet viewer application استفاده کنید که همراه JavaTM Platform میباشد. برای دیدن این applet با استفاده از appletviewer ؛ در prompt دستور زیر را وارد کنید:

  

appletviewer Hello.html

حالا باید ببینید:

تبریک میگويم ! Applet شما کار میکند.

 

|+| نوشته شده توسط هادی رفیعی در دوشنبه چهاردهم آبان 1386 و ساعت 10:58 |
اولين فنجان قهوه قسمت دوم (2از3)

منبع: java.schoolnet.ir

آموزش جاوا HelloWorld
اولین فنجان شما از قهوه ي جاوا

 

ب. Compile کردن برنامه.

در منوی Start ، MS-Dos Prompt (Windows 95/98) یا Command Prompt (Windows NT) را اجرا کنید.

Prompt دایرکتوری را که را که در آن قرار دارید به شما نشان میدهد. زمانی که prompt را اجرا میکنید، معمولا در دایرکتوری windows در درایو c قرار دارد. برای compile کردن فایلتان باید به دایرکتوری که فایلتان را در آن ذخیره کرده اید بروید. در این مثال باید خط زیر را تایپ کنید :

cd c:\java

 

حالا prompt شما باید C:\java> باشد.


توجه: برای رفتن به دایرکتوری در یک درایو دیگر، یک دستور دیگر باید تایپ کنید.

 همانطور که نشان داده شده برای رفتن به درایو D، باید تایپ کنید:  d:


اگر در prompt، dir تایپ کنید، باید بتوانید فایل خود را ببینید:

حالا میتوانید فایل خود را compile کنید. در prompt دستور زیر را تایپ کرده و سپس enter را فشار دهید.

javac HelloWorldApp.java 

 

اگر prompt بدون هیچ پیغام errorی دوباره ظاهر شد؛ تبریک میگويم. شما توانستید با موفقیت برنامهء خود را compile کنید.

توضیح error

Bad command or file name (Windows 95/98)

The name specified is not recognized as an internal or external command, operable program or batch file (Windows NT)

اگر error بالا را دریافت میکنید، بدان معنیست که windows نمیتواند compiler جاوا (javac) را پیدا کند.

یک راه برای اینکه به windows بگوییم کجا دنبال javac بگردد اینست :

به طور مثال اگر Java 2 Software Development Kit  را در C:\jdk1.4 ریخته اید؛ در prompt دستور زیر را تایپ کرده و سپس enter را بزنید :

C:\jdk1.4\bin\javac HelloWorldApp.java

 

توجه داشته باشید که اگر از روش بالا استفاده کنید، مجبورید هر بار که میخواهید برنامهء خود را compile کنید؛ باید دستور بالا را در promopt وارد نمایید. برای اجتناب از اینکار، به قسمت  Update the PATH variable

 

  در "راهنمای install کردن" مراجعه نمایید.

 

با اینکار، compiler یک Java bytecode file به نام  HelloWorldApp.class ایجاد میکند. میتوانید در prompt، dir را تایپ کنید تا فایل ایجاد شدهء جدید را ببینید:

حالا که یک فایل با پسوند .class دارید، میتوانید برنامهء خود را اجرا کنید.

پ. اجرای برنامه.

میتوانید در همان دایرکتوری تایپ کنید :

java HelloWorldApp

 

باید ببینید :

تبریک میگويم. برنامهء شما کار میکند!

 

توضیح error

 Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp

اگر error بالا را دریافت میکنید، بدان معنیست که جاوا، نمیتواند فایل bytecode شما ((HelloWorldApp.class را پیدا کند.

یکی از جاهایی که java برای پیدا کردن فایل bytecode به در آن میگردد، همان دایرکتوری میباشد که در آن هستید. پس اگر فایل bytecode شما در c:\java میباشد، میباشد؛ باید با وارد کردن دستور زیر در prompt به دایرکتوری مورد نظر بروید:

cd c:\java

prompt باید به C:\java> تغییر پیدا کند. اگر در prompt، دستور dir را وارد نماییید؛ باید فایلهای .java و .class خود را ببینید. حال دوباره دستور java HelloWorldApp را دوباره اجرا کنید.

اگر هنوز برای اجرای برنامهء خود به مشکل بر میخورید، باید CLASSPATH خود را تغییر دهید. برای اینکه ببینید آیا اینکار لازم است یا نه، دستور زیر را اجرا کنید:

Set CLASSPATH=

حالا دوباره java HelloWorldApp را اجرا کنید. اگر برنامه اجرا شد؛ باید CLASSPATH خود را تغییر دهید. برای اطلاعات بیشتر، به قسمت  5. Update the PATH variable مراجعه کنید.

|+| نوشته شده توسط هادی رفیعی در یکشنبه سیزدهم آبان 1386 و ساعت 11:38 |
اولين فنجان قهوه قسمت اول (1از3)

منبع: java.schoolnet.ir

آموزش جاوا HelloWorld
اولین فنجان شما از قهوه ي جاوا

 

چند دستورالعمل  جزئی؛ برای اولین برنامه شما

دستورالعمل های زیر به شما کمک می کنند اولین برنامه ي جاوای خود را بنویسید. این دستورالعملها برای کاربران سیستمهای Microsoft Windows  ، که شامل Windows 9598/2000/ME/XP/NT 4.0 می شود، نوشته شده. اول با کارهایی که قبل از نوشتن اولین برنامه باید انجام دهیم شروع میکنیم. سپس، با توضیح مراحل ساختن یک application ، مراحل ساختن یک applet و توضیحاتی در مورد error هایی که با آنها مواجه خواهید شد، به کار خود ادامه میدهیم.

 

1. کارهایی که اول باید انجام دهیم

 

2. ساختن اولین application شما

 الف. نوشتن یک فایل جاوا

  ب. compile کردن فایل

  پ. اجرای برنامه

 

3. ساختن اولین applet شما

 

  

 

1. کارهایی که اول باید انجام دهیم

برای نوشتن اولین برنامهء خود، به موارد زیر نیاز دارید :

 

1-  . The JavaTM 2 Platform, Standard Edition  شما میتوانید  SDK (Software Development Kit = بستهء توسعهء نرم افزار ) را دانلود نماييد. مواظب باشید که SDK را download کنید، نه JRE .

 

2- یک ویرایشگر متن . در این مثال ما از NotePad استفاده خواهیم کرد. برای پیدا کردن NotePad ، در منوی Start ؛ Programs > Accessories > NotePad را  انتخاب کنید. اگر از ویرایشگر متن دیگری استفاده میکنید، باز هم میتوانید از این دستورالعملها استفاده کنید.

 

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

 

2. ساختن اولین application شما

اولین برنامهء شما،HelloWorldApp ، خیلی ساده به شما پیغام "Hello World!" را نشان میدهد. برای نوشتن این برنامه شما باید:

 

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

 

- Compile کردن فایل جاوا به bytecode . Compiler (javac) ، فایل شما را گرفته و متن آنرا به دستورالعملهایی تبدیل (ترجمه) میکند که قابل خواندن توسط "ماشین مجازی جاوا" (JVM = Java Virtual Machine) باشد. Compiler این دستورالعملها را به bytecode تبدیل میکند.

 

- اجرای برنامهء تبدیل شده به bytecode . مفسر جاوا (java interpreter) که روی کامپیوتر شما نسب شده، Java VM را پیاده سازی و اجرا میکند. این مفسر bytecode های شما میگیرد و با ترجمه کردن آنها به دستورالعملهایی که برای کامپیوتر شما قابل فهم هستند، آنها را اجرا میکند.

 

 

 

چرا bytecode ها چیزهای خوبی هستند!

احتمالا شنیده اید که با برنامه نویسی جاوا، میتوانید "یکبار بنویسید، هرجا میخواهید اجرا کنید." این بدان معنیست که در هنگام compile کردن برنامه، اطلاعات فقط برای استفاده از یک محیط (platform) خاص تولید نمیشوند. بلکه bytecodeها تولید میشوند که دستورالعملهایی برای استفادهء "ماشین مجازی جاوا"((JVM = Java Virtual Machine میباشند. در نتیجه اگر محیط شما –اعم از اینکه Windows ، UNIX،MacOS و یا یک Internet Browser باشد- دارای JVM باشد؛ میتواند bytecodeها را بخواند.


 

الف. نوشتن یک فایل جاوا.

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

 

1.NotePad را باز کنید و کدهای زیر را در آن وارد نمایید:

 

/**

 * The HelloWorldApp class implements an application that

 * displays “Hello World!” to the standard output.

 */

public class HelloWorldApp {

    public static void main(String[] args) {

        // Display “Hello World!”

        System.out.println(“Hello World!”);

    }

{

 

 

هنگام تایپ کردن مراقب باشید

همهء کدها را دقیقا همانطور که در بالا نوشته شده بنویسید. زیرا compiler و مفسر (interpreter) جاوا ، case-sensitive هستند؛ یعنی به کوچک یا بزرگ بودن حروف حساسند.

HelloWorldApp   helloworldapp

 

 

2.این کد را در یک فایل ذخیره کنید. در menu bar، File > Save As را انتخاب کنید.

- در قسمت Save in  دایرکتوری را که میخواهید فایلتان را در آن ذخیره کنید؛ مشخص نمایید. در این مثال، دایرکتوری java در درایو c محل ذخیرهء فایل انتخاب شده.

- در قسمت  File name تایپ کنید : "HelloWorldApp.java" .

- در قسمت Save as type ، Text Document را انتخاب کنید.

حالا دکمهء Save را بزنید و از NotePad خارج شوید.

|+| نوشته شده توسط هادی رفیعی در شنبه دوازدهم آبان 1386 و ساعت 21:50 |
افتتاحیه
سلام امروز افتتاح شدم
|+| نوشته شده توسط هادی رفیعی در شنبه دوازدهم آبان 1386 و ساعت 12:30 |