نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی

نوع و ارزش جاوا. انواع ابتدایی جاوا

نوع داده توسط سه جزء تعیین می شود:

  • مجموعه ای از مقادیر یا اشیاء؛
  • مجموعه ای از عملیات که می تواند برای تمام مقادیر در یک مجموعه اعمال شود.
  • ارائه داده ها، تعریف ذخیره سازی آنها.

انواع داده ها در جاوا چیست؟

زبان برنامه نویسی شامل برخی از انواع داخلی از پیش تعریف شده است و به برنامه نویسان اجازه می دهد تا انواع سفارشی خود را تعریف کنند.

در جاوا انواع داده ها به دو نوع اولیه و مرجع تقسیم می شوند.

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

یک متغیر از نوع اولیه حاوی یک مقدار و یک متغیر مرجع حاوی آدرس یک شی در حافظه است.

زبان جاوا. زمان و تاریخ

داده های ترکیبی به کلاس ها، رابط ها و آرایه ها تقسیم می شوند. اعضای یک نوع رابط، متدها و ثابت‌های انتزاعی هستند. در جاوا، انواع داده های تاریخ و زمان توسط سازنده Date () مشخص می شود:

  • d = تاریخ جدید ().

زبان جاوا. انواع داده ها: رشته ای

رشته یک کلاس تعریف شده در آن است و می توان از آن برای کار با متن (توالی از کاراکترها) استفاده کرد.

اعلان یک متغیر String مرجع به شرح زیر است: String str.

  • str = رشته جدید ("سلام").

وقتی این کد اجرا می شود چه اتفاقی می افتد؟ ابتدا حافظه تخصیص داده می شود و str با آن مکان حافظه مرتبط می شود. این با اعلان یک متغیر اولیه تفاوتی ندارد. قطعه کد دوم یک شی String در حافظه با متن "Hello" ایجاد می کند و یک مرجع به آن (یا یک آدرس حافظه) را در str ذخیره می کند.

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

  • رشته str1;
  • رشته str2;
  • str1 = رشته جدید ("سلام");
  • str2 = str1;

شی String با استفاده از عملگر جدید ایجاد می شود. اما از آنجایی که رشته ها زیاد استفاده می شوند، راه آسان تری برای ایجاد آن وجود دارد. تمام حرف های رشته ای، یعنی دنباله ای از کاراکترهای محصور شده در گیومه های دوگانه، به عنوان اشیاء رشته در نظر گرفته می شوند. بنابراین، به جای عملگر جدید، می توانید از حروف الفبای رشته ای استفاده کنید:

  • String str1 = "سلام".

انواع داده های اولیه جاوا عبارتند از: بایت، کوتاه، int، طولانی، char، float، double و boolean. آنها به دو دسته تقسیم می شوند: منطقی و عددی. دومی را می توان به اعداد صحیح و اعداد ممیز شناور تقسیم کرد.

انواع داده های عدد صحیح جاوا انواع عددی هستند که مقادیر آنها اعداد صحیح است. پنج مورد از آنها وجود دارد: بایت، کوتاه، int، طولانی و char.

بین المللی

Int یک نوع داده اولیه امضا شده 32 بیتی است. متغیر 32 بیت حافظه اشغال می کند. محدوده معتبر 2147483648 - تا 2147483647 (31-2 تا 2 31 - 1) است. همه اعداد صحیح در این محدوده، حرف یا ثابت هستند. برای مثال 10، 200-، 0، 30، 19 حروف int هستند. آنها را می توان به یک متغیر int اختصاص داد:

  • int num1 = 21;

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

هنگامی که یک حرف با صفر شروع می شود و حداقل دو رقم دارد، به صورت هشتی در نظر گرفته می شود. 0 و 00 یک مقدار را نشان می دهند - صفر.

همه لفظهای int در قالب هگزادسیمال با 0x یا 0x شروع می شوند و باید حداقل یک رقم هگزادسیمال داشته باشند:

  • int num1 = 0x123.

