کتاب آموزش جاوا

به روز ترین مطالب آموزشی و متدلوژی های برنامه نویسی

آموزش جاوا-آموزش حلقه while

۳۴ بازديد

 

سلام عزیزان... با آموزش جاوا همراه ما باشید

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

while(condition){

//code to be executed

}

 

مثال کاربردی:

public class WhileExample { 

public static void main(String[] args) { 

    int i=1; 

    while(i<=10){ 

        System.out.println(i); 

    i++; 

    } 

خروجی:

1

2

3

4

5

6

7

8

9

10

 

حلقه ی while بی نهایت در Java

آموزش جاوا : اگر مقدار بولی true را به عنوان پارامتر به دستور while پاس دهید، این حلقه مجموعه دستورات را تا بی نهایت تکرار می کند.

دستور استفاده از حلقه ی while بی نهایت:

while(true){

//code to be executed

}

مثال کاربردی:

public class WhileExample2 {

public static void main(String[] args) {

while(true){

System.out.println("infinitive while loop");

}

}

}

خروجی:

infinitive while loop

infinitive while loop

infinitive while loop

infinitive while loop

infinitive while loop

ctrl+c

حال جهت خروج از برنامه و خاتمه دادن اجرای حلقه ی بی نهایت، لازم است کلیدهای ctrl+c را همزمان فشار دهید.

 

آموزش Java – حلقه ی do-while در Java

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

دستور استفاده:

do{

//code to be executed

}while(condition)

 

مثال کاربردی:

public class DoWhileExample {

public static void main(String[] args) {

int i=1;

do{

System.out.println(i);

i++;

}while(i<=10);

}

}

خروجی:

1

2

3

4

5

6

7

8

9

10

 

حلقه ی do-while بی نهایت

اگر مقدار بولی true را به عنوان پارامتر به دستور do-while ارسال نمایید، مجموعه دستورات مورد نظر تا بی نهایت تکرار می شوند.

دستور استفاده:

do{

//code to be executed

}while(true);

مثال کاربردی:

public class DoWhileExample2 {

public static void main(String[] args) {

do{

System.out.println("infinitive do while loop");

}while(true);

}

}

خروجی:

infinitive do while loop

infinitive do while loop

infinitive do while loop

ctrl+c

اکنون جهت خروج از برنامه کافی است کلیدهای ctrl+c را فشار دهید.

آموزش جاوا ادامه دارد

آموزش جاوا-آموزش متغیرهای گروه در Java

۱۵۲ بازديد

سلام با آموزش جاوا JAVA در خدمت شما عزیزان هستم

در قسمت قبل از آموزش تصویری برنامه نویسی جاوا با کلاسها , متغیرهای Field و constructor (سازنده) در جاوا آشنا شدیم

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

لینک قسمت اول آموزش جاوا

آموزش دسترسی به متغیرهای گروه در آموزش جاوا

اکنون که چند مقدار پیش فرض داریم، می توانیم متدی را اضافه کنیم که مقادیر مختلفی را برای آنها تنظیم می کند. متد زیر را به گروه StudentResultsخود اضافه کنید.

در آموزش جاوا این متد جدید fullName نامیده می شود و دارای یک متغیر String جدید به نام aName بین پرانتزهای آن می باشد. این متد کار بزرگی انجام نمی دهد و به خاطر سادگی در اینجاست. می توانستیم متدی داشته باشیم که کارهای بیشتری انجام دهد، از جمله چک کردن خطاها، اطمینان حاصل کردن در رابطه با یک مورد مناسب، بررسی رشته های خالی و غیره. اما نکته ی مهم این است که این متد برای فیلد Full_Name یک مقدار تنظیم می کند و این فیلد را به عنوان یک مقدار باز می گرداند. وقتی این متد را فرا می خوانیم، مقدار پیش فرض را برای Full_Name خواهد نوشت و یک مقدار جدید وارد خواهد کرد. هر آنچه در متغیر aName است، مقدار جدید Full_Name خواهد بود. اجازه بدهید این مورد را در عمل ببینیم.

روی back کلیک کنید تا به گروه ExamDetails بازگردید. دو خط زیر را به آن اضافه کنید.

مثال:

1String sName = aStudent.fullName("Bill Gates");
1System.out.println( sName );

کد مربوط به گروه ExamDetails باید مشابه زیر باشد.

آنچه در اینجا انجام می دهیم، فراخوانی متد fullName از آبجکت aStudent می باشد. ما در حال توزیع مقدار "Bill Gates" می باشیم. این مقدارمربوط به فیلد Full_Name نیز خواهد بود. ( این مقدار می توانست برای خطاها بررسی شده، اصلاح شود و سپس در یک فیلد ذخیره شود.) سپس مقدار Full_Name بازگردانده شده و در متغیر sName ذخیره می شود.

درست مانند متدهایی که در بخش قبل ایجاد کردیم، گرچه متد fullName روی لیست NetBeans می باشد. به هرحال توجه داشته باشید که constructor در آنجا نیست.

برای امتحان آن کد خود را اجرا کنید. پنجره ی Output باید صفحه ی زیر را نمایش دهد.

بنابراین آنچه انجام داده ایم امتحان کردن یک مقدار برای یک متغیر فیلد در یک گروه به نام StudentResults می باشد. سپس به آن مقدار دسترسی پیدا کرده و آن را چاپ می کنیم.

حالا اجازه بدهید متدی وارد کنیم که واقعا کار مفیدی انجام می دهد. کاری که انجام خواهیم داد این است که به یک یوزر اجازه می دهیم تا یک کد امتحان دو حرفی وارد کند. سپس آن دو حرف را به متدی انتقال خواهیم داد که دو حرف را به نام یک امتحان بازمی گرداند. برای مثال اگر یک یوزر دو حرف "VB" را وارد کند، متد رشته ی "Visual Basic .NET" را گزارش خواهد داد. رشته ی بلندتر در متغیر فیلد Exam_Name ذخیره خواهد شد.

کد زیر را به گروه StudentResults، درست زیر متد fullName اضافه کنید.

متد examName دارای یک متغیر رشته به نام examCode می باشد که بین پرانتزهای آن قرار می گیرد. این رشته آن دو حرف می باشد. خطوط IF … ELSE IF بررسی می کنند تا ببینند کدام دو حرف در رشته می باشند. اگر یک هماهنگی برای دو دو حرف پیدا کردیم، تیتر بلندتر در فیلد Exam_Name قرار می گیرد. اگر هیچ گونه هماهنگی پیدا نشد، متن مربوط به فیلد "No Exam Selected" خواهد بود.

به گروه ExamDetails خود بازگشته و خط زیر را به آن اضافه کنید.

مثال:

1String exam = aStudent.examName("VB");‎

دوباره ما در حال فراخوانی متد می باشیم. به حروف "VB" دسترسی داریم. متد مقدار "Visual Basic .NET" را گزارش می دهد و سپس آن را در متغیر رشته ای که آن را exam نامیدیم، ذخیره می کند. یک print line جدید اضافه کنید، کد شما باید مانند زیر باشد.

سپس کد خود را اجراکنید، Outout مشابه زیر می باشد.

آموزش متودهای بیشتری در جاوا

بنابراین ما نام یک دانش آموز و نام یک امتحان داریم. هر دو در فیلد اسم ها در گروه StudentResults ذخیره می شوند. اکنون می توانیم یک نمونه ی امتحان نیز ذخیره کنیم.

متد جدید زیر را درست بعد از متد examName در گروه خود اضافه کنید.

این متد جدید examScore نامیده می شود با یک متغیر int به نام aScore بین پرانتزهای آن. این متد برای بازگرداندن یک مقدار String تنظیم شده است. خود متد نمره را با رشته ی " out of 50" ترکیب می کند. بنابراین اگر مقدار در aScore عدد 30 باشد، متن "30 out of 50" در فیلد Exam_Score ذخیره خواهد شد.

در گروه ExamDetails ، خط زیر را اضافه کنید.

مثال:

1String score = aStudent.examScore(30);‎

بنابراین متد جدید examScore را فرا می خوانیم و به آن مقدار 30 را می دهیم. مقدار در فیلد Exam_Score بازگردانده می شود، و سپس در یک متغیر رشته ذخیره می شود که ما آن را نمره (score) نامیده ایم.

یک متد print line جدید اضافه کنید، بنابراین کد شما شبیه به کد ما در زیر می شود.

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

برای درجه از حروف مجزا استفاده می کنیم: A، B, C، D، یا E. اگر دانش اموزی نمره ی 41 یا بیشتر بگیرد، حرف A را به آن اختصاص می دهیم. اگر نمره بین 31 و 40 باشد، درجه مربوطه B خواهد بود. برای نمره ی بین 21 تا 30 حرف C اختصاص داده می شود. درجه ی D نمره ی بین 11 تا 20 می باشد و حرف E برای نمرات بین 0 تا 10 می باشد.

برای محاسبه ی درجات بالا متد زیر را اضافه کنید.( آن را به گروه StudentResults خود اضافه کنید)

دقت داشته باشید که این متد privat (خصوصی) می باشد. درست مانند متغیرهای فیلد، خصوصی ساختن یک متد به این معناست که آن متد تنها در داخل این گروه قابل مشاهده می باشد و می تواند به وسیله ی گروه ExamDetails مشاهده شود.

برای به دست آوردن درجه، متد دیگری را در داخل گروه StudentResults تنظیم خواهیم کرد و از آن برای به دست آوردن درجه استفاده می کنیم. متد زیر را درست در بالای متد getGrade اضافه کنید.(گرچه اگر تمایل داشته باشید، می توانید آن را در زیر این متد نیز اضافه کنید: در جاوا هیچ فرقی نمی کند)

1مثال:
1String examGrade(int aScore) {‎
1        ‎ ‎
1        Exam_Grade = this.getGrade( aScore) ; ‎
1        return Exam_Grade; ‎
1        ‎}‎

این متدی است که به جای متد getGrade از گروه ExamDetails فرا خوانی می کنیم. نام این متد جدید examGrade می باشد و مجددا آن را به نمره ی دانش آموز انتقال می دهیم. به این خط دقت کنید.

مثال:

1Exam_Grade = this.getGrade( aScore );‎

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

مورد دیگری که در خط بالا باید به آن توجه داشت لغت کلیدی this در جاوا می باشد. لغت کلیدی this به معنای "this class" می باشد و نه گروه دیگری که ممکن است دارای متد هم نام باشد. این امر از هر گونه سردرگمی جلوگیری می کند. این مسئله زیاد ضروری نیست و می توانید آن را نادیده بگیرید. فراخوانی متد هنوز بدون آن کار می کند.

مثال:

1Exam_Grade = getGrade( aScore );‎

گرچه نتیجه ی نهایی هنوز همان است: ما در حال ذخیره سازی چیزی در فیلد متغیر Exam_Grade می باشیم و آن عبارت خواهد بود از عبارت "Grade is" به علاوه ی یک حرف مربوط به درجه.

برای امتحان کردن متدهای جدید، خط زیر را به گروه ExamDetails اضافه کنید.

مثال:

1String grade = aStudent.examGrade(30);‎

این خط مقداری برابر 30 را به متد examGrade می دهد. سپس در فیلد متغیر Exam_Grade مقداری گزارش می شود و در متغیری به نام grade ذخیره می شود.

با یک print line، گروه ExamDetails باید به شکل زیر باشد.

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

اگر برنامه ی شما به درستی کار نمی کند، در اینجا کد کامل مربوط به گروه StudentResults را مشاهده می کنید.

در بخش بعد در مورد Inheritance فرا خواهید گرفت.

آموزش جاوا ادامه دارد

آموزش جاوا-آموزش کلاس های Java

۷۱ بازديد

سلام با آموزش جاوا JAVA در خدمت شما عزیزان هستم

در قسمت قبل از آموزش تصویری برنامه نویسی جاوا با رشته ها در جاوا آشنا شدیم

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

لینک قسمت اول آموزش جاوا

آموزش کلاس های جاوا

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

وقتی کلاسی ایجاد می کنید، یک کد برای انجام یک کار خاص می نویسید. این کار ممکن است مربوط به یک کارمند باشد، اما فروش شرکت نیز در همان زمان شکل نمی گیرد. برای آمار فروش باید یک کلاس مجزا بنویسید. به این روش می توانید از کلاس کارمند (employee) در یک پروژه ی دیگر استفاده کنید. آمار فروش داده ی برکنار شده (redundant data) می باشند.

 

وقتی که سعی دارید نظریه های خود را در کلاس ها به کار برید، باید مسئله ی برکناری را در ذهن داشته باشید و از خود بپرسید: " آیا کدی در این کلاس وجود دارد که نیازی به آن در اینجا نیست؟"

در مورد مثال مربوط به این بخش، کلاسی خواهیم نوشت که شامل چند تمرین خواهد بود. روی وب سایت ما (www.tahlildadeh.com) چند امتحان وجود دارد که می توانید به رایگان به آنها دسترسی داشته باشید. در یک زمان سوال داده می شود و هر امتحان دارای 50 سوال می باشد. تمرین های مختلفی وجود دارند که می توانید به آنها دسترسی داشته باشید. در مورد مثال ما، سوالات را ساده می کنیم. نام شخصی که امتحان می گیرد، ایمکه کدام امتحان گرفته شده، نمره از 50 و یک درجه را ثبت می کنیم.

اجازه بدهید که یکی از موارد را شروع کنیم.

برای این مسئله یک پروژه ی جدید جاوا ایجاد کنید. پوشه ی exams را فرا بخوانید و سپس نام متود را از Main به ExamDetails تغییر دهید. سپس باید کد زیر را داشته باشید.

کلاس دومی ایجاد خواهیم کرد تا داده ی امتحان را بررسی کنیم. بنابراین در NetBeans از نوار منو روی File کلیک کنید. از منوی File گزینه ی New File را انتخاب کنید. Java را در لیست Categories و Java Class را در لیست File Types مشخص کنید. سپس روی Finish کلیک کنید. NetBeans در پروژه ی شما یک کلاس دوم ایجاد خواهد کرد. شما می توانید کامنت های پیش فرض را حذف کنید.

در بخش بعد، به متغیرهای Field خواهیم پرداخت.

آموزش جاوا

آموزش متغیرهای Field در جاوا

در بخش قبل در مورد متغیرهای داخل متدها صحبت کردیم. متغیرهایی که داخل متدها تنظیم می کنید، تنها در دسترس همان متدها می باشند و در متدهای دیگر قرار نمی گیرند، گفته می شود که دارای دامنه ی داخلی می باشند.

به هرحال می توانید متغیرهایی را در خارج از متدها تنظیم کنید که همه ی متدهای موجود در گروه شما می توانند ببینند. این متغیرها، متغیرهای Field (یا متغیرهای Instance) نامیده می شوند. می توانید آنها را دقیقا به روش دیگر متغیرها تنظیم کنید. چهار فیلد زیر را گزوه جدید StudentResult اضافه کنید.

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

برای اینکه چگونگی جهانی بودن آنها را مشاهده کنیم، به گروه ExamDetails خود بازگردید، گروهی با متد اصلی (main). برای ایجاد یک آبجکت جدید از گروه StudentResults ، کد زیر را اضافه کنید.

این همان کاری می باشد که در بخش قبل انجام دادهیم – استفاده از یک لغت کلیدی جدید برای ایجاد یک آبجکت جدید. نام آبجکت aStudent خواهد بود و از نوع StudentResults می باشد که گروه ماست.

در خط بعدی نام متغیر (aStudent) را که با یک نقطه (dot) دنبال می شود، تایپ کنید. به محض اینکه نقطه را تایپ کردید، NetBeans لیستی از متدها و پراپرتی های موجود در آبجکت شما را ارائه می دهد.

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

آموزش جاوا

شما می توانید مقادیری را برای پراپرتی ها تنظیم کنید. این مورد را امتحان کنید: کد مشخص شده ی زیر را به متد اصلی خود اضافه کنید.

ما فیلد Exam_Name را از لیست انتخاب کرده ایم و به آن مقدار "VB NET" اختصاص داده ایم. سپس خط بعدی مقدار Exam_Name را از آبجکت aStudent می گیرد. نتیجه در متغیری به نام امتحان (exam) ذخیره شده و سپس چاپ می شود. وقتی برنامه را اجرا می کنید، خروجی رشته ی "VB Net" می باشد.

بنابراین چهار متغیری که تنظیم کرده ایم، در هر دو گروه در دسترس می باشند.

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

برای اینکه یک متغیر فیلد تنها در دسترس یک گروه خاص باشد، درست قبل از اعلام فیلد لغت کلیدی private را وارد کنید. کد را در گروه StudentResults مانند زیر تغییر دهید.

 

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

سه خط را در پایین حذف کنید. aStudent را و سپس یک نقطه تایپ کنید تا لیست NetBeans را مشاهده کنید.

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

در بخش بعد در مورد چیزی به نام class constructor خواهید آموخت.

آموزش سازنده در جاوا

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

متودهای Constructor هم نام گروه می باشند. Constructor زیر را به گروه StudentResults اضافه کنید.

بنابراین نام این Constructor (سازنده) نیز StudentResults می باشد. این دقیقا همان نام گروه می باشد. برخلاف متودهای عادی، گروه constructor ها به نوع بازگشتی مانند int یا double و کلا هیچ گونه گزارشی نیاز ندارد. به هرحال شما می توانید مقادیر را به constructor های خود انتقال دهید. اگر بخواهیم مقادیر را به متغیرهای فیلد انتقال دهیم، می توانیم مانند زیر عمل کنیم.

در اینجا دو متغیر String به پرانتزهای constructor اضافه کرده ایم. در داخل پرانتزها این مقادیر را به فیلدهای Full_Name و Exam_Gradeاختصاص داده ایم. وقتی که یک آبجکت جدید ایجاد می کنید، نیاز به دو رشته بین پرانتزهای نام گروه دارید.

آموزش جاوا

مثال:

1StudentResults aStudent = new StudentResults( "Bill Gates", "A" );‎

وقتی آبجکت ایجاد می شود، مقادیر "Bill Gates" و "A"در constructor بررسی می شوند.

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

اکنون هر وقت یک آبجکت StudentResults جدید ایجاد می شود، هر چهار متغیر فیلد ما دارای مقدار پیش فرض می باشند. دقت کنید که اکنون هیچ چیز بین پرانتزهای گروه constructor وجود ندارد.

در بخش بعد به دسترسی به گروه متغیرها خواهیم پرداخت.