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

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

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

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

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

متغییر ها ، ثوابت و نوع های داده ای در جاوا

بعضی مقادیر در طول زمان می توانند تغییر کنند (متغییرها) و بعضی ها ثابت هستتند و تغییری نمی کنند (ثوابت). در این بخش برای روشن شدن بهتر موضوع توضیحاتی ارائه می کنیم.

تعریف متغییرها

جاوا ذاتا یک زبان دارای نوع داده است یعنی برعکس بعضی زبان های دیگر مانند php نمی توانید متغییری داشته باشید که نوع آن مشخص نباشد اما در php می توانید متغییر داشته باشید که فقط نام متغییر را ذکر می کنید و می توانید هر نوع داده ای را در آن نگهداری کنید اما در جاوا علاوه بر اینکه در زمان تعریف متغییر باید نوع آن را مشخص کنید باید نوع داده ای که می خواهید در آن متغییر ذخیره کنید همخوانی داشته باشد. در بحث مربوط به متغییرها دومضوع مطرح است. اعلان یا تعریف متغییرها (Declaration)  که چند و چون آن قبلا اشاره شد، موضوع بعدی مقداردهی به متغییرهاست که اصطلاحا به Initialization گفته می شود که توان مقداردهی به یک متغییر همراه با تعریف متغییر، آن را دریک گام انجام داد یا اینکه متغییر را در قسمتی از برنامه تعریف کرده و در قسمت دیگری به آن مقداردهی کنیم.

یک مرحله ای

int i=0;

دو مرحله ای

int i;

i=0;

برای ذخیره مقادیری که مقدارشان هیچ وقت تغییر نخواهد کرد باید آن را بصورت ثابت یا constant تعریف کرد. برای تعریف ثابت در جاوا کافی است که به ابتدای فرایند تعریف متغییر کلمه کلیدی final را اضافه کنیم مانند مثال زیر

Final String MANUFACTURER;

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

final String MANUFACRURER;

MANUFACTURER=”J.B Limited”;

و اینکار باید در یک مرحله انجام شود

final String MANUFACTURER=”J.B Limited”;

 


نوع های داده ای اولیه

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

int chairs=12;

char grade=’a’;

boolean activation=false;

double nationalIncome=2386349853832.78;

float hourlyRate=12.50f;

برای اینکه نوع مقداری که می خواهیم درون یک متغییر float بریزیم دقیقا مشخص شود که از نوع float است به انتهای مقدار ان یک f اضافه می کنیم.

long totalCars=40273835283648392L;

برای اینکه نوع مقداری که می خواهیم درون یک متغییر long بریزیم دقیقا مشخص شود که از نوع long است به انتهای مقدار ان یک L اضافه می کنیم.

درجدول زیر خصوصیات کلی نوع های داده ای اولیه در حاوا بطور خلاصه آورده شده است.
 

نوع داده ای مقدار پیش فرض اندازه به بیت مقدار حداقل مقدار حداکثر کلاس پوششی
 byte  ۰ ۸ bits in memory  -۱۲۸  +۱۲۷ Byte
 short  ۰ ۱۶ bits in memory  -۳۲۷۶۸  +۳۲۷۶۷ Short
 int  ۰ ۳۲ bits in memory  -۲۱۴۷۴۸۳۶۴۸  +۲۱۴۷۴۸۳۶۴۷ Integer
 long  ۰L ۶۴ bits in memory  -۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۸  +۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۷ Long
 float  ۰٫۰f ۳۲-bit IEEE 754 floating point ۱٫۴۰۱۲۹۸۴۶۴۳۲۴۸۱۷۰۷e-45  ۳٫۴۰۲۸۲۳۴۶۶۳۸۵۲۸۸۶۰e+38 Float
 double  ۰٫۰d ۶۴-bit IEEE 754 floating point  ۴٫۹۴۰۶۵۶۴۵۸۴۱۲۴۶۵۴۴e-324d  ۱٫۷۹۷۶۹۳۱۳۴۸۶۲۳۱۵۷۰e+308d Double
 char  ‘\u0000’ ۱۶-bit, unsigned Unicode character    ۰ to 65,535 Char
boolean false ۱ bit in  memory تعریف نشده تعریف نشده Boolean



همانطور که متوجه شده اید در نوع char بجای یک بایت از دو بایت استفاده شده است و این ویژگی به شما این امکان را می دهد که شما فقط محدود به حروف الفبا و تعدادی کاراکتر خاص نیستید و با استفاده از این دو بایت می توانید ۶۵۵۳۶ کاراکتر داشته باشید.


 حوزه متغییرها

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

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

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