حروف درونی در قالب با 0b یا 0B شروع می شود:

  • int num1 = 0b10101.

طولانی

این یک نوع اولیه امضا شده 64 بیتی است. زمانی استفاده می شود که نتیجه یک محاسبه ممکن است از محدوده int فراتر رود. محدوده برای طولانی -2 63 تا 2 63 - 1 است. همه اعداد صحیح در این محدوده لفظ طولانی هستند.

برای تمایز بین انواع داده های int و long در جاوا، حرف نوع دوم همیشه به L یا l ختم می شود.

لفظ های اعداد صحیح نوع بلند را می توان در قالب های اکتال، هگزادسیمال و باینری نیز بیان کرد.

هنگامی که یک long literal به یک متغیر طولانی اختصاص داده می شود، کامپایلر جاوا مقدار اختصاص داده شده را بررسی می کند و مطمئن می شود که در محدوده قابل قبولی قرار دارد. در غیر این صورت، یک خطای کامپایل رخ خواهد داد.

از آنجایی که محدوده یک int کمتر از یک long است، مقدار متغیر int را همیشه می توان به متغیری از نوع long نسبت داد. اما تخصیص معکوس حتی در محدوده int امکان پذیر نیست. برای این، یک نشانه صریح استفاده می شود:

  • num1 = (int) num2;

بایت

بایت یک نوع اعداد صحیح اولیه 8 بیتی است. محدوده آن 128- تا 127 (-2 7 تا 2 7 - 1) است. این کوچکترین نوع عدد صحیح موجود در جاوا است. به عنوان یک قاعده، متغیرهای بایت زمانی استفاده می شوند که برنامه دارای مقادیر زیادی در محدوده 128- تا 127 باشد، یا هنگام کار با داده های باینری. برخلاف int و long literal، هیچ بایتی وجود ندارد. با این حال، می‌توانید هر int literal را به یک متغیر بایت اختصاص دهید، زیرا با محدوده بایت همپوشانی دارد.

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

علاوه بر این، شما فقط می توانید یک int literal اختصاص دهید، اما نه مقدار ذخیره شده در متغیر int، زیرا ممکن است منجر به از دست دادن دقت شود. این به یک بازیگر واضح نیاز دارد.

  • b1 = (بایت) num1.

کوتاه

یک نوع داده اولیه اعداد صحیح امضا شده 16 بیتی را نشان می دهد. محدوده آن -32768 تا 32767 (یا -2 15 تا 2 15 - 1) است.

به طور معمول، نیاز به متغیرهای کوتاه زمانی ایجاد می شود که برنامه از تعداد زیادی مقادیر استفاده می کند که از محدوده مشخص شده تجاوز نمی کند. هیچ حرف کوتاهی وجود ندارد، اما شما می‌توانید هر int literal را در محدوده کوتاه اختصاص دهید. مقدار یک متغیر بایت همیشه می تواند اختصاص داده شود. بقیه قوانین برای اختصاص int یا long به short مانند بایت است.

Char

Char یک نوع داده اولیه بدون علامت 16 بیتی است که نشان دهنده یک کاراکتر یونیکد است. عدم وجود علامت به این معنی است که متغیر نمی تواند مقدار منفی داشته باشد. محدوده 0 تا 65535 است که با رمزگذاری مجموعه کاراکترهای یونیکد مطابقت دارد. Literal یک مقدار کاراکتر را نشان می دهد و می تواند به شکل های زیر بیان شود:

  • یک کاراکتر محصور در نقل قول.
  • دنباله ای از کاراکترهای کنترل.
  • دنباله ای از کاراکترهای کنترل یونیکد؛
  • دنباله ای از کاراکترهای کنترل اکتال.

