Для розуміння мови Java дуже важливо розуміти його синтаксис. Одна з його ключових, фундаментальних цеглинок — це змінні.
Що таке змінна в Java
Змінна Java — це контейнер, в якому може зберігатися деяке значення даних для подальшого використання в програмі. По суті, змінна — це мінімальна неподільна одиниця Java-додатка. Змінні в Java бувають двох видів: призначені для дрібних даних (примітивні змінні) і більш складних, важких (посилальні змінні). Сьогодні ми розглянемо перший випадок, коли змінні зберігають саме значення даних. Такі змінні називають примітивними.Оголошення змінних у Java
Давайте розглянемо такий приклад:int x = 9;
Розберемо, що ми бачимо: int
тип змінної, що описує цілі числа, що знаходяться в проміжку -2147483648 до 2147483647 x
- ім'я змінної (нам же потрібно їх відрізняти між собою, вірно?) =
знак привласнення якоїсь змінної, якогось значення 9
- її безпосередньої значення ;
кінець цієї команди А тепер зберемо все разом: ми задаємо, що змінна типу int
з ім'ям x
має значення 9
. Даний приклад має скорочену форму запису, повна виглядає так:
int x;
x = 9;
У першому рядку ми бачимо оголошення змінної з присвоєнням їй імені, тобто цим говоримо JVM виділити місце під змінну int
(4 байти) і задати їй ім'я x
. У другій ми задаємо їй значення 9
. До цього вона мала значення, встановлене за умовчанням, саме — 0
. Варто сказати кілька слів про назву змінних. Як правило вони пишуться в нижньому верблюжому стилі. Тобто, наприклад, якщо ми маємо змінну, яка описує кількість людей (count of people), відповідне для неї ім'я буде:
int countOfPeople;
У цій назві перше слово починається з малої (маленької) літери, а кожне наступне - з великої (великої). Це робиться для зручності читання таких імен, тому що зазвичай імена змінних складаються з більш ніж одного слова.
Перевизначення змінних
Повернемося до нашого прикладу з оголошенням змінної:int x = 9;
Якщо ми одного разу поклали в змінну якесь значення, це означає, що під час виконання програми змінна x
завжди матиме значення 9
. Ми можемо її перезаписати:
x = 4;
Все майже так само, але ми вже не додаємо тип ( int
), адже він прописаний при оголошенні змінної (оголошенні про її існування). Далі ми лише її перевикористовуємо, як тут ми бачимо її перезапис (задаємо нашої змінної нове значення, затираючи старе). Припустимо, що в нас ще виникла змінна:
int y = 7;
І запитавши: x = y;
Старе значення змінної x
буде видалено, перезаписавшись копією значення y
, а саме — 7
. Також можна задати значення якоїсь іншої змінної, збільшене на потрібне число:
x = y + 5;
Так як у нас змінна y
дорівнювала 7, в результаті x
буде дорівнює 12. Цікавіша можливість виконати дані дії:
x = x + 6;
Що ми тут бачимо? Змінною x
задається значення, що дорівнює минулому, збільшеному на 6, тобто це буде: 12 + 6 = 18. Цей запис можна скоротити, опустивши x
:
x =+ 6;
Види змінних
Додаток у Java складається з класів та об'єктів. Розглянемо, якими бувають Java змінні:- змінні об'єкти;
- локальні змінні;
- змінні класу.
public class Dog {
public void bark() {
}
}
Змінні об'єкти
Змінні оголошуються у класі, але при цьому не в методі, конструкторі чи блоці.public class Dog {
public int value = 9;
public void bark() {
}
}
Щоб викликати цю змінну, нам потрібно спочатку створити об'єкт:
Dog dog = new Dog();
dog.value;
Змінні створюються лише після створення об'єкта (тобто після створення об'єкта з допомогою new
). В об'єкті внутрішні змінні завжди видимі всім методів, конструктора чи чогось усередині цього об'єкта. Як говорилося вище, змінні об'єкта мають значення за замовчуванням. Для числа значення за умовчанням - 0, для логічних (boolean) - false, для посилань на об'єкт - null.
Локальні змінні
Дані змінні оголошуються методами, конструкторах чи блоках.public class Dog {
public void bark() {
int value = 9;
}
}
Локальні змінні існують лише у викликаному блоці коду, при закінченні якого вони видаляються з пам'яті. Вони видно лише в межах оголошеного методу, конструктора чи блоку. Тобто використовувати змінну, наприклад, в іншому методі не можна. Модифікатори доступу не можна використовувати для локальних змінних. Який у них сенс, якщо далі меж методу змінну не видно? Цей вид змінних створюється, коли метод (чи конструктор, чи блок) викликається і знищується після завершення.
Змінні класи
Цей вид змінних ще називають статичними. Вони оголошуються зі словом-модифікаторомstatic
, але поза методом, конструктора чи блока.
public class Dog {
public static int value = 9;
public void bark() {
}
}
Викликаємо нашу змінну:
Dog.value
Де Dog
це ім'я класу, до якого прикріплена змінна. Значення за умовчанням таке саме, як і змінних об'єкта. Для стандартних чисел це 0, для boolean — false; для посилань на об'єкт – null. Статична змінна завжди одна, незалежно від того, скільки об'єктів створено із класу, адже вона кріпиться лише до класу. Змінні класи створюються під час запуску програми та знищуються, коли виконання програми завершено. Статичні змінні Java часто використовуються, коли оголошуються як константи. Про них поговоримо докладніше.
Що таке константи в Java
Константа — це задані фіксовані значення, які не повинні змінюватися. А що таке константи у програмуванні? Це деяке постійне значення, яке відоме до початку роботи програми, при цьому він задається в коді один раз. У Java константи - це змінні, позначені спеціальним словом -final
:
final int VALUE = 54;
Тут ми отримуємо змінну, яку не можна змінити після завдання будь-якого значення. Справа в тому, що константи набагато простіше, ніж змінні. Вони завжди однозначно визначені та ніколи не змінюються. Трохи вище ми говорабо про назву змінних, і нам варто приділити увагу і особливостям іменування констант. У константних змінних усі слова пишуться ВЕЛИКИМИ літерами, що розділяються за допомогою знака підкреслення _
Наприклад, нам потрібна константа, що описує максимальне значення для чогось:
final int MAX_VALUE = 999;
Отже, підсумуємо: Змінна надається нам як місце зберігання наших даних (або адресаа місця), що дозволяє керувати програмою. Змінні примітивний тип мають певний формат даних, розмір, діапазон значень, які можуть зберігатися в пам'яті. Змінні можна розділяти за місцезнаходженням: змінні об'єкта, локальні, класу. Існує особливий вид змінних - константи, які можуть бути глобальними, змінними. Їхня область видимості — вся програма.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