Типи змінних у Java. Створення змінних.
Що таке змінна в Java?
Часто Ви можете почути таке визначення змінної:
- Змінна – це певний контейнер, у якому може зберігатися значення для подальшого використання в програмі.
Пам’ятаєте, як у школі було: y = x + 1
І залежно від того, які значення приймає змінна x, змінюється значення змінної y.
Якщо x = 1, тоді x+ 1 =2
Якщо x = 2, тоді x +1 = 3
Якщо х = 1.5 , тоді x + 1 =2.5
У Java змінні грають таку ж роль, як і в наведеному прикладі зі школи y = x + 1. Вони виконують роль контейнера для різних значень, які можна підставити в змінну. У наведеному прикладі – у змінну x.
Типи змінних у Java. Оголошення змінної
У Java можна вказати, які саме значення може приймати змінна.
Для цього всі змінні згрупували в 4 групи:
- Цілочисельні (до них належать byte, short, int, long)
- З плаваючою точкою (до них належать float, double)
- Символи (char)
- Логічні (boolean)
Примітка: Разом 8 типів змінних (byte, short, int, long, float, double, char, boolean). Вельмишановний Брюс Еккель виділяє ще й 9-й тип – так званий тип void («пусте» значення). Але в цій статті ми розглянемо 8 типів, як це зазвичай прийнято. Що ж таке тип void, ми з’ясуємо в темі, яка присвячена методам у Java.
Тепер давайте розглянемо кожну групу змінних. І почнемо з цілочисельних.
Цілочисельні: byte, short, int, long
Як видно з таблички, byte, short, int, long належать до цілочисельних, тобто до цілих чисел. Наприклад, 1, 9, 1278, -5, -107 і т.д.
Очевидно:
- byte може приймати значення від -128 до 127 і при цьому займає 1 байт пам'яті
- short приймає значення від -32768 до 32767 і займає 2 байти пам'яті
- int від -2147483648 до 2147483647 і займає 4 байти пам'яті
- long від -9223372036854775808 до +9223372036854775807 і займає 8 байтів пам'яті
"Ну, добре", – скажете Ви. – Якщо byte, short, int і long відповідають за цілі числа, як мені зрозуміти, який саме тип потрібно вибирати?". Пам'ятайте дитячі задачки з математики? Вони зараз будуть дуже доречними для пояснення, за що відповідають byte, short, int, long.
Задача 1:
У Діми 3 яблука, в Ані 2 яблука. Скільки яблук у Діми і Ані разом?
Як бачите, у задачі йдеться про цілі яблука. Не передбачається, що яблука будуть ділити на частини.
Значить, якщо б ми писали код у Java, який би передбачав вирішення цієї задачі, ми б використовували для змінних цілочисельний тип. Залишається зрозуміти тільки, який саме ми б використовували: byte, short, int або long.
Завжди необхідно відштовхуватися від контексту.
- Якщо ми знаємо точно, що при вирішенні цієї задачі, навіть якщо будуть змінюватися значення, наприклад, у Діми 50 яблук, в Ані 30, у сумі це буде не більше 127 яблук, то сміливо можемо використовувати тип byte.
- Якщо ж ми знаємо, що умови задачі можуть змінитися і в Діми може бути, наприклад, 10 000 яблук, а в Ані, наприклад, 7 000 яблук, то вже тип byte ми використовувати не можемо. Оскільки це явно виходить за межі допустимих значень у byte – не більше 127. Значить, ми могли б використовувати тип short, у якого максимально допустиме значення 32767.
- Якщо ж припустити, що в Діми і у Ані може бути навіть більше, ніж 32767 яблук. Ну, наприклад, у них яблуневі сади по всій Україні. Тоді необхідно використовувати тип int. До речі, int – це скорочено від англійського integer (ціле число).
- А якщо припустити, що Діма і Аня – це «яблучні магнати» і їм належать усі яблуневі сади у світі, то тоді число може бути набагато більшим, ніж навіть максимальне значення int 2147483647. І тоді необхідно використовувати тип long.
Однак найчастіше при написанні програм на Java, Ви будете використовувати тип int. Це найпоширеніший цілочисельний тип. Більш того, тип int у Java є типом "за замовчуванням" для цілочисельних типів. Що це означає, Ви дізнаєтеся на практиці.
Перш ніж використовувати змінну, її необхідно оголосити. А оголошуються змінні так.
А ось і приклади оголошення змінних:
byte apples;
short apples;
int apples;
long apples;
І тут відразу ж хочеться сказати про те, що змінні, коли їхня назва складається з 2 і більше слів, пишуться разом і немовби "горбиками", як у верблюда. Такий стиль написання слів називається CamelStyle (від англ. Camel – "верблюд").
Наприклад:
int applesDima;
int applesAnnaJune;
int applesDimaJuneUkraine;
Бачите, назви прикладів змінних складаються з 2 та більше слів і пишуться разом. Причому перше слово пишеться з малої літери, а у всіх наступних словах перша буква велика. Тепер Ви знаєте, що це – CamelStyle, стиль написання назв. Він іноді називається CamelCase. Ми про це навіть статтю написали 🙂
Ну що ж, саме час зрозуміти, за що відповідають змінні з плаваючою точкою.
З плаваючою точкою: float, double
І знову звернемося до прикладу шкільної задачі.
Задача 2:
У Діми 3,5 яблука, в Ані 2,5 яблука. Скільки яблук у Діми і Ані разом?
Як бачите, у задачі вже йдеться не про цілі яблука. Уже йдеться про дробові числа. І, отже, ми вже не можемо використовувати цілочисельний тип: нам не підійде ні byte, ні short, ні int, ні long. Запам'ятайте: як тільки йдеться про дробові числа, значить, йдеться про float або double. Приклади дробових чисел: 11.0, 1.8, 3.141562, 9.0, 12.579, 1278.0, -5.0, - 9.4, -107.0, -107.356 і т.д.
Як видно з таблички:
- float може приймати значення від -3.4Е +38 до 3.4Е 38 ° С і при цьому займає 4 байти пам'яті
- double приймає значення від -1.7E + 308 до 1.7Е + 308 і займає 8 байтів пам'яті
Запам’ятайте:
- дробові числа пишуться не через кому, як ми звикли зі школи, а через крапку. Наприклад, 1,5 – це неправильно. Правильно 1.5
- float визначає значення одинарної точності. Це означає, що змінні цього типу зручні, коли потрібно дробова частина без особливої точності. Наприклад, для грошових сум.
- double забезпечує подвійну точність, і це видно з назви (double – подвійний).
Перш ніж використовувати змінну, її необхідно оголосити. А оголошуються змінні float і double за тим же принципом.
А ось і приклади оголошення змінних:
float money; // оголосили змінну money типу float
float wage; // оголосили змінну wage типу float
float c; // оголосили змінну с типу float
double stat; // оголосили змінну stat типу double
Символи: char
В Java для char використовується кодування Unicode. Як видно з таблички, діапазон допустимих значень char від 0 до 65536 і при цьому займає 2 байти пам'яті. Від'ємних значень не існує. Насправді змінна типу char зберігає не сам символ, а його числовий код з таблички Unicode, завдяки чому ми можемо проводити цілочисельні операції над символами.
Перш ніж використовувати змінну, її необхідно оголосити. А оголошуються змінні char за таким же принципом, що і раніше.
Приклади оголошення змінних:
char y; // оголосили змінну y типу char
char f; // оголосили змінну f типу char
Логічні: boolean
Логічні, або їх ще називають булеві, значення можуть приймати тільки одне з двох можливих значень: true або false.
Тільки у слов'ян можлива така розмова:
– Їсти будеш?
– Та ні мабуть.
Це те, що дуже дивує іноземців, коли вони вивчають, наприклад, українську або російську мови. Так все-таки так чи все-таки ні?
Так ось, у мові програмування Java все дуже точно:
- або true (з англійської – "істина")
- або false (з англійської – "брехня)
Трохи пізніше Ви зрозумієте, де застосовується цей тип змінних, коли ми, наприклад, дійдемо до теми конструкції розгалуження. А поки просто запам'ятайте, що є такий тип. Нехай це буде поки що "темною конячкою" для Вас.
Перш ніж використовувати змінну, її потрібно оголосити. А оголошуються змінні boolean за таким же принципом, що і раніше.
Приклади оголошення змінних:
boolean check1; // оголосили змінну check1 типу boolean
boolean check2; // оголосили змінну check2 типу boolean
Ну ось, тепер Ви знаєте, за що відповідають ці типи змінних:
Що ще Ви повинні знати?
- Ви повинні знати, що ці типи змінних належать до так званих примітивних типів змінних. Тому, якщо почуєте "примітивні типи даних", "примітиви" або "primitives", знайте, йдеться про 8 типів змінних – byte, short, int, long, float, double, char, boolean.
- Є ще один тип змінних – тип String. Про нього ми поговоримо в статті "Як присвоїти значення змінної"
- У Java дуже важливо правильно оформляти код. Так-так, не тільки писати програми, які працюють, а ще й які правильно оформлені. Існує цілий звід правил, який називається Code Conventions у Java. Тому можете сміливо завантажувати і поступово вивчати. А зараз ми розглянемо тільки частину Code Conventions, а саме правила написання назв змінних. Отже, запам'ятовуємо.
5 правил вибору назв для змінних:
Правило №1 – змінні пишуться тільки латинськими літерами. Жодної кирилиці!!!
Наприклад:
int st;
int width;
Правило №2 – ім'я змінної, за можливості, повинно "говорити"
Наприклад:
int s; // так можна називати змінну, але коли коду багато і всі змінні мають назву, яка «не говорить», код дуже важко читати
int size; // цей варіант "каже" більше, ніж перший варіант int s; оскільки зрозуміло з назви, що змінна відповідає за розмір чогось
Правило №3 – з чого може/не може починатися ім'я змінної
Може починатися з :
- Будь-яких латинських букв
- $ або _
Не може починатися з:
- Цифр
Нижче наводимо кілька прикладів – правильних і неправильних.
Правильно:
- int square;
- int $money;
- int width;
- int boxSize;
- double sum;
- double sumJune;
Неправильно:
- int 2square;
- int 101dalmatians;
Правило №4 – назва змінної, що складається з 2 і більше слів, пишеться в CamelStyle
Що таке CamelStyle ми з Вами вже обговорили в цій статті трохи вище.
Правило №5 – не можна використовувати в назвах змінних ці 54 слова:
abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, strictfp, String, super, switch, synchronized, this, throw, throws, transient, true, try, void, volatile, while
Ці 54 слова мають особливе значення при написанні коду на Java. Поступово Ви зрозумієте, де використовується кожне слово. Також, прочитавши цю статтю, з 54 слів Ви вже знатимете ті слова, які ми виділили синім кольором:
abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, strictfp, String, super, switch, synchronized, this, throw, throws, transient, true, try, void, volatile, while
ПІДСУМУЄМО:
Усього 4 групи змінних:
- Цілочисельні (до них належать byte, short, int, long)
- З плаваючою точкою (до них належать float, double)
- Символи (char)
- Логічні (boolean)
Ці 8 типів змінних (byte, short, int, long, float, double, char, boolean) належать до так званих примітивних типів змінних.
Перш ніж використовувати змінну, її необхідно оголосити:
5 правил вибору назв змінних:
- Змінні пишуться тільки латинськими літерами. Жодної кирилиці!!!
- Ім'я змінної, якщо можливо, має "говорити"
- Якщо змінна складається з 2 і більше слів, то пишеться в CamelStyle (інша назва – CamelCase)
- Є 54 слова, які не можна використовувати в назвах змінних
- Ім'я змінної:
- може починатися з будь-яких латинських букв, $ або _
- не може починатися з цифр
Також є ще один тип змінних – тип String, про який ми поговоримо в статті "Як присвоїти значення змінної в Java".