یک کاراکتر را می توان با محصور کردن آن در یک نقل قول بیان کرد: char C1 = "A". یک رشته را نشان می دهد که نمی تواند به یک متغیر char نسبت داده شود، حتی اگر رشته فقط یک کاراکتر داشته باشد. این مجاز نیست زیرا مرجعی به یک متغیر اولیه اختصاص داده نشده است. همه لفظ های رشته ای اشیاء رشته ای هستند و بنابراین ارجاع دارند، در حالی که حروف الفبای کاراکترها از نوع اولیه هستند.

دنباله فرار تحت اللفظی به صورت بک اسلش و به دنبال آن یک کاراکتر در نقل قول تک نوشته می شود. در مجموع 8 مورد وجود دارد: "\ n"، "\ r"، "\ f"، "\ b"، "\ t"، "\\"، "\" "، " \ ".

دنباله فرار یونیکد "\ uxxxx" است، که در آن \ u (یک اسلش پس از حروف کوچک u) شروع آن را نشان می دهد و xxxx دقیقاً چهار رقم هگزا دسیمال از کد کاراکتر یونیکد را نشان می دهد. به عنوان مثال، "A" 65 اعشاری و 41 هگزادسیمال است. بنابراین، این کاراکتر را می توان به عنوان "\ u0041" نشان داد.

دنباله فرار هشتگانه به صورت "\ nnn" نوشته می شود، که در آن n یک رقم هشتی است (0-7). مقادیر از "\ 000" تا "\ 377"، که در آن 377 8 مربوط به 255 10 است. بنابراین برای نمایش کاراکترها با کد 0 تا 255 استفاده می شود که برای سازگاری با سایر زبان های برنامه نویسی ضروری است. برخلاف دنباله‌های یونیکد که به هر چهار رقم هگزادسیمال نیاز دارند، می‌توانید از 1، 2 یا 3 رقم اکتال در اینجا استفاده کنید: "\ n"، "\ nn"، یا "\ nnn".

نوع بولی

Boolean فقط دو مقدار معتبر دارد: true و false. به آنها لفظ بولی گفته می شود. یک متغیر بولی را نمی توان به نوع دیگری فرستاد و بالعکس. جاوا اندازه بولی را مشخص نمی کند - به پیاده سازی خاص ماشین مجازی جاوا بستگی دارد.

انواع داده های نقطه شناور جاوا

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

در زبان جاوا، انواع داده های ممیز شناور از 32 بیت استفاده می کنند. طبق استاندارد IEEE 754، این با دقت تکی مطابقت دارد، که به شما امکان می دهد برای مثال، اعداد 1.4 x 10 -45 و 3.4 x 10 38، مثبت و منفی را نشان دهید.

تمام آنهایی که به f یا F ختم می شوند، لفظ شناور نامیده می شوند. آنها را می توان در قالب اعشاری و در نماد علمی نشان داد. برای مثال:

  • float f1 = 3.25F;
  • float f2 = 32.5E-1F;
  • float f3 = 0.325E + 1F.

