انواع متغیرهای جاوا:

در اين بخش مي‌توانيد در مباحث مربوط به برنامه نويسي جاوا به بحث بپردازيد

مدیران انجمن: athlon64x2, abbas.m.k, شوراي نظارت

ارسال پست
New Member
پست: 1
تاریخ عضویت: پنج شنبه 21 خرداد 1394, 12:34 pm
سپاس‌های دریافتی: 2 بار

انواع متغیرهای جاوا:

پست توسط tiago2 » پنج شنبه 21 خرداد 1394, 1:15 pm

[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]
یک متغیر به ما یک نام ذخیره سازی ارائه می دهد که برنامه های ما می توانند دستکاری کنند. هر متغیر در جاوا دارای نوع خاصی است که اندازه و طرح حافظه ی متغیر، دامنه ی مقادیری که می توانند در حافظه ذخیره شوند و مجموعه عملکردهایی که می توانند بر روی متغیرها به کار گرفته شوند، را تعیین می کند.
شما باید متغیرها را قبل از استفاده از آنها اعلام کنید. فرم پایه برای اعلام یک متغیر در زیر نشان داده شده است:
data type variable [ = value][, variable [= value] ...] ;

در اینجا [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]یکی از انواع داده های جاوا و variable نام متغیر می باشد. برای اعلام بیشتر از یک متغیر از نوع مشخص شده، می توانید از لیست مجزا شده با کاما استفاده کنید.
در زیر مثالی معتتبر از اعلام و مقداردهی متغیر در جاوا را می بینید:
int a, b, c; // Declares three ints, a, b, and c.
int a = 10, b = 10; // Example of initialization
byte B = 22; // initializes a byte type variable B.
double pi = 3.14159; // declares and assigns a value of PI.
char a = 'a'; // the char variable a iis initialized with value 'a'

این فصل انواع مختلفی از متغیر را در زبان جاوا توضیح خواهد داد. سه نوع [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] وجود دارد:
• Local variables (متغیرهای داخلی)
• Instance variables (متغیرهای نمونه)
• Class/static variables (متغیرهای استاتیک / گروه)
متغیرهای داخلی (Local variables):
• متغیرهای داخلی در متودها، سازنده ها و یا بلوک ها اعلام می شوند.
• هنگامی که متود، سازنده و یا بلوک وارد می شود، متغیرهای داخلی ایجاد می شوند و زمانیکه متود، سازنده یا بلوک را خارج می کند، متغیر از بین خواهد رفت.
• اصلاح کننده های access نمی توانند برای برای متغیرهای داخلی (local variables) استفاده شوند.
• متغیرهای داخلی تنها در داخل متود اعلام شده، سازنده و یا بلوک قابل مشاهده هستند.
• متغیرهای داخلی در سطح stack به طور داخلی اجرا می شوند.
• برای متغیرهای داخلی هیچ مقدار پیش فرضی وجود ندارد، بنابراین باید اعلام شوند و یک مقدار اولیه قبل از اولین استفاده باید اختصاص داده شود.
مثال:
در این مثال age یک متغیر داخلی می باشد. این متغیر در داخل متود pupAge() تعریف شده و دامنه ی آن تنها به این متود محدود می باشد.
Please Login or Register, to see this code
این مثال نتیجه ی زیر را تولید خواهد کرد:
Puppy age is: 7

مثال:
مثال زیر از age بدون مقدار دهی به آن استفاده می کند، بنابراین در زمان تالیف یک خطا اعلام می شود:
Please Login or Register, to see this code
این مثال خطای زیر را تولید خواهد کرد:
Test.java:4:variable number might not have been initialized
age = age + 7;
^
1 error

