- •Java - объектно-ориентированный язык
- •Виртуальная Java-машина.
- •Алфавит языка Java
- •Типы данных
- •Числа высокой точности
- •Переменные в Java
- •Объявление переменной
- •Область действия и время жизни переменной
- •Операции в Java
- •Арифметические операции
- •Логические операции
- •Побитовые операции
- •Операции сдвига
- •Тернарный оператор ?:
- •Оператор запятая
- •Одномерные массивы
- •Многомерные массивы
- •Функции
- •Класс Поля и методы
- •Модификаторы доступа
- •Инициализация и очистка
- •Перегрузка методов
- •Ключевое слово this
- •Вызов конструктора из конструктора
- •Использование объектов в качестве параметров
- •Ключевое слово static
- •Спецификатор final
- •Вложенные и внутренние классы
- •Сборщик «мусора»
- •Как работает сборщик мусора
- •Наследование
- •Основы наследования
- •Использование ключевого слова super
- •Использование super для вызова конструктора суперкласса
- •Использование super для доступа к скрытым членам суперкласса
- •Конструкторы при наследовании
- •Динамическая диспетчеризация методов
- •Абстрактные классы
- •Использование final с наследованием
- •Использование final для отказа от переопределения
- •Использование final для отмены наследования
- •Класс Object
- •Пакеты и интерфейсы Пакеты
- •Оператор package
- •Оператор import
- •Уровни доступа.
- •Интерфейсы
- •Оператор implements
- •Частичные реализации
- •“Множественное” наследование в Java
- •Конфликты имен при комбинировании интерфейсов
- •Расширение интерфейса
- •Группировка констант
- •Инициализирование полей в интерфейсах
- •Вложенные интерфейсы
- •Стандартный ввод/вывод
- •Чтение из стандартного ввода
- •Замена System.Out на PrintWriter
- •Первое приложение Java
- •Исключительные ситуации. Обработка исключений
- •Типы исключений
Числа высокой точности
Java включает два класса BigInteger и BigDecimal, поддерживающих данные высокой точности. Ни один из них не имеет базового аналога.
Оба класса имеют методы, обеспечивающие аналогичные операциям, применяемым к переменным базовых типов.
BigInteger поддерживает целые числа произвольной точности (любой размерности) и исключает потерю информации во время операций.
BigDecimal аналогично для чисел с фиксированной точкой произвольной точности.
Переменные в Java
Переменная в Java является базовым элементом для хранения и оперирования информацией. Переменные имеют две характеристики: видимость и время жизни.
Объявление переменной
Все переменные должны быть объявлены прежде чем они могут быть использованы в выражениях. Общая форма объявления переменной имеет вид:
тип имя_перменной [=инициализатор].
Например:
int i, j;
byte b1=5, b2=-3;
double d1, d2=12.35;
char c='a';
В Java можно выполнять инициализацию при объявлении переменной значением выражения:
byte b1=5, b2=-3, b3=b1*b2;
В выражении инициализации может использоваться любой допустимый элемент, включая вызовы функций.
Область действия и время жизни переменной
В Java допустимо объявлять переменные в пределах любого блока, выделенного фигурными скобками. Область действия определяет ту часть программы, где переменная может быть использована в выражениях. Время жизни определяет область существования переменной.
{ int n = 1;
// здесь доступно только n
{ int k = 2;
// здесь доступны n, и k
}
// здесь доступно только n
// здесь k вне границы доступа
}
В Java-программах можно выделить две области действия переменной: класс и метод, в отличие от традиционного разделения на глобальную и локальную. Можно сформулировать общее правило – переменная объявленная в блоке не видна за его пределами. В случае если блоки вложены, то переменная внешнего блока видна во вложенном, но не наоборот. Кроме того, нельзя объявить переменную с одним именем во внешнем и вложенном блоках.
{ int n = 1; // недопустимо
{ int n = 2; // Variable 'n' is already defined in current block
}
}
Область действия переменной начинается с того места, в котором она объявлена в блоке. Т.о. объявление переменной в конце блока является бессмысленным.
При выходе из блока переменная разрушается, а ее значение не сохраняется. Следовательно время ее жизни, как и область действия, ограничивается этим блоком.
Операции в Java
В Java наследовал из C++ большинство имеющихся в нем операций, которые можно подразделить на четыре группы: арифметические, поразрядные, отношения и логические. В то же время Java имеет некоторые отличия.
Таблица
-
Операция
Действие
Арифметические
+ - * / %
сложение, вычитание, умножение, деление, остаток от деления
++ --
инкремент, декремент
+= -= *= /= %=
Сравнения
= = !=
сравнение
=
присвоение
Логические
&& || !
И, ИЛИ, НЕ
Битовые
& | ^ ~
И, ИЛИ, исключающее ИЛИ, НЕ
Сдвиговые
<< >> >>>
сдвиг влево, сдвиги вправо