نوع دو صفر را تعریف می کند: + 0.0F (یا 0.0F) و -0.0F. با این حال، برای مقاصد مقایسه، هر دو صفر برابر در نظر گرفته می شوند. علاوه بر این، او دو نوع بی نهایت را تعریف کرد: مثبت و منفی. نتایج برخی از عملیات (به عنوان مثال، تعریف نشده و با مقدار ویژه NaN نشان داده شده است.

دقت دو برابر

یک دابل از 64 بیت برای ذخیره اعداد ممیز شناور استفاده می کند. اعداد با دقت دوگانه می توانند مقادیر مثبت و منفی 4.9 x 10 -324 و 1.7 x 10 308 را نشان دهند.

همه اعداد واقعی به طور پیش فرض دو حرفی هستند. به صورت اختیاری، می توان آنها را به صراحت با پسوند d یا D نشان داد، به عنوان مثال، 19.27d. حرف مضاعف را می توان به صورت اعشاری و نماد علمی بیان کرد.

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

همه متغیرها باید قبل از استفاده از آنها اعلان شوند. شکل اصلی آگهی در زیر نشان داده شده است:

متغیر نوع داده [= مقدار]، [متغیر [= مقدار]، ...];

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

در زیر نمونه هایی از اعلان و مقداردهی اولیه متغیر در جاوا آورده شده است:

Int a, b, c; // سه عدد صحیح a، b و c را اعلام کنید. int a = 10، b = 10; // نمونه ای از مقداردهی اولیه. بایت b = 22; // مقدار اولیه یک متغیر بایت b. دو عدد پی = 3.14159; // اعلام و تخصیص pi. char a = "a"; // به متغیر a از نوع char مقدار "a" اختصاص داده می شود.

در این آموزش، نگاهی به انواع مختلف متغیرهای موجود در زبان جاوا خواهیم داشت. وجود دارد سه نوع متغیر:

  • متغیرهای محلی؛
  • متغیرهای نمونه؛
  • متغیرهای استاتیک یا متغیرهای کلاس.

متغیرهای محلی در جاوا

  • متغیرهای محلی در متدها، سازنده‌ها یا بلوک‌ها اعلام می‌شوند.
  • متغیرهای محلی زمانی ایجاد می شوند که یک متد، سازنده یا بلوک اجرا می شود و پس از اتمام متد، سازنده یا بلوک از بین می رود.
  • اصلاح کننده های دسترسی را نمی توان برای متغیرهای محلی استفاده کرد.
  • آنها فقط در یک متد، سازنده یا بلوک اعلام شده قابل مشاهده هستند.
  • متغیرهای محلی در سطح پشته به صورت داخلی پیاده سازی می شوند.
  • هیچ مقدار پیش فرضی برای متغیرهای محلی در جاوا وجود نداردبنابراین آنها باید اعلام شده و یک مقدار اولیه باید قبل از اولین استفاده اختصاص داده شود.

مثال

"Age" یک متغیر محلی است، در روش "pupAge ()" تعریف شده است و دامنه آن فقط با این روش محدود می شود.

تست کلاس عمومی (public void pupAge () (int سن = 0؛ سن = سن + 7؛ System.out.println ("سن توله سگ:" + سن)؛) اصلی خالی ثابت عمومی (Args رشته) (تست تست = جدید Test (); test.pupAge ();))

خروجی زیر را دریافت خواهید کرد:

سن توله سگ: 7

مثال بدون مقداردهی اولیه

نمونه ای از استفاده از "age" بدون مقداردهی اولیه. برنامه در حین کامپایل خطا می دهد.

آزمون کلاس عمومی (public void pupAge () (int سن؛ سن = سن + 7؛ System.out.println ("سن توله سگ:" + سن)؛) public void main (String args) (تست تست = تست جدید ( test.pupAge ();))

این منجر به پیام خطای زمان کامپایل زیر می شود:

Test.java:4:عدد متغیر ممکن است مقداردهی اولیه نشده باشد سن = سن + 7; ^ 1 خطا

متغیرهای نمونه

  • متغیرهای نمونه در کلاس اعلان می شوند، اما خارج از یک متد، سازنده یا هر بلوکی.
  • هنگامی که فضا برای یک شی در پشته تخصیص داده می شود، یک شکاف برای هر مقدار از متغیر نمونه ایجاد می شود.
  • در جاوا، متغیرهای نمونه زمانی ایجاد می شوند که یک شی با استفاده از کلمه کلیدی "جدید" ایجاد می شود و زمانی که شی از بین می رود از بین می رود.
  • متغیرها حاوی مقادیری هستند که باید به بیش از یک متد، سازنده یا بلوک یا بخش‌های اصلی وضعیت یک شی اشاره کنند که باید در یک کلاس وجود داشته باشد.
  • متغیرهای نمونه را می توان در سطح کلاس، قبل یا بعد از استفاده اعلام کرد.
  • اصلاح کننده های دسترسی را می توان برای متغیرهای نمونه ارائه کرد.
  • متغیرهای نمونه در جاوا برای همه متدها، سازنده‌ها و بلوک‌های یک کلاس قابل مشاهده هستند. به طور کلی توصیه می شود آنها را خصوصی کنید (سطح دسترسی). با این حال، می توانید با استفاده از اصلاح کننده های دسترسی، آنها را برای زیر کلاس های این متغیرها قابل مشاهده کنید.
  • متغیرهای نمونه دارای مقادیر پیش فرض هستند. پیش فرض برای اعداد 0، برای بولی ها false و برای ارجاعات اشیا تهی است. مقادیر را می توان در اعلان یا سازنده تخصیص داد.
  • متغیرهای نمونه در جاوا می توانند مستقیماً با فراخوانی نام متغیر در داخل کلاس دسترسی داشته باشند. با این حال، در روش‌های استاتیک و کلاس‌های مختلف (زمانی که دسترسی به متغیرهای نمونه داده می‌شود) باید با استفاده از نام کاملاً واجد شرایط فراخوانی شوند - ObjectReference.VariableName.

مثال

واردات java.io *; عمومی کلاس Employee (// متغیر نمونه برای هر فرزند کلاس باز است. نام رشته عمومی؛ // حقوق متغیر فقط در حقوق و دستمزد دو برابری Employee.private قابل مشاهده است؛ // نام متغیر در constructor.public Employee اختصاص داده شده است (string empName ) (name = empName; ) // به متغیر حقوق و دستمزد یک مقدار اختصاص داده می شود. public void setSalary (empSal دو برابر) (salary = empSal;) // این روش داده های کارکنان را نشان می دهد. public void printEmp () (System.out.println ( "name:" + name) ؛ System.out.println ("حقوق:" ​​+ حقوق؛) public static void main (String args) (Employee empOne = کارمند جدید ("Oleg")؛ empOne.setSalary (1000); empOne.printEmp ();))

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

نام: اولگ حقوق: 1000.0

متغیرهای کلاس یا متغیرهای استاتیک در جاوا

  • متغیرهای کلاس که در جاوا به عنوان متغیرهای استاتیک نیز شناخته می شوندکه با یک کلمه کلیدی ثابت در کلاس، اما خارج از یک متد، سازنده یا بلوک اعلان می شوند.
  • صرف نظر از اینکه چند شیء از آن ایجاد می شود، تنها یک کپی از هر متغیر استاتیک در کلاس وجود خواهد داشت.
  • متغیرهای استاتیک یا کلاس به ندرت در جاوا استفاده می شوند، مگر زمانی که به صورت ثابت تعریف شوند. ثابت ها متغیرهایی هستند که عمومی / خصوصی، نهایی و ایستا اعلام می شوند. ثابت ها هرگز از مقدار اصلی خود تغییر نمی کنند.
  • در جاوا، متغیرهای ایستا هنگام شروع برنامه ایجاد می شوند و با توقف اجرای برنامه از بین می روند.
  • قابلیت مشاهده مانند یک متغیر نمونه است. با این حال، اکثر متغیرهای استاتیک عمومی اعلام می شوند زیرا باید در دسترس کاربران کلاس باشند.
  • مقادیر پیش فرض مانند متغیرهای نمونه است. پیش فرض برای اعداد 0 و برای داده های بولی false است. و برای ارجاعات شیء تهی است. مقادیر را می توان در اعلان یا سازنده تخصیص داد. علاوه بر این، آنها را می توان در بلوک های اولیه استاتیک ویژه اختصاص داد.
  • با فراخوانی با نام کلاس می توان به متغیرهای استاتیک دسترسی پیدا کرد ClassName.VariableName.
  • وقتی متغیرهای کلاس را به صورت عمومی، ایستا، نهایی اعلام می کنیم، نام ها با حروف بزرگ هستند. اگر متغیرهای استاتیک نیستند، نحو مانند متغیرهای نمونه و محلی است.

مثال

واردات java.io *; طبقه عمومی کارمند (// حقوق (حقوق) متغیر خصوصی استاتیک خصوصی استاتیک حقوق مضاعف؛ // دپارتمان (بخش) یک ثابت ثابت عمومی استاتیکی نهایی است. System.out.println (DEPARTMENT + "متوسط ​​حقوق:" ​​+ حقوق))

این خروجی زیر را تولید می کند:

حقوق متوسط ​​توسعه: 1000

توجه داشته باشید:برای دسترسی از یک کلاس خارجی، ثابت ها باید به عنوان Employee.DEPARTMENT در دسترس باشند.

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

انواع عددی انواعی برای ذخیره اعداد هستند. وقتی ریاضی انجام می دهید، با مقادیر عددی سر و کار دارید. دو نوع نوع عددی وجود دارد. آنهایی که برای ذخیره اعداد بدون قسمت کسری طراحی شده اند نامیده می شوند کلانواع، و آنهایی که می توان قسمت کسری یک عدد را در آنها ذخیره کرد - واقعی،یا انواع با نقطه شناور.

هیچ مفهومی از اعداد بدون علامت در جاوا وجود ندارد. همه انواع اعداد در این زبان دارای امضا هستند. به عنوان مثال، اگر مقدار متغیری از نوع بایت 0x80 در هگز باشد، این عدد 1- است.

2.1.1.1. انواع عدد صحیح

فقدان اعداد بدون علامت جاوا تعداد انواع اعداد صحیح را نصف می کند. 4 نوع عدد صحیح در زبان وجود دارد که 1، 2، 4 و 8 بایت در حافظه اشغال می کنند. هر نوع - بایت، کوتاه، int و طولانی - کاربردهای طبیعی خود را دارد.

یک نوعبایت

نوع بایت یک نوع 8 بیتی امضا شده است. محدوده آن 128- تا 127 است. بهترین گزینه برای ذخیره یک جریان دلخواه از بایت های دانلود شده از شبکه یا از یک فایل است.

بایت b;
بایت c = 11;

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

یک نوعکوتاه

Short یک نوع 16 بیتی امضا شده است. محدوده آن 32768- تا 32767 است. این احتمالاً به ندرت ترین نوع مورد استفاده در جاوا است، زیرا ابتدا به عنوان نوع با مهم ترین بایت تعریف می شود.

شورت؛
t کوتاه = 129;
یک نوعبین المللی

نوع int برای نمایش اعداد صحیح امضا شده 32 بیتی استفاده می شود. مقادیر معتبر برای این نوع از -2147483648 تا 2147483647 است. این نوع داده بیشتر برای ذخیره اعداد صحیح معمولی با مقادیر تا دو میلیارد استفاده می شود. این نوع برای استفاده با آرایه ها و شمارنده ها عالی است. در سال‌های آینده، این نوع کلمات ماشینی را نه تنها برای پردازنده‌های 32 بیتی، بلکه برای پردازنده‌های 64 بیتی با پشتیبانی سریع خط لوله برای اجرای کدهای 32 بیتی در حالت سازگاری، کاملاً مطابقت خواهد داد. هر گاه متغیرهایی از انواع بایت، کوتاه، int و لفظ صحیح در یک عبارت ظاهر شوند، نوع کل عبارت قبل از تکمیل محاسبات به int فرستاده می شود.

int j = 1000;
یک نوعطولانی

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

طولانیمتر
طولانیn = 123;

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

جدول 2.1. جدول عرض و محدوده معتبر برای انواع مختلف اعداد صحیح

عمق بیت

دامنه

-9, 223, 372,036, 854, 775, 808 ... 9, 223, 372, 036, 854, 775, 807

-2, 147, 483, 648 .... 2, 147, 483, 647

-32,768 .... 32, 767

-128 ... 127

2.1.1.2. اعداد اعشاری

اعداد ممیز شناور، که اغلب در زبان های دیگر اعداد واقعی نامیده می شوند، در محاسباتی استفاده می شوند که نیاز به استفاده از قسمت کسری دارند. جاوا یک مجموعه استاندارد (IEEE-754) از انواع اعداد ممیز شناور - float و double و عملگرهایی را برای کار با آنها پیاده سازی می کند.

جدول 2.2. ویژگی های انواع ممیز شناور

عمق بیت

دامنه

1.7e-308 .... 1.7e + 308

3.4e-038 ....3.4e + 038

یک نوعشناور

در متغیرهای با نرمال یا تک دقت،با استفاده از کلمه کلیدی float، 32 بیت برای ذخیره مقدار واقعی استفاده می شود.

شناور f;
float f2 = 3.14;
یک نوعدو برابر

چه زمانی دقت دو برابر،با استفاده از کلمه کلیدی دوگانه مشخص شده است، 64 بیت برای ذخیره مقادیر استفاده می شود. همه چیز ماوراییتوابع ریاضی مانند sin، cos، sqrt یک نتیجه مضاعف برمی‌گردانند،

دو برابرد
دابل پی = 3.14159265358979323846;

متغیر عنصر اصلی ذخیره سازی در یک برنامه جاوا است. یک متغیر با ترکیبی از شناسه، نوع و محدوده مشخص می شود. بسته به جایی که متغیر اعلان شده است، می تواند محلی باشد، مثلاً برای کد داخل متد، یا می تواند یک متغیر نمونه کلاس باشد که برای همه متدهای این کلاس در دسترس است. محدوده های محلی با استفاده از بریس های فرفری اعلام می شوند.

1.1. اعلان متغیرها

همه متغیرها باید قبل از استفاده از آنها برای اولین بار در برنامه اعلام شوند. شکل اصلی اعلان یک متغیر به صورت زیر است:

نوع شناسه [= مقدار] [، شناسه [= ارزش] ...];

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

جدول 1.1. اعلان متغیرهای انواع مختلف

نوع متغیر

در یک،قبل از میلاد مسیح؛

سه متغیر عدد صحیح a را اعلام می کند،قبل از میلاد مسیح

int d = 3, e,f = 5;

سه متغیر عدد صحیح دیگر را اعلام می کند، مقداردهی اولیه می کندد وf

بایت z = 22;

یک متغیر را اعلام می کندنوع zبایت و مقداردهی اولیه می کند

دو عدد پی = 3.14159;

یک متغیر را اعلام می کندنوع pidouble و آن را با pi مقداردهی اولیه می کند

کاراکتر x ="ایکس"؛

متغیر نمادین x مقدار "x" را دریافت می کند

شناسه نام یک متغیر است. هر دنباله ای از حروف کوچک و بزرگ، اعداد و نمادهای _ (زیر خط) و $ (دلار) می تواند به عنوان یک شناسه استفاده شود. شناسه ها نباید با یک رقم شروع شوند.

مقدار هر کلمه یا عبارتی است که به مقداری از همان نوع (یا سازگار با مقدار مشخص شده در اعلان متغیر) ارزیابی می شود. در مثال زیر، سه متغیر ایجاد می شود که مربوط به اضلاع یک مثلث قائم الزاویه است، و سپس با استفاده از قضیه فیثاغورث، طول هیپوتنوز، در این مورد عدد 5، بزرگی هیپوتنوز یک راست کلاسیک است. مثلث زاویه دار با اضلاع 3-4-5 محاسبه می شود.

متغیرهای کلاس (
اصلی خالی استاتیک عمومی (Args رشته) (
دو برابر a = 3;
دو برابر b = 4;
دو برابر c;
با= Math.sqrt (a * a + b * b);
System.out.println ("c = + c);
}

1.2. دامنه متغیر

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

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

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

در جاوا، همه متغیرها باید قبل از استفاده اعلام شوند. شما می توانید یک متغیر را در هر جایی از برنامه اعلام کنید. شکل اصلی اعلان متغیرها به شرح زیر است:

یک نوع مشخص کننده[= ارزش] [، مشخص کننده[= ارزش] ...]؛

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

یک متغیر را می توان با تعیین یک علامت مساوی و یک مقدار مقدار دهی اولیه کرد. به یاد داشته باشید که عبارت اولیه باید مقداری از همان نوع (یا سازگار) مشخص شده برای متغیر را برگرداند. یک لیست محدود شده با کاما می تواند برای اعلام بیش از یک متغیر از نوع مشخص شده استفاده شود.

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

آ , ب , ج ; // اعلام سه متغیر از نوع int: a، b و c
بین المللی د = 3 , ه , f = 5 ; // سه متغیر دیگر از نوع int with را اعلام کنیدمقداردهی اولیه d و f
بایت z = 22 ; // متغیر z را مقداردهی اولیه کنید
دو برابر پی = 3.14159 ; // مقدار تقریبی متغیر را اعلام کنیدپی
کاراکتر ایکس = "ایکس"; // مقدار "x" را به متغیر x اختصاص دهید

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

روزهای تعطیل ;
سیستم . بیرون . println( روزهای تعطیل) ; // خطا! متغیر مقداردهی اولیه نشده است

قبلاً در مورد نحوه نامگذاری صحیح متغیرها صحبت کرده ایم.

مقداردهی اولیه متغیر پویا

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

آ = 3.0 , ب = 4.0 ;
// مقدار دهی اولیه پویا متغیر c
دو برابر ج = ریاضی . sqrt ( آ * آ + ب * ب) ;
سیستم . بیرون . println( "هیپوتنوز برابر است با" + ج) ;

دامنه و طول عمر متغیرها

این سؤال نسبتاً مهمی است و باید با جزئیات بیشتری به آن پرداخت. و برای انجام این کار ابتدا باید استفاده از بلوک های کد در جاوا را در نظر بگیرید.

استفاده از بلوک های کد

جاوا به شما این امکان را می دهد که یک یا چند عبارت را در بلوک های کد گروه بندی کنید که بلوک های کد نیز نامیده می شوند. این با احاطه کردن عبارات در پرانتزهای مجعد انجام می شود. پس از ایجاد، یک بلوک کد به یک واحد منطقی تبدیل می شود که می تواند در همان مکان ها به عنوان یک دستور واحد استفاده شود. به عنوان مثال، یک بلوک می تواند به عنوان یک هدف برای دستورات if و for عمل کند. عبارت if زیر را در نظر بگیرید:

( ایکس< y ) { // شروع بلوک
x = y;
y = 0 ;
} // انتهای بلوک

در این مثال، اگر x کوچکتر از y باشد، برنامه هر دو دستور را در داخل بلوک اجرا می کند. بنابراین، هر دو دستور داخل بلوک یک ماژول منطقی را تشکیل می دهند و اجرای یک دستور بدون اجرای همزمان دستور دوم غیرممکن است. ایده اصلی این رویکرد این است که در تمام مواردی که نیاز به پیوند منطقی دو یا چند اپراتور است، این کار با ایجاد یک بلوک انجام می شود.

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

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

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

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

یک نکته مهم دیگر را باید به خاطر داشت: متغیرها هنگام ورود به محدوده خود ایجاد می شوند و هنگام خروج از آن از بین می روند.

این بدان معناست که متغیر به محض خارج شدن از محدوده ارزش خود را از دست می دهد.

اگرچه بلوک ها می توانند تو در تو باشند، در بلوک داخلی، نمی‌توانید متغیرهایی را با همان نامی که در محدوده بیرونی وجود دارد، اعلام کنید.

کد نشان داده شده در مثال سمت چپ یک خطای کامپایل ایجاد می کند.

چنین ترفندهای ممکن در C و C ++ در جاوا کار نمی کند.

ثابت ها در جاوا

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

دو برابر CM_PER_INCH = 2.54 ;

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

مقالات مرتبط برتر