صفحه 5 از 5 نخستنخست 12345
نمایش نتایج: از شماره 41 تا 44 , از مجموع 44

موضوع: Java

  1. #41
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post do-while

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

    do{
    // body of loop
    } while(condition);

    هر تكرار از حلقه do-while ابتدا بدنه حلقه را اجرا نموده ، سپس به ارزيابي عبارت شرطي خود مي پردازد . اگر اين عبارت صحيح (true) باشد ، حلقه اجرا خواهد شد . در غير اينصورت حلقه پايان مي گيرد . نظير كليه حلقه هاي جاوا ، شرط بايد يك عبارت بولي باشد .
    اينجا يك روايت ديگر از برنامه (tick) وجود دارد كه حلقه do-while را نشان مي دهد . خروجي اين برنامه مشابه برنامه قبلي خواهد بود :

    + // Demonstrate the do-while loop.
    + class DoWhile {
    + public static void main(String args[] ){
    + int n = 10;
    +
    + do {
    + System.out.println("tick" + n);
    + n--;
    + } while(n > 0);
    + }
    + }

    حلقه موجود در برنامه قبلي ، اگر چه از نظر تكنيكي صحيح است ، اما مي توان آن را به شكل كاراتري بصورت زير دوباره نويسي نمود :

    + do {
    + System.out.println("tick " + n);
    + } while--(n > 0);

    در اين مثال ، عبارت (0>n) عمل كاهش n و آزمايش براي صفر را در يك عبارت گنجانده است . عملكرد آن بقرار بعدي است . ابتدا دستور n اجرا مي شود و n را كاهش داده و مقدار جديد را به n برمي گرداند . اين مقدار سپس با صفر مقايسه مي شود . اگر بزرگتر از صفر باشد ، حلقه ادامه مي يابد . در غير اينصورت حلقه
    پايان مي گيرد .

    حلقه do-while بويژه هنگام پردازش انتخاب منو بسيار سودمند است ، زيرا معمولا" مايليد تا بدنه يك حلقه منو حداقل يكبار اجرا شود . برنامه بعدي را كه يك سيستم Help ساده را براي دستورات تكرار و انتخاب در جاوا پياده سازي مي كند در نظر بگيريد :

    + // Using a do-while to process a menu selection -- a simple help system.
    + class Menu {
    + public static void main(String args[])
    + throws java.io.IOException {
    + char choice;
    +
    + do {
    + System.out.prinln("Help on:");
    + System.out.prinln(" 1 .if");
    + System.out.prinln(" 2 .switch");
    + System.out.prinln(" 3 .while");
    + System.out.prinln(" 4 .do-while");
    + System.out.prinln(" 5 .for\n");
    + System.out.prinln("Choose one:");
    + choice =( char )System.in.read)(;
    + } while(choice < '1' || choice > '5');
    +
    + System.out.println("\n");
    + switch(choice ){
    + case '1':
    + System.out.println("The if:\n");
    + System.out.println("if(condition )statement;");
    + System.out.println("else statement;");
    + break;
    + case '2':
    +
    + System.out.println("The switch:\n");
    + System.out.println("switch(expression ){");
    + System.out.println(" case constant:");
    + System.out.println(" statement sequence");
    + System.out.println(" break;");
    + System.out.println(" //... ");
    + System.out.println("}");
    + break;
    + case '3':
    + System.out.println("The switch:\n");
    + System.out.println(while(condition )statement;");
    + break;
    + case '4':
    + System.out.println("The do-while:\n");
    + System.out.println("do {");
    + System.out.println(" statement;");
    + System.out.println("} while( condition);");
    + break;
    + case '5':
    + System.out.println("The for:\n");
    + System.out.print("for(init; condition; iteration)");
    + System.out.println(" statement;");
    + break;
    + }
    + }
    + }

    اكنون يك اجراي نمونه توليد شده توسط اين برنامه را مشاهده مي كنيد :

    Help on:
    1 .if
    2 .switch
    3 .while
    4 .do-while
    5 .for
    Choos one:
    4

    The do-while:

    do {
    statement;
    } while( condition);

    در برنامه ، از حلقه do-while براي تصديق اينكه كاربر يك گزينه معتبر را وارد كرده باشد ، استفاده مي شود . در غير اينصورت ، به كاربر مجددا" اعلان خواهد شد . از آنجاييكه منو بايد حداقل يكبار بنمايش درآيد ، do-while حلقه
    كاملي براي انجام اين مقصود است .

    چند نكته ديگر درباره اين مثال : دقت كنيد كه كاراكترهااز صفحه كليد بوسيله فراخواني ()system.in.read خوانده مي شوند . اين يكي از توابع ورودي كنسول در جاوا است .

    اگر چه بررسي تفصيلي روشهاي l/o جاوا به بحثهاي بعدي موكول شده ، اما از ()system.in.read در اينجا براي بدست آوردن گزينه كاربر استفاده شده است . اين تابع كاراكترها را از ورودي استاندارد مي خواند ( كه بعنوان عدد صحيح برگردان شد ، اين دليلي است كه چرا مقدار برگردان از طريق تبديل (cast) به char تبديل شده است ). بصورت پيش فرض ، ورودي استاندارد، بافر شده خطي است (line buffered) بنابراين قبل از اينكه كاراكترهايي را كه تايپ كرده ايد به برنامه اتان ارسال كنيد ، بايد كليد ENTER را فشار دهيد . ( اين حالت مشابه C++/C است و احتمالا" از قبل با آن آشنايي داريد ) .

    ورودي كنسول در جاوا كاملا" محدود شده و كار با آن بسيار مشكل است . بعلاوه اكثر برنامه و ريز برنامه هاي واقعي نوشته شده با جاوا گرافيكي و پنجره اي هستند. از سوي ديگر : چون از ()system.in.read استفاده شده ، برنامه بايد جمله throwsjava.io.loException را كاملا" توصيف نمايد . اين خط براي مديريت خطاهاي ورودي ضروري است . اين بخشي از جنبه هاي مختلف اداره استثنائ در جاوا است كه بعدا" بررسي خواهد شد .

    خواهيد ديد كه حلقه for يك ساختار قدرتمند و بسيار روان است .شكل كلي دستور for
    بصورت زير است :

    for(initialization; condition; iteration; ){
    // body
    }

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

    اگر عبارت صحيح (true) باشد، آنگاه بدنه حلقه اجرا خواهد شد . اگر ناصحيح باشد حلقه پايان مي گيرد . بعد، بخش تكرار (iteration) حلقه اجرا مي شود . اين بخش معمولا" عبارتي است كه مقدار متغير كنترل را افزايش يا كاهش مي دهد. آنگاه حلقه تكرار خواهد شد ، ابتدا عبارت شرطي را ارزيابي مي كند ، سپس بدنه حلقه را اجرا
    مي كند و سرانجام عبارت تكرار را در هر گذر (pass) اجرا ميكند. اين روال آنقدر دادمه مي يابد تا عبارت شرطي ناصحيح (false) گردد .

    در زير روايت جديدي از برنامه "tick" را مي بينيد كه از يك حلقه for استفاده
    كرده است :

    + // Demonstrate the for loop.
    + class ForTick {
    + public static void main(String args[] ){
    + int n;
    + for(n=10; n>0; n)--
    + System.out.println("tick" + n);
    + }
    + }

    اعلان متغيرهاي كنترل حلقه داخل حلقه for
    غالبا" متغيري كه يك حلقه for را كنترل مي كند ، فقط براي همان حلقه مورد نياز بوده و كاربري ديگري ندارد . در چنين حالتي ، مي توان آن متغير را داخل بخش مقدار دهي اوليه حلقه for اعلان نمود . بعنوان مثال در اينجا همان برنامه قبلي را مشاهده مي كنيد كه متغير كنترل حلقه يعني n بعنوان يك int در داخل حلقه for اعلان شده است .

    + // Declare a loop control variable inside the for.
    + class ForTick {
    + public static void main(String args[] ){
    +
    + // here/ n is declared inside of the for loop
    + for(int n=10; n>0; n)--
    + System.out.println("tick" + n);
    + }
    + }

    هنگاميكه يك متغير را داخل يك حلقه for اعلان مي كنيد ، يك نكته مهم را بايد بياد داشته باشيد : قلمرو آن متغير هنگاميكه دستور for انجام مي شود ، پايان مي يابد . ( يعني قلمرو متغير محدود به حلقه for است . ) خارج از حلقه for حيات آن متغير متوقف مي شود . اگر بخواهيد از اين متغير كنترل حلقه در جاي ديگري از برنامه اتان استفاده كنيد ، نبايد آن متغير را داخل حلقه for اعلان نماييد .

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

    + // Test for primes.
    + class FindPrime {
    + public static void main(String args[] ){
    + int num;
    + boolean isPrime = true;
    +
    + num = 14;
    + for(int i=2; i < num/2; i++ ){
    + if((num % i )== 0 ){
    + isPrime = false;
    + break;
    + }
    + }
    + if(isPrime )System.out.println("Prime");
    + else System.out.println("Not Prime");
    + }
    + }

  2. #42
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post استفاده از كاما Comma

    استفاده از كاما Comma
    شرايطي پيش مي آيد كه مايليد بيش از يك دستور در بخش مقدار دهي اوليه (initalization) و تكرار (iteration) بگنجانيد . بعنوان مثال ، حلقه موجود در برنامه بعدي را در نظر بگيريد :

    + class Sample {
    + public static void main(String args[] ){
    + int a/ b;
    +
    + b = 4;
    + for(a=1; a
    + System.out.println("a = " + a);
    + System.out.println("b = " + b);
    + b--;
    + }
    + }
    + }

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

    + // Using the comma.
    + class Comma {
    + public static void main(String args[] ){
    + int a/ b;
    +
    + for(a=1/ b=4; a
    + System.out.println("a = " + a);
    + System.out.println("b = " + b);
    + }
    + }
    + }

    در اين مثال ، بخش مقدار دهي اوليه ، مقادير aو bو را تعيين مي كند . هربار كه حلقه تكرار مي شود ، دو دستور جدا شده توسط كاما در بخش تكرار (itration) اجرا خواهند شد . خروجي اين برنامه بقرار زير مي باشد :

    a=1
    b=4
    a=2
    b=3

    نكته : اگر با C++/C آشنايي داريد ، حتما" مي دانيد كه در اين زبانها ، علامت كاما يك عملگر است كه در هر عبارت معتبري قابل استفاده است . اما در جاوا اينطور نيست . در جاوا ، علامت كاما يك جدا كننده است كه فقط در حلقه for قابل اعمال مي باشد .

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

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

    + boolean done = false;
    +
    + for(int i=1; !done; i++ ){
    + //...
    + if(intettupted ))(done = true;
    + }

    در اين مثال ، حلقه for تا زمانيكه متغير بولي done معادل true بشود ، اجرا را ادامه خواهد داد . اين مثال مقدار i را بررسي نمي كند . اكنون يكي ديگر از گوناگونيهاي جالب حلقه for را مشاهده مي كنيد. ممكن است يكي يا هر دو عبارت مقدار دهي اوليه و تكرار غايت باشند ، نظير برنامه بعدي :

    + // Parts of the for loop can be empty.
    + class ForVar {
    + public static void main(String args[] ){
    + int i;
    + boolean done = false;
    +
    + i = 0;
    + for (; !done; ) {
    + System.out.println("i is" + i);
    + if(i == 10 )done = true;
    + i++;
    + }
    + }
    + }

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

    + for (; ; ) {
    + //...
    + }

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

  3. #43
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post حلقه هاي تودرتو

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

    + // Loops may be nested.
    + class Nested {
    + public static void main(String args[] ){
    + int i/ j;
    +
    + for(i=0; i<10; i++ ){
    + for(j=i; j<10; j++)
    + System.out.print(".");
    + System.out.println)(;
    + }
    + }
    + }

  4. #44
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post بنيادهاي كلاس java

    بنيادهاي كلاس java

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

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

    بعدا" خواهيد ديد كه كد يك كلاس ، رابط آن به داده هاي همان كلاس را توصيف ميكند.

    يك كلاس را با واژه كليدي class اعلان مي كنند . كلاسهايي كه تا بحال استفاده شده اند ، نوع بسيار محدود از شكل كامل كلاسها بوده اند . خواهيد ديد كه كلاسها مي توانند ( و معمولا" هم ) بسيار پيچيده تر باشند . شكل عمومي توصيف يك كلاس به شرح زير است :

    type methodname2(parameter-list ){
    // body of method
    }
    //...
    type methodnameN(parameter-list ){
    // body of method
    }
    }

    داده يا متغيرهايي كه داخل يك كلاس تعريف شده اند را متغيرهاي نمونه instance) (variables مي نامند . كدها ، داخل روشها (methods) قرار مي گيرند . روشها و متغيرهاي تعريف شده داخل يك كلاس را اعضائ (members) يك كلاس مي نامند . در اكثر كلاسها ، متغيرهاي نمونه يا روي روشهاي تعريف شده براي آن كلاس عمل كرده يا توسط اين روشها مورد دسترسي قرار مي گيرند . بنابراين ، روشها تعيين كننده چگونگي استفاده از داده هاي يك كلاس هستند .

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

    كليه روشها نظير()main همان شكل عمومي را دارند كه تاكنون استفاده كرده ايم .
    اما ، اكثر روشها را بعنوان staticيا publicا توصيف نمي كنند . توجه داشته باشيد كه شكل عمومي يك كلاس ، يك روش ()main را توصيف نمي كند . كلاسهاي جاوا لزومي ندارد كه يك روش ()main داشته باشند . فقط اگر كلاس ، نقطه شروع برنامه شما باشد ، بايد يك روش ()main را توصيف نماييد . علاوه بر اين ، ريز برنامه ها
    (applets) اصولا" نيازي به روش ()main ندارند .

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

    يك كلاس ساده
    بررسي خود را با يك نمونه ساده از كلاسها شروع مي كنيم . در اينجا كلاسي تحت غنوان Box وجود دارد كه سه متغير نمونه را تعريف مي كند : width، height، و depth و فعلا" ، كلاس Box دربرگيرنده روشها نيست .

    + class Box {
    + double width;
    + double height;
    + double depth;
    + }

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

    براي اينكه واقعا" يك شي ئ Box را بوجود آوريد ، بايد از دستوري نظير مورد زير استفاده نماييد :

    + Box mybox = new Box)(; // create a Box object called mybox

    پس از اجراي اين دستور ، mybox نمونه اي از Box خواهد بود. و بدين ترتيب اين شي ئ وجود فيزيكي و واقعي پيدا مي كند .

    مجددا" بياد داشته باشيد كه هر بار يك نمونه از كلاسي ايجاد مي كنيد ، شيئي ايجاد كرده ايد كه دربرگيرنده كپي ( نسخه خاص ) خود از هر متغير نمونه تعريف شده توسط كلاس خواهد بود . بدين ترتيب ، هر شي ئ Box دربرگيرنده كپي هاي خود از متغيرهاي نمونه width، heidht،و depthو مي باشد . براي دسترسي به اين متغيرها
    از عملگر نقطه (.) استفاده مي كنيد . عملگر نقطه اي ، نام يك شي ئ را با نام يك متغير نمونه پيوند مي دهد . بعنوان مثال ، براي منتسب كردن مقدار 100 به متغير width در myboxر ، از دستور زير استفاده نماييد :

    + mybox.width = 100;

    اين دستور به كامپايلر مي گويد كه كپي width كه داخل شي ئ mybox قرار گرفته را معادل عدد 100 قرار دهد . بطور كلي ، از عملگر نقطه اي براي دسترسي هم به متغيرهاي نمونه و هم به روشهاي موجود در يك شي ئ استفاده مي شود .

    دراينجا يك برنامه كامل را مشاهده ميكنيد كه از كلاس Box استفاده كرده است :

    + /* A program that uses the Box class.
    +
    + Call this file BoxDemo.java
    + /*
    + class Box {
    + double width;
    + double height;
    + double depth;
    + }
    +
    + // This class declares an object of type Box.
    + class BoxDemo {
    + public static void main(String args[] ){
    + Box mybox = new Box)(;
    + double vol;
    +
    + // assign values to mybox's instance variables
    + mybox.width = 10;
    + mybox.height = 20;
    + mybox.depth = 15;
    +
    + // compute volume of box
    + vol = mybox.width * mybox.height * mybox.depth;
    +
    + System.out.println("Volume is " + vol);
    + }
    + }



    فايلي را كه دربرگيرنده اين برنامه است بايد با نام BoxDemo.java بخوانيد زيرا روش ()main در كلاس BoxDemo و نه در كلاس Box قرار گرفته است . هنگاميكه اين برنامه را كامپايل مي كنيد ، مي بينيد كه دو فايل class. ايجاد شده اند ، يكي براي Box و ديگري براي BoxDemo . كامپايلر جاوا بطور خودكار هر كلاس را در فايل class
    . مربوط به خودش قرار مي دهد . ضرورتي ندارد كه كلاس Boxو BoxDemoو هر دو در يك فايل منبع قرار گيرند . مي توانيد هر كلاس را در فايل خاص خودش گذاشته و آنها را بترتيب Box.javaو BoxDemo.javaو بناميد .
    براي اجراي اين برنامه بايد BoxDemo.class را اجرا كنيد . پس از اينكار حاصل زير را بدست مي آوريد :

    Volume is 3000

    قبلا" هم گفتيم كه هر شي ئ داراي كپي هاي خاص خودش از متغيرهاي نمونه است .
    يعني اگر دو شي ئ Box داشته باشيد، هركدام بتنهايي كپي ( يا نسخه اي ) از lenght widthو heightو خواهند داشت . مهم است بدانيد كه تغييرات در متغيرهاي نمونه يك شي ئ تاثيري روي متغيرهاي نمونه كلاس ديگر نخواهد داشت . بعنوان مثال ، برنامه بعدي دو شي ئ Box را اعلان مي كند :

    + // This program declares two Box objects.
    +
    + class Box {
    + double width;
    + double height;
    + double depth;
    + }
    +
    + class BoxDemo2 {
    + public static void main(String args[] ){
    +
    + Box mybox1 = new Box)(;
    + Box mybox2 = new Box)(;
    + double vol;
    +
    + // assign values to mybox1's instance variables
    + mybox1.width = 10;
    + mybox1.height = 20;
    + mybox1.depth = 15;
    +
    + /* assign different values to mybox2's
    + instance variables */
    + mybox2.width = 3;
    + mybox2.height = 6;
    + mybox2.depth = 9;
    +
    + // compute volume of first box
    + vol = mybox1.width * mybox1.height * mybox1.depth;
    + System.out.println("Volume is " + vol);
    +
    + // compute volume of second box
    + vol = mybox2.width * mybox2.height * mybox2.depth;
    + System.out.println("Volume is " + vol);
    + }
    + }



    خروجي توليد شده توسط اين برنامه بقرار زير مي باشد :
    Volume is 3000
    Volume is 162

صفحه 5 از 5 نخستنخست 12345

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •