Виды переменных и их объявление

Author: Tatyana Milkina

В этой статье мы поговорим с Вами более детально о переменных в языке Java.

1. Объявление переменных в Java и их инициализация

Java переменные - это основной элемент хранения информации в Java-программе. 

Прежде чем использовать переменную, её необходимо объявить. Мы пишем её тип и имя переменной с помощью какого-то идентификатора, например:

int max;// Объявляет число max

Здесь мы просто объявили переменную max, и сейчас её значение равно значению по умолчанию. Для int - это ноль. Чуть позже в программе переменную можно проинициализировать:

max = 89;// Инициализирует число max

Но, конечно же, это лучше делать не следующей строчкой.

Если нам требуется объявить несколько переменных заданного типа, это можно сделать в виде разделённого запятыми списка имён переменных:

int count = 0, min = 6;// Объявляет два целых числа count и min

Переменная может быть инициализирована при объявлении: 

double d = 2.3;// Объявляет число d и инициализирует его

Инициализирующее выражение, то есть, то что мы пишем после равно, должно возвращать значение того же самого или совместимого типа, что и у объявленной нами переменной. Что такое совместимый тип мы узнаем в одном из наших следующих уроков - Преобразование и приведение примитивных типов.

Java - строго типизированный язык, то есть каждая переменная Java имеет какой-то конкретный тип. Тип переменной определяет:

  • размер и размещение её в памяти,
  • диапазон значений, которые могут храниться в памяти,
  • набор операций, которые могут быть применены к переменной.

Если мы объявили переменную с таким-то типом, то тип переменной мы поменять не можем.

Конечно же во время выполнения программы значение переменной может изменяться. Допустим мы установили значение 8 в переменную max, а потом где-то дальше в программе мы её изменили:

int max = 8;
...
max = 89;

2. Область видимости переменной в Java

В Java допускается объявление переменных в любом блоке кода. Блок кода заключается в фигурные скобки, задавая тем самым область видимости или действия. Таким образом, при открытии каждого нового блока кода создается новая область видимости. 

  • Две основные области видимости в Java определяются классом и методом, хотя такое их разделение несколько искусственно.
  • В языке Java видимость переменных, определяемая методом, начинается с его открывающей фигурной скобки. Если у метода имеются параметры, то они также включаются в область видимости метода и действуют точно так же, как и любая другая переменная в методе.
  • Переменные, объявленные в области видимости, не доступны из кода за пределами этой области.
  • Области видимости могут быть вложенными. 
  • Переменные создаются при входе в их область действия и уничтожаются при выходе из нее.
  • Во внутреннем блоке кода нельзя объявлять переменные с тем же именем, что и во внешней области действия.

Рассмотрим области действия переменных на следующем примере:

public class VarExample {
    String str1 = "Hello!"; // переменные str1 и str2 объявлены в классе. То есть область их действия - это класс.
    String str2 = "Hi!";

    public static void main(String[] args) {
        int x; // переменная x доступна всему коду из метода main ( )
        x = 10;
        if (x == 10) { // начало новой области действия,
            int у = 20;
            //int x = 45; // ОШИБКА! Во внутреннем блоке кода нельзя
            // объявлять переменные с тем же именем, что и во внешней области действия.
            //обе переменные х и у доступны в этой области действия
            System.out.println(" x и у : " + x + " " + у);
            x = у * 2;
        }
        // y = 100; // ОШИБКА! переменная у недоступна
        // в этой области действия
        // переменная х доступна и эдесь
        System.out.println(" x равно " + x);
    }
}

3. Объявление локальных переменных с помощью var

В Java 10 появилась возможность объявлять локальные переменные с помощью ключевого слова Java var без указания типа. Тип выводится компилятором из присваиваемого значения:

public class VarExample2 {
    public static void main(String[] args) {
        var i = 6;
        var d = 7.8;
        var s = "some String";
        System.out.println(i);
        System.out.println(d);
        System.out.println(s);
    }
}

Конечно же, у такого типа объявления есть свои достоинства и недостатки.

Достоинство - это то, что Вам не нужно задумываться о том, какого типа будет ваша переменная. Но с другой стороны тип переменной помогает понять какое значение хранится в этой переменной. Поэтому если вы используете var, то лучше использовать более понятные идентификаторы. То есть переменные i, d и s в таком случае будут не очень корректные. 

Презентацию с видео можно скачать на Patreon.

Курс 'Java для начинающих' на Udemy Курс 'Java для начинающих' на Udemy
Read also:
Comments