خب میخوام در این پست در مورد پکیج در جاوا صحبت کنم. پکیج، یک گروه از کلاس هایی با کاربرد مشابه، interface ها و sub-package ها است. به عبارت دیگر به وسیله ی package می توان کلاس ها را دستهبندی و سازمان دهی کرد. در جاوا پکیج به دو دسته تقسیم می شود، پکیج درون ساخته و پکیج اختصاصی که توسط برنامه نویس تعریف می شود. تعداد زیادی پکیج درون ساخته (built-in) و پیش فرض در جاوا وجود دارد که برخی از آنها عبارتند از: java, lang, awt, javax, swing, net, io, util, sql و …
به تعریف دقیقتر میشه گفت: پکیج در جاوا مکانیزمی برای محصور کردن گروهی از کلاس ها ، زیر پکیجها و رابطها است. پکیج برای:
- جلوگیری از تداخل در نامگذاری (میتوانید از طریق پکیج ۲ کلاس هم نام داشته باشید در برنامه)
- آسانتر کردن جستجو و استفاده از کلاس ها ، رابط ها و …
- تایین دسترسی بهتر (شما میتوانید به جای Public یا Private از Protected استفاده کنید که باعث میشه اون متد فقد در پکیج خودش دسترسی بهش باشه)
- پکیج را می توان به عنوان محصور سازی (کپسولهسازی) داده ها در نظر گرفت
استفاده میشوند. تنها کاری که باید انجام دهیم این است که کلاسهای مرتبط را درون پکیج ها قرار دهیم. پس از آن ، ما می توانیم به سادگی یک کلاس را از بسته های موجود در برنامه وارد و از آن استفاده کنیم. پکیج شامل گروهی از کلاسهای مرتبط است که بعضی از کلاس ها در دسترس هستند و در معرض دید قرار می گیرند و برخی دیگر برای اهداف داخلی نگهداری می شوند.
ما می توانیم از کلاسهای موجود در هر زمان که لازم باشد در برنامه خود استفاده کنیم.
نام پکیج ها و ساختار دایرکتوری بسیار به هم مرتبط هستند و شباهت دارند. به عنوان مثال، اگر نام بسته college.staff.cse است، پس سه دایرکتوری college ، staff و cse وجود دارد که cse در staff قرار دارد و staff در college هستش. همچنین ، دایرکتوری college از طریق متغیر CLASSPATH ، یعنی مسیر دایرکتوری والدین دانشکده در CLASSPATH موجود است. موضوع این است که اطمینان حاصل شود که کلاسها به راحتی در جای خود قرار دارند.
در این پست برخی از قوانین نامگذاری پکیجها را ذکر کردم. لطفا، خواهشا، التماسا این قوانین رو رعایت کنید. اینجوری نفرات بعد از شما که میخواهند کد شما رو گسترش بدن، کار راحتری دارند. یادتون باشه ممکنه روزی برسه که خودتون مجبور شوید کد دیگران رو گسترش بدین، پس رعایت کنید تا در مقابل دیگران هم رعایت کنند.
افزودن کلاس به یک پکیج
فرض کنید یک پکیج ساختیم با نام soroush و میخواهیم یک کلاس را در آن قرار دهیم:
package soroush; public class TestPackage { }
به همین سادگی.
حالا در جای دیگه میخواهیم از این کلاس استفاده کنیم:
package package2; import soroush.TestPackage; public class TestPackager { TestPackage testMyPackage = new TestPackage(); }
فرض کنید درون یک پکیج، پکیجی دیگری ساختیم:
package soroush.testpackage2; public class TesterPackage { }
من در این مثال پکیج testpackage2 را در پکیج soroush ساختم و کلاس TesterPackage رو درون آن قرار دادم.
خب در ابتدا گفتیم ۲ نوع پکیج داریم، یکی اونهایی که خود جاوا داره و یکی اونهایی که خودمون تعریف میکنیم. مثالهای بالا برای حالتی هستش که خودمون تعریف میکنیم پکیج رو. در طول import کردن یک پکیج بعضی وقتها به علامت * (ستاره) بر میخوریم. این علامت به این معنی هستش که هرچی کلاس در اون پکیج (فولدر) هستش رو به این بخش از برنامه اضافه کن. موقع استفاده از این ستاره مخصوصا در زمانی که از پکیجهای خود جاوا استفاده میکنید بسیار مراقب باشید. در صورتی که مطمئن هستید که به همش نیاز دارید ازش استفاده کنید وگرنه بیخودی حجم برنامه شما بالا میره.
دیدگاهتان را بنویسید