متغیرهای نمونه:
• متغیرهای نمونه در داخل یک گروه اما در بیرون یک متود، سازنده و یا بلوک اعلام می شوند.
• وقتی که در یک مجموعه فضایی به یک آبجکت اختصاص داده می شود، برای مقدار هر متغیر نمونه یک شکاف ایجاد می شود.
• متغیرهای نمونه زمانی ایجاد می شوند که یک آبجکت با استفاده از لغت کلیدی new ایجاد شده و وفتی که آبجکت از بین می رود نیز از بین می روند.
• متغیرهای نمونه مقادیری را در خود نگاه می دارند که باید به وسیله ی بیشتر از یک متود، سازنده یا بلوک مورد ارجاع قرار بگیرند، یا بخش های اصلی آبجکت که باید از طریق گروه نمایش داده شوند.
• متغیرهای نمونه قبل یا بعد از استفاده می توانند در سطح گروه اعلام شوند.
• اصلاح کننده های access می توانند برای متغیرهای نمونه ارائه شوند.
• متغیرهای نمونه برای همه ی متودها، سازنده ها و یا بلوک ها در گروه قابل مشاهده هستند. به طور کل پیشنهاد می شود که این متغیرها را خصوصی سازید. به هرحال قابل رویت بودن برای زیرمجموعه ها، با استفاده از اصلاح کننده های access، برای این متغیرها قابل ارائه می باشد.
• متغیرهای نمونه دارای مقادیر پیش فرض هستند. برای اعداد مقدار پیش فرض 0 می باشد، برای Boolean مقدار پیش فرض false و برای مراجع آبجکت null می باشد. مقادیر می توانند در طول اعلام آنها یا در داخل سازنده، اختصاص داده شوند.
• متغیرهای نمونه با فراخوانی نام متغیر در داخل گروه می تواند به طور مستقیم در دسترس باشد. به هرحال در داخل متودهای استاتیک و گروه های مختلف باید با استفاده از یک نام کاملا مناسب فرا خوانده شود. ObjectReference.VariableName.
مثال:
Please Login or Register, to see this code

این مثال نتیجه ی زیر را تولید می کند:
name : Ransika
salary :1000.0

متغیرهای Class/ static:
• متغیرهای Class که با نام متغیرهای static نیز شناخته می شوند، با لغت کلیدی ststic در یک گروه اعلام می شوند، اما نه در بیرون یک متود یا یک سازنده و یا یک بلوک.
• بدون توجه به تعداد آبجکت هایی که از آن ایجاد می شوند، در هر گروه فقط یک کپی از متغیر class وجود دارد.
• متغیرهای استاتیک در حافظه ی استاتیک ذخیره می شوند. استفاده از متغیرهای استاتیک غیر از اعلام نهایی و برای مقادیر ثابت و خصوصی، بسیار نادر می باشد.
• متغیرهای استاتیک با شروع برنامه ایجاد شده و با توقف برنامه از بین می روند.
• قابل رویت بودن مشابه متغیرهای نمونه می باشد. به هرحال بیشتر متغیرهای استاتیک عمومی اعلام می شوند، زیرا باید در دسترس یوزرهای گروه باشند.
• مقادیر پیش فرض مشابه متغیرهای نمونه می باشند. برای اعداد مقدار پیش فرض 0، برای Boolean این مقدار false و برای مراجع آبجکت null می باشد. مقادیر می توانند در طی declaration و یا در داخل سازنده اختصاص داده شوند. علاوه بر این، مقادیر در بلوک های ویژه ی انتصاب دهنده اختصاص داده می شوند.
• متغیرهای استاتیک با فراخوانی نام گروه قابل دسترسی می باشند. ClassName.VariableName.
• هنگام اعلام متغیرهای گروه به عنوان استاتیک عمومی نهایی ( public static final)، نام های متغیرها با حروف بزرگ انگلیسی نوشته می شوند. اگر متغیرهای استاتیک نهایی و عمومی نیستند، نامگذاری ترکیب مشابه متغیرهای نمونه و داخلی می باشد.
مثال:
Please Login or Register, to see this code
این مثال نتیجه ی زیر را تولید می کند:
Development average salary:1000
نکته: اگر متغیرها از یک گروه خارجی به دست آیند، مقدار ثابت باید با عنوان Employee.DEPARTMENT در دسترس باشد.
بخش بعدی:
شما در این فصل تقریبا از اصلاح کننده های access استفاده کرده اید. فصل بعدی در مورد Access Modifiers و Non Access Modifiers به طور دقیق توضیح خواهد داد.

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


تصویرتصویر

ارسال پست

بازگشت به “Java Programming”