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

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



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,реализующего интерфейс MyInterface
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 недоступна

...

Переменные можно объявлять в любом месте блока кода. Однако переменную можно использовать после ее объявления. Переменную нельзя использовать до ее объявления.

Время жизни переменной определяется ее областью действия (видимостью). Переменная уничтожается (теряет свое значение) сразу после окончания области действия.

 


Связанные темы