Змінні. Оголошення змінних. Ініціалізація змінних

Змінні. Оголошення змінних. Ініціалізація змінних



1. Яке призначення змінних у програмах на Java?

Змінні призначені для зберігання даних у програмі.

Змінна – це іменована комірка пам’яті, яка зберігає дані. При розробці програми, програміст має можливість використовувати будь-яку кількість змінних, необхідних для розв’язку задачі.

Змінні використовуються у виразах для проведення обчислень.

Імена змінним можна задавати на власний розсуд. Ім’я змінної повинно задаватись згідно правилам задавання імен для ідентифікаторів, які детально описуються тут.

Бажано, щоб ім’я змінної відповідало її призначенню у програмі. Наприклад, якщо змінна використовується для зберігання деякого мінімального значення, тоді її ім’я може бути Min.

У мові Java кожна змінна повинна мати власний тип. Типом може бути:

Кожна змінна має власну область дії.

 

2. Що таке оголошення змінної в програмі?

Перед використанням, кожна змінна повинна бути оголошена (описана). Загальна форма оголошення змінної має вигляд:

тип ідентифікатор [= значення] [, ідентифікатор [= значення] ... ];

де

  • тип – один з примітивних типів даних, класу чи інтерфейсу;
  • ідентифікатор – ім’я змінної;
  • [= значення ] – початкове значення (ініціалізація), яке присвоюється змінній при її оголошенні.

Змінних вказаного типу може бути описано декілька.



 

3. Приклади оголошень та ініціалізації змінних примітивних типів
int a;     // опис змінної з іменем a типу int
int b = 6; // опис змінної b та її ініціалізація значенням 6
byte t = 0;
double pi = 3.1415; // опис та ініціалізація змінної pi типу double
double x = 0, y, z = 5; // опис 3-х змінних, ініціалізація змінних x та z
boolean b1 = true, b2;
char c = 'A';
char c1, c2, c3 = 'Z';
String s1; // опис змінної з іменем s1 типу класу String
String s2 = "This is a string"; // опис рядка s2 з його ініціалізацією

// використання змінних після опису
a = 8;
y = 0.338;
b2 = false;
c1 = c2 = '5';
s1 = s2 + "!"; // s1 = "This is a string!"

 

4. Приклад оголошення та ініціалізації змінної, що є екземпляром (об’єктом) класу
...

// опис класу
class MyPoint
{
    int x;
    int y;
}

...

// використання у програмі
// опис змінної
MyPoint mp;
mp = new MyPoint();
mp.x = 23;
mp.y = -10;

// можна й так
MyPoint mp2 = new MyPoint();
mp2.x = 5;
mp2.y = -32;

...

 

5. Приклад оголошення змінної, що є інтерфейсом
// оголошення інтерфейсу MyInterface
interface MyInterface {
    void SetXY(int xx, int yy);
}

// оголошення класу MyPoint
class MyPoint implements MyInterface {
    int x; // внутрішня змінна x
    int y; // внутрішня змінна y

    // реалізація методу інтерфейсу
    public void SetXY(int xx, int yy) {
        x = xx;
        y = yy;
    }

    // методи класу
    public int GetX() {
        return x;
    }

    public int GetY() {
        return y;
    }
}

...

// використання інтерфейсу та класу у програмі
MyInterface mi = new MyPoint(); // опис змінної, що є інтерфейсом

MyPoint mp = new MyPoint(); // опис змінної, що є класом

// використання змінної mi, що є інтерфейсом
mi = mp;
mi.SetXY(-5,6);

...

 

6. Що таке динамічна ініціалізація змінної? Приклад динамічної ініціалізації змінної

При динамічній ініціалізації змінній присвоюється значення з допомогою деякого виразу, що є дійсним на даний момент (момент оголошення змінної).

Приклад. Обчислення площі трикутника за формулою Герона. Формула Герона має вигляд:

де p – півпериметр:

a, b, c – довжини сторін трикутника.

У наведеному нижче прикладі, під час опису змінних p та s здійснюється їх динамічна ініціалізація згідно вищенаведених формул.

Фрагмент програмного коду, що розв’язує задачу наступний:

...

// Обчислення площі трикутника за формулою Герона
// довжини сторін трикутника - задаються
double a = 3.5, b = 3.6, c = 2.8; // звичайна ініціалізація

// обчислення півпериметру
double p = (a+b+c)/2; // динамічна ініціалізація

// обчислення площі
double s = Math.sqrt(p*(p-a)*(p-b)*(p-c)); // знову динамічна ініціалізація

...

На момент опису змінної p, змінні a, b, c вже описані і визначені (мають значення). Так само на момент опису змінної s, змінні a, b, c, p вже описані і визначені. Тому можна використати динамічну ініціалізацію при описі цих змінних.

 

7. Що таке область видимості і час життя змінної? Приклад

Область дії (видимості) змінної визначається блоком коду, в якому вона описана. Блок коду може бути в методі. Крім того, в методі можуть бути параметри, які також мають область видимості блоку коду методу. Блок коду методу починається з фігурної відкриваючої дужки.

Блок коду обмежений фігурними дужками:

...

{
    // блок коду
    // ...
}

...

Області дії можуть бути вкладеними. З кожним новим блоком коду створюється нова область дії змінної. Зовнішня область дії включає в себе внутрішню область дії.

Приклад опису змінної в блоці коду та за його межами.

...

{
    // блок коду
    double d = 0; // опис змінної d
    d = 5; // у цьому блоці коду змінна d доступна

    {
        // ще один вкладений блок коду
        int x; // опис змінної x
        d = 8; // тут змінна d доступна
        x = 3; // тут змінна x доступна
    }

    x = 10; // помилка! змінна x недоступна, за межами блоку коду, де вона описана
}

d = 5; // помилка! Тут змінна d недоступна

...

Змінні можна оголошувати у будь-якому місці блоку коду. Однак змінну можна використовувати після її оголошення. Змінну не можна використовувати до її оголошення.

Час життя змінної визначається її областю дії (видимості). Змінна знищується (втрачає своє значення) одразу після закінчення області дії.

 


Зв’язані теми