برنامه نویسیجاوا

آموزش زبان برنامه نویسی جاوا – جلسه سوم

مجله اینترنتی آی تی پورت

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

ساختار های کنترلی

در زمانی که یک برنامه بر روی یک کامپیوتر اجرا می‌شود از خط اول برنامه روند اجرای برنامه آغاز می‌شود و تا پایان به ترتیب خط به خط اجرا می‌شود به عبارت دیگر دستورات پشت سر هم اجرا می‌شوند. اگر ما بخواهیم در طول اجرای برنامه ‌این روند را تغییر دهیم یعنی بعد از دستور ۲ بجای اینکه دستور ۳ اجرا شود دستور ۵ یا ۱ اجرا شود باید از دستوراتی استفاده کنیم که این روند ترتیبی را بشکند. به این دستورات، دستورات کنترلی می‌گویند و به ساختارهای برنامه‌نویسی که از این دستورات استفاده می‌کنند ساختار کنترلی گفته می‌شود. در زیر چند ساختار کنترلی معروف که در برنامه‌نویسی بسیار پرکاربرد است را توضیح می‌دهیم.

ساختار کنترلی شرطی

به این دلیل به آنها ساختار کنترلی شرطی می‌گویند که اجرای برنامه را وابسته به وجود مقدار یا شرط خاص می‌کنند.

ساختار کنترلی شرطی if

یکی از پرکاربردترین ساختارهای کنترلی که در تمام برنامه‌ها مورد استفاده قرار می‌گیرد ساختار شرطی if می‌باشد. برنامه نویس با استفاده از این ساختار مشخص می‌کند که در شرایط مورد نظرش چه دستوراتی باید اجرا شود. ساختار کلی این دستور به فرم زیر است:

فرم اول : اگر شرط درست باشد دستور ۱ اجرا می‌شود و اگر نا درست باشد روند اجرای برنامه به دستور بعد از if  خواهد رفت. مثال :

public static void main (String [] arg)

{

	int Num ;

	Num = 2 ;



	if ( Num  == 2 )

	{

		System.out.print ("Number is two");

}

}

اگر مقدار Num  را به مقداری به جز مقدار ۲ تغییر دهید در خروجی چیزی چاپ نمی‌شود.

فرم دوم : گاهی اوقات ما لازم داریم در صورتی که شرط if  صحیح نباشد عمل دیگری انجام دهیم برای این موضوع از دستور else استفاده می‌کنیم.

public static void main (String [] arg)

{

	int Num ;

	Num = 2 ;



	if ( Num  == 2 )

	{

		System.out.print ("Number is two");

}

	else

{

		System.out.print ("Number is not two");

	}

}

در این حالت اگر مقداردهی به متغییر Num همان ۲ باشد در خروجی Number is two چاپ می‌شود، در غیر این صورت چیزی که در خروجی چاپ می‌شود Number is not two  است.

نکته: در زبان برنامه سازی جاوا در صورتی که دستورات داخلی بیش از یک دستور باشند از بلاک استفاده می‌کنیم. برای این منظور دستورات را در بین دو علامت { } قرار می‌دهیم. مثال :

public static void main (String [] arg)

{

	int num ;

	num = 2 ;



	if ( num  == 2 )

	{

		System.out.print ("your num is:"+ num);

	}

}

حتی ما در توابع و متدهای داخل برنامه به دلیل اینکه بیش از یک دستور در درون بلاک نوشته می‌شود از بلاک استفاده می‌کنیم. البته این قالب در زبان C استاندارد و ویرایش‌های بعدی زبان C و جاوا و سایر زبان‌هایی که از C به ارث گرفته شده‌اند وجود دارد.

ساختار کنترل شرطی switch

در طول برنامه بسیار اتفاق می‌افتد که برای مقادیر مختلف یک متغیر اعمال متفاوتی باید انجام شود. همانطور که دیدید برای دو حالت و حتی سه حالت از ساختار if  استفاده می‌کنیم ولی برای حالت‌های بیشتر از ساختارswitch  استفاده می‌کنیم. فرم کلی این ساختار بصورت زیر است:

اگر مقدار جلوی case  با مقدار متغیر برابر باشد دستورات آن قسمت اجرا می‌شود. قسمتdefault ، یک قسمت دلخواه در این ساختار می‌باشد. یعنی اگر برنامه نویس نیاز داشت، در برنامه خود از این قسمت استفاده می‌کند در غیر اینصورت آن را حذف می‌کند.

البته این نکته را هرگز فراموش نکنید، اگر بعد از پایان دستورات هر قسمت case  از دستور break ، که یک دستور برای شکستن کلیه ساختارهای کنترلی چه شرطی و چه حلقه‌های تکرار می‌باشد استفاده کنید از قسمت شرط خارج می‌شوید. حال اگر از این دستور استفاده نکنید بعد از اجرای دستورات آن قسمت از case ، دستورات case های پایین تر نیز مورد بررسی قرار می گیرند. البته بعد از آخرین case  و یا بعد از قسمت default ، احتیاجی به استفاده از دستورbreak  نمی‌باشد. چون ساختارswitch  بعد از اجرای این دستورات تمام می‌شود.

public static void main (String [] arg)

{

	int day =1;

	switch ( day )

	{

		case 1 : 

			System.out.print ("شنبه");

			break;

		case 2 : 

			System.out.print ("یکشنبه");

			break;

		case 3 : 

			System.out.print ("دوشنبه");

			break;

		case 4 : 

			System.out.print ("سه شنبه");

			break;

		case 5 : 

			System.out.print ("چهار شنبه");

			break;

		case 6 : 

			System.out.print ("پنج شنبه");

			break;

		case 7 : 

			System.out.print ("جمعه");

			break;

		default :

			System.out.print("عدد وارده برای تعیین روز اشتباه است !");

	}

}

در برنامه فوق شما می‌توانید مقدار متغیر day را از ۱ تا ۷ مقداردهی کنید در غیر این صورت خروجی برنامه برابر با عبارت داخل ” ” در قسمت default است.

ساختارهای حلقهای

از این ساختارها برای تکرار یک یا مجموعه‌ای از دستورات استفاده می‌شود.

ساختار حلقه تکرار while

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

public static void main (String [] arg)

{

	int num ;

	num = 0 ;

	while ( num < 5 )

	{

		System.out.print( "*" );

		num ++ ;

	}

}

با اجرای این برنامه مشاهده می‌کنید که ۵ ستاره در خروجی چاپ می‌شود که نشان دهنده این مطلب است که حلقه تکرار while  در درون این برنامه ۵ بار تکرار می‌شود.

ساختار حلقه تکرار do … while

این حلقه جزء حلقه‌های تکرار شرط در انتها می‌باشد که این بدین معناست که اول دستورات درون حلقه یک بار اجرا می‌شوند و اگر شرط حلقه درست باشد دستورات درون حلقه تکرار می‌شوند. مثال :

public static void main (String [] arg  )

{

	int num ;

	num = 0 ;

	do

	{

		System.out.print( "*" );

		num ++ ;

	}

	while ( num < 5 );

}

برای مشخص‌تر شدن فرق این دو حلقه اگر در ابتدا به متغیر num  مقدار ۱۰ بدهید می‌بینید که یک’*’  چاپ می‌شود ولی در حلقهwhile  اگر به num  مقدار ۱۰ را بدهید هیچ ‘*’ چاپ نمی‌شود.

ساختار حلقه تکرار for

در این نوع ساختار حلقه‌ای شما می‌توانید به تعداد مورد نیاز دستورات را اجرا کنید به طور مثال:

public static void main (String [] arg)

{

	for (int i=0;i<10;i++)

	{

		System.out.print(i);

	}

{

همانطور که مشاهده می‌کنید در این جا ما یک متغیر در درون for تعریف کردیم که مقدار آن برابر “صفر” می‌باشد، در قسمت بعدی شرطی برای آن تعریف کردیم، آن شرط به معنای این است که آیا مقدار i کوچکتر از ۱۰ می‌باشد؟ جواب در مرحله اول صحیح است پس یک واحد به i اضافه می‌شود و در خروجی مقدارi  را نمایش می‌دهد این مراحل آنقدر اجرا می‌شود تا مقدارi  کوچکتر از ۱۰ نباشد سپس برنامه از داخل حلقه خارج می‌شود.

آرایه‌ها

در دنیای واقعی ما یکسری اطلاعات داریم که این اطلاعات بصورت لیست می‌باشند مثلاً لیست اسامی دانشجویان، لیست شماره حسابها و  . . . برای نگهداری این اطلاعات در کامپیوتر ما مجبوریم تعداد زیادی متغیر تعریف کنیم اگر بخواهیم این متغیرها را نام‌گذاری کنیم برای مثال باید به صورتx1,x2,x3,…,xn  تعریف کنیم. این عمل در برنامه باعث می‌شود که برای دسترسی به اطلاعات دچار دردسر شویم. برای رفع این مشکل در اکثر زبان های برنامه سازی این امکان وجود دارد که شما متغیری از نوع لیست داشته باشید. که به آن آرایه (Array) گفته می‌شود. این نوع متغیر می‌تواند به تعداد محدود به صورت ایستا یا پویا اعضایی را دارا باشد که ما مقادیر خود را در این اعضاء ذخیره و بازیابی ‌کنیم. نحوه تعریف یک آرایه در زبان جاوا به صورت زیر است.

Type variable name [];

Variable = new Type [Size];

برای دسترسی به اعضای آرایه به منظور ذخیره و بازیابی اطلاعات درون آرایه فقط کافی است که شماره عضو یا خانه‌ای که در اصطلاح به آن اندیس آرایه می‌گویند را بدانید. مثال :

int [] numbers  = new int [7] ;

numbers [0] = 2 ;

numbers [1] = 27 ;

numbers [2] = 20 ;

System.out.print ( numbers [2] );

در این مثال خروجی برابر عدد ۲۰ است. البته ما در جاوا آرایه‌های چند بُعدی نیز داریم که ما در اینجا فقط به مثالی از آرایه‌های دو بُعدی کفایت می‌کنیم.

int cordinate [][] = new int [10][12];

cordinate [2][3] = 7 ;

System.out.print ( cordinate [2][3] ) ;

در این مثال خروجی برابر است با ۷٫

ماهیت برنامهنویسی شیگرایی

در ابتدا برنامه‌نویسی، ساختار یافته بود. این روش فقط برای پیاده‌سازی رویدادها در نظر گرفته شده بود، که سرعت برنامه‌نویسی را کند می‌کرد و پروژه‌های نرم‌افزاری را به طور کامل غیر قابل توسعه می‌نمود تا این که ماهیت برنامه‌نویسی شی‌گرایی (OOP) شکل گرفت. شی‌گرایی به برنامه نویس دیدگاهی ارائه می‌دهد تا بتواند به راحتی پروژه خود را پیاده‌سازی کرده و آن را قابل توسعه کند.

مفهوم کلاس

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

اجزای کلاس

اجزای کلاس عبارتند از:

– خصوصیات: خصوصیات همانند اسم، فامیل، تاریخ تولد و … یک انسان می‌باشد.

– متدها: متدها نیز همانند رفتار یک انسان در مقابل رویدادها عکس العمل نشان می‌دهند.

مثال:

class human

{

	String lastname = "elison";

	String address="newyork" ;

	public void hello()

	{

		System.out.print("hello human");

	}

}

در این مثال lastname و address خصوصیات Human و hello() رفتار Human می‌باشند، زمانی که فردی به Human سلام می‌کند Human در پاسخ جواب می‌دهد hello human، Human می‌تواند هزاران رفتار و خصوصیات داشته باشد، و سایر افراد می‌توانند از خصوصیات او استفاده کرده و یا رفتار او را صدا بزنند.

گفتگو ها
    مطهره

    ممنون بابت آموزش های خوب تون

    موفق باشید.

    بابک حسینی

    مثل همیشه آموزش ها عالی هست.

    پیگیر آموزش ها هستم

    موفق باشی.

    عالی بود داداش