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

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

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

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

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

پکیج ها (Packages) و کپسوله سازی(Encapsulation) در جاوا

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


پکیج ها (Packages)

یک پروژه بزرگ می تواند دارای هزاران کلاس باشد که شما در چنین مواقعی باید آنها در بسته ها(Packeges) سازماندهی کنید(مانند پوشه های فایل).این عمل به شما اجازه دسته بندی فایل ها،کنترل دسترسی به کلاس هایتان(بخش “سطوح دسترسی” را در همین بخش مشاهده میکنید)، که این کار باعث جلوگیری از درگیری در نامگذاری نام ها میشود بدین معنی که اگر شما و همکارتان بصورت اتفاقی یک کلاسی را فراخوانی کنید،اگر کلاس های شما در پکیج های مختلفی باشند هیچ مشکلی پیش نخواهد آمد.

گاهی اوقات شما می خواهید از کتابخانه هایی از کلاس های نوشته شده جاوا در قسمت های مختلف اداره یا حتی خارج از شرکتتان استفاده کنید.برای به حداقل رساندن هم نام شدن پکیج ها شما می توانید از نام دامین شرکتتان بصورت معکوس استفاده کنید، برای مثال شما در شرکتی بنام Acme کار می کنید و نام سایت آن شرکت acme.com میباشد، شما می توانید نام همه ی پکیج های خود را با com.acme شروع کنید، برای قرار دادن یک کلاس جاوا در یک پکیج مطمئن، اعلان یا تعریف پکیج را در شروع کلاس بیاورید.برای مثال اگر کلاس Tax برای بخش حسابداری(Accounting) شرکت ایجاد شده باشد، شما می توانید آنرا بصورت زیر تعریف کنید :

package com.acme.accounting;
class Tax {
// the class body goes here
}

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

فرض کنید کلاس Tax شما نیاز است  به تعدادی URL برروی شبکه وصل شود به کمک  کلاس URL از پکیج  java.net.شما می توانید، نام کامل این کلاس را بنویسید :

java.net.URL myURL = new java.net.URL ("http://www.acme.com");

اما می توانید نام کامل کلاس را در بالای کلاس import کنید و آنگاه فقط از نام کلاس استفاده کنید :

import java.net.URL;
class Tax{
URL myURL = new URL("http://www.acme.com");
//...
}

اگر شما به import کردن چندین کلاس از یک پکیج احتیاج دارید به این صورت عمل کنید :

import java.net.*


کپسوله سازی(Encapsulation)

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

یک برنامه نویس جاوا ممکنه تصمیم بگیرد ۱۵تا از ۲۰ متغییر را پنهان کند، بنابراین دیگر کلاس ها نمی توانند به آنها دسترسی پیدا کنند. بعنوان مثال یک راننده را در نظر بگیرید، آیا لازم است کارکرد تمام قطعات یک اتومبیل را بداند؟ البته که نه، او فقط احتیاج به چطور روشنو خاموش کردن اتومبیل،کارکردن با برف پاک کن و… دارد که در اصطلاح برنامه نویسی به آن واسط مشترک اتومبیل می گوییم.


سطوح دسترسی(Access Levels)

کلاس های جاوا، متدها، متغییرهای عضو میتوانند سطوح دسترسی public،private ،protected و package  داشته باشند.برای مثال :

public class Tax {
private double grossIncome;
private String state;
private int dependents;
protected double calcTax() {}
}

کلمه کلیدی public بدین معنی است که این عناصر(یک کلاس،یک متد،یا یک متغییر) بوسیله دیگر کلاس های جاوا می توانند مورد دسترسی قرار گیرند.

کلمه کلیدی protected عنصر را نه تنها از خود کلاس بلکه از زیرکلاس ها هم مورد دسترسی قرار می دهد.

کلمه کلیدی private محدودترین می باشد.به این ترتیب که متدها و متغییرها فقط محدود به داخل کلاس می شوند.

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


کلمه کلیدی Final

کلمه کلیدی final بسته به زمینه استفاده، معانی متفاوتی دارد که در بخش های بعدی شرح داده می شود.


متغییرهای final

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

حتی اگرچه شما  بتوانید ثابت ها را داخل متد تعریف کنید، مرسوم تر اینست که برروی  سطح کلاس آنها را تعریف کنید بنابراین آنها می توانند بوسیله چندین متد از همان کلاس استفاده مجدد شوند، همچنین شما می توانید متغییرها را با کلمه کلیدی static  با یک روش دسترسی مناسب تعریف کنید بنابراین آنها می توانند به این صورت استفاده شوند :

static final int BOILING_TEMP = 212;


متدهای final

اگر شما با کلمه کلیدی final متدی را تعریف کنید، اگر کسی تصمیم به extend(بسط دادن) کلاس بگیرد این متد نمی تواند Override شود.

static final double convertToCelsius(double far){
return ((far - 32) * 5 / 9);
}


کلاس های final

اگر شما یک کلاس را بعنوان final تعریف کنید،هیچکس قادر به تغییر زیر کلاس هایش نخواهد بود. برای مثال کلاس String جاوا غیر قابل تغییر ایجاد شده است و بنابراین final تعریف شده است .اگر یک کلاس final تعریف شود همه ی متدهایش هم final می شود.

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