# Видимость переменных

Видимость переменных в Java определяется их областью действия, которая зависит от контекста, в котором они объявлены, и их модификатора доступа.&#x20;

1. **Область действия переменных**:
   * Область действия переменной - это часть программы, в пределах которой переменная может быть использована.
   * Переменные имеют локальную, экземплярную или статическую область действия.
2. **Локальные переменные**:

   * Локальные переменные объявляются внутри блока кода, например, метода, цикла или условия.
   * Они видны только внутри этого блока кода и недоступны за его пределами.

   Пример локальной переменной:

   ```java
   public void myMethod() {
       int x = 10; // Локальная переменная x
       System.out.println(x); // Видима только внутри метода myMethod
   }
   ```
3. **Экземплярные переменные**:

   * Экземплярные переменные объявляются внутри класса, но вне любых методов.
   * Они принадлежат конкретному экземпляру класса (объекту) и доступны из любого метода этого класса.

   Пример экземплярной переменной:

   ```java
   public class MyClass {
       int x; // Экземплярная переменная x
   }
   ```
4. **Статические переменные**:

   * Статические переменные объявляются с модификатором `static` и принадлежат классу, а не объекту.
   * Они доступны из любого метода этого класса и общие для всех экземпляров этого класса.

   Пример статической переменной:

   ```java
   public class MyClass {
       static int x; // Статическая переменная x
   }
   ```
5. **Модификаторы доступа**:

   * Кроме области действия, видимость переменных также определяется их модификаторами доступа, такими как `public`, `private`, `protected` и `default`.
   * Модификаторы доступа определяют, где переменная может быть доступна.

   Примеры с модификаторами доступа:

   ```java
   public int publicVar; // Доступна из любого класса
   private int privateVar; // Доступна только внутри текущего класса
   protected int protectedVar; // Доступна внутри текущего класса и подклассов
   int defaultVar; // Доступна только внутри текущего пакета
   ```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-java/vidimost-peremennykh.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
