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

ایمیل خود را وارد کنید:

اوراکل (ADF(Application Development Framework یک چارچوب(Framework)  کلی می باشد که برروی استانداردهای Java EE و تکنولوژی های Open Source جهت سادگی و پیاده سازی سریع تر برنامه های Java EE ایجاد شده است که کاملا توسعه پذیر و قابل تنظیم بوسیله افزودن یا اصلاح کتابخانه ها می باشد. ADF وظایف را از طریق ایجاد سرویس […]

CardLayout پنجره ای را در نظر بگیرید که شامل چندین پنل می باشد که در یک زمان فقط یکی از این پنل ها قابل مشاهده می باشد،با استفاده از کلاس java.awt.CardLayout شما می توانید کامپوننتی را ایجاد کنید که فقط یکی از این پنل ها را در یک زمان نمایش دهد، مانند شکل زیر: زمانی […]

اطلاعات سخت افزاری CPU اطلاعات CPU شامل جزئیاتی  مثل معماری ، نام سازنده ، مدل ، تعداد هسته ها ، سرعت هرکدام از هسته ها و غیره است. برای دسترسی به چنین جزئیاتی درباره سخت افزار CPU در لینوکس، تعداد بسیار اندکی کامند برای این منظور وجود دارد که ما در اینجا بطور مختصر تعدادی […]

برنامه نویسی شی گرا در جاوا مفاهیم اولیه

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

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

کلاس ها و اشیاء

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

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

class Car{
	String color;
	Int numberOfDoors;

	Void StartEngine(){

	}
	Void stopEngine(){

	}
}

اگر به کلاس car نگاهی بیاندازید متوجه می شوید که این کلاس ویژگی هایی را که بین خیلی از ماشین ها مشترک است برای ما ارائه می کند و اکثر قریب به اتفاق ماشین ها دارای ویژگی رنگ و تعداد درب هستند  که درهمه آنها کار مشابهی انجام می دهند. شما می توانید خاصتر به موضوع نگاه کنید وکلاس Car ی تعریف کنید که مانند کلاس Car که تعریف کردیم باشد اما ویژگی های آن چندان عمومیت نداشته باشد و کلاس Car شما ممکن است یک ماشین خاص مانند یک MercedecBenz  را مدل کند.

class MercedecBenz extends Car{
	Int currentSubmergeDepth;
	Boolean hasSunroof;
	Final String MANUFACTURE;
	Void SubMerge(){
		currentSubMergeDepth=50;
		// some codes goes here;
	}
	Void openSunroof(){
		//some codes goes here
	}
}

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

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

 در اولین قدم باید اسم کلاسی که می خواهیم از روی آن یک شی بسازیم را عینا بنویسیم

MercedecBenz

در قدم بعدی باید یک اسم به عنوان نگهدارنده آدرس شی که قرار است  بعد از ساخته شدن در حافظه قرار بگیرد انتخاب میکنیم که به آن اصطلاحا Object Reference گفته می شود. این متغییر در قدم های بعدی که می خواهیم از شی خود استفاده کنیم تنها راهی است که می توانید به شی خود دسترسی پیدا کنیم.

MercedecBenz myMercedecBenz

در این مرحله از علامت = استفاده می کنیم

MercedecBenz myMercedecBenz =

در این مرحلله از کلمه کلیدی new استفاده میکنیم و بعد از ان اسم کلاسی را می خواهیم از آن شی بسازیم این بار بهمراه () می آوریم از انجایی که دستورات جاوا همیشه به یک ; ختم می شوند یک سمی کالن نیز می نویسیم

MercedecBenz myMercedecBenz = new MercedecBenz();

در اینجا لازم از به عنوان تذکر نکته ای ذکر کنم و آن این است که دلیل اینکه ما در اول شی سازی اسم کلاس را نیز می اوریم این است که می خواهیم به Run-time جاوا علام کنیم که کلاس که می سازیم از نوع MercedecBenz است. این موضوع بسیار شبیه تعریف متغیرهاست زمانی که ما متغییری مخواهیم تعریف کنیم ابتدا نوع ان را مشخص می کنیم و سپس اسمی برای آن انتخاب می کنیم.

همانطور که گفته شد از روی کلاس می توان به هر تعداد دلخواه و با توجه به اقتضای برنامه، شی ساخت مانند مثال زیر که دو شی ساخته و آدرس انها روی حافظه را در متغییر های car1 و car2 قرار داده ایم.

MercedecBenz  car1=new MercedecBenz();

MercedecBenz car2=new MercedecBenz();

Car1 و car2 متغییر هایی هستند که از آنها می توان برای دسترسی به دو شی ساخته شده از کلاس MercedecBenz دسترسی پیدا کرد. ما از متغییرهایی که ادرس یک شی در خود نگهداری می کنند (یعنی Object Reference ها )  زمانی استفاده می کنیم که بخواهیم از شی که می سازیم استفاده کنیم وگرنه دستور زیر نیز یک شی از کلاس MercedecBenz می سازد اما متغییری که ادرس ان شی ساخته شده در حافظه برای دسترسی ها بعدی برای ما نگه دارد وجود ندارد.

new MercedecBenz();

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

دیدگاه خود را به ما بگویید.