Область видимості змінних Java

Область видимості змінних це частина програми, де зберігаються змінні. Як і C/C++, в Java всі поля розподілені по областях видимості, тобто область видимості змінних може бути визначена на етапі компіляції.

З іншого боку, наприклад, Perl, підтримує як динамічну область видимості, так і статичну. Ключове слово my Perl визначає статичну змінну в локальній області. Тим часом слово local визначає динамічну локальну змінну.

Java програма організована за допомогою класів. Кожен клас є частиною будь-якого пакету.

Область видимості класу

Усі змінні у цій галузі мають бути визначені всередині класу (зовні функції). Вони можуть бути доступні з будь-якої області класу. Ось приклад програми:

Ми можемо визначити змінну області видимості класу будь-де класу, але зовні методів. Зазначений модифікатор доступу для змінної класу не дає жодного ефекту всередині класу. Змінні класу можуть бути доступні за її межею за такими правилами:

Modifier Package Subclass World
publicYesYesYes
protectedYesYesNo
DefaultYesNoNo
privateNoNoNo

Локальні змінні у методі

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

Примітка: Локальні змінні перестають існувати після того, як метод відпрацює.

Ось інший приклад змінних, що визначаються у методі. У цьому випадку змінна методу передається як параметр:

У цьому прикладі ключове слово this , звертається дозмінної класу.

Область змінних у циклах та блоках

Змінні, які задані у блоках коду між дужками “”, у методі, існують лише у цьому блоці.

Висновок:

Ось ще один приклад, який показує, що змінна доступна тільки в межах блоку while і зовні вже не існує.

Висновок:

Ось як треба було зробити, щоб це працювало:

Висновок:

Давайте подивимося на приклад трюку з циклом. Вгадайте висновок цієї програми. Ви будете здивовані, якщо ви програміст C/C++.

Висновок:

Ще один приклад, вгадайте який буде висновок: