- •8.Исключения: понятие исключения; классы исключений; необходимость обработки исключений.
- •9.Исключения: операторы языка Java, используемые для обработки исключений.
- •10.Исключения: организация обработки исключений; определение собственных исключений.
- •11.Ввод/вывод в Java: основные понятия.
- •12.Ввод/вывод в Java: основные группы классов и интерфейсов пакета java.Io.
- •13.Классификация программ по типу исполнения (компилируемые, интерпретируемые, исполняемые на виртуальных машинах). Виртуальная машина Java. Jit-компиляция.
- •14.Хранение данных в памяти эвм.
- •15.Приведение типов (явное и автоматическое). Константы и переменные.
- •16. Оператор присваивания. Порядок действий (приоритет операторов).
- •17. Арифметические операторы. Операторы инкремента и декремента.
- •18. Операторы сравнения и логические операторы.
- •19. Операторы ветвления. Условный оператор. Минимизация количества проверок.
- •Условный оператор if
- •Условный оператор if-else
- •20. Операторы ветвления. Оператор множественного выбора. Его сравнение с условным оператором.
- •21. Встроенный класс String. Строковые операции.
- •22. Стандартные потоки ввода-вывода. Организация ввода и вывода данных. Класс Scanner.
- •23. Операторы организации циклов. Цикл типа «n раз».
- •24. Операторы организации циклов. Цикл типа «пока» (с пред- и постпроверкой условия).
- •25. Массивы. Способы объявления и инициализации массивов. Индексация и размер массива.
- •26. Массивы. Алгоритмы сортировки.
- •27. Массивы. Многомерные массивы.
- •28. Статические методы классов. Методы функционального и процедурного типа.
- •29. Сигнатура метода. Перегрузка методов.
- •30. Процедурное программирование. Объектно ориентированное программирование. Сравнение парадигм.
- •31.Иерархия классов Java. Коренной класс Object и его методы.
- •32. Исключительные ситуации. Обработка исключительных ситуаций.
- •33. Приложения с графическим интерфейсом с использованием gui-пакетов и апплеты.
- •Локальные классы (local classes)
- •Объявление локальных классов
- •Доступ к переменным в локальных классах
- •Анонимные классы (Anonymous Classes)
- •Объявление анонимных классов
- •Синтаксис анонимных классов
- •Interface имя {
- •39.Типы-перечисления. Поля и методы типов-перечислений. Аннотации. Объявление типа аннотации и его использование. Аннотации для компилятора.
- •Синтаксис
- •Документация
- •Аннотации, используемые компилятором
- •Классы-коллекции
- •Интерфейсы-коллекции
- •Интерфейс Collection
- •Интерфейс List
- •Интерфейс Set
- •Интерфейс Queue
- •Иерархия классов-коллекций
- •Класс Vector
- •Класс ArrayList
- •Класс Stack
- •Паттерн проектирования Iterator
- •Класс LinkedList
- •Классы-множества
27. Массивы. Многомерные массивы.
Объявление int A[n]создает в памяти одномерный массив: набор пронумерованных элементов, идущих в памяти последовательно. Но можно создать и массив массивов следующим образом:int A[n][m]. Данное объявление создает массив изnобъектов, каждый из которых в свою очередь является массивом типаint [m]. ТогдаA[i], гдеi принимает значения от0доn-1будет в свою очередь одним изnсозданных обычных массивов, и обратиться к элементу с номеромjв этом массиве можно черезA[i][j].
Подобные объекты (массивы массивов) также называют двумерными массивами. Двумерные массивы можно представлять в виде квадратной таблицы, в которой первый индекс элемента означает номер строки, а второй индекс – номер столбца. Например, массив A[3][4]будет состоять из 12 элементов и его можно записать в виде
A[0][0] A[0][1] A[0][2] A[0][3] A[1][0] A[1][1] A[1][2] A[1][3] A[2][0] A[2][1] A[2][2] A[2][3]
Для считывания, вывода на экран и обработки двумерных массивов необходимо использовать вложенные циклы. Первый цикл – по первому индексу (то есть по всем строкам), второй цикл – по второму индексу, то есть по всем элементам в строках. Например, вывести на экран двумерный массив в виде таблицы, разделяя элементы в строке одним пробелом можно следующим образом:
int A[n][m]; for(int i=0;i<n;++i) { // Выводим на экран строку i for(int j=0;j<m;++j) cout<<A[i][j]<<" "; cout<<endl; // Строка завершается символом перехода на новую строку }
Можно объявлять не только двумерные массивы, но и массивы с большим количеством измерений. Например, объявление int A[n][m][l] создает трехмерный массив из n*m*l элементов. Для обращения к каждому элементу такого массива необходимо указать три индекса: A[i][j][k], при этом 0<=i, i<n, 0<=j, j<m, 0<=k, k<l. Количество измерений в массиве может быть практически бесконечным (т.е. достаточным для решения любых практических задач).
28. Статические методы классов. Методы функционального и процедурного типа.
Статическим методом называется фрагмент программы, которому присвоено некоторое уникальное имя, и который по этому имени можно вызывать из остальных частей программы. В момент, когда происходит вызов, выполняются действия, перечисленные внутри метода (в его описании или теле). В объектно-ориентированном программировании основная задача методов заключается в том, чтобы изменять текущее состояние объекта, но до тех пор, когда в программе объекты ещё не используются, методы уже могут вводиться. Метод, который описан внутри некоторого класса, но вызывается без приложения к конкретному объекту этого класса, называется статическим.
Методы в Java условно можно разделить на 2 группы: функции и процедуры. К первой группе относятся методы, очень похожие на функции в математическом смысле. В результате своей работы такие методы возвращают в то место программы, из которого они были вызваны, некоторый конкретный результат существующего типа, то есть это может быть целое или вещественное число или логическое значение (int, double, boolean), массив (ссылка на него), объект (ссылка на него). Возвращаемое значение должно присваиваться переменной подходящего типа или же передаваться какому-либо другому методу в роли аргумента.
В отличие от функций, методы процедурного типа производят какие-либо полезные действия, но не дают законченного результата, который мог бы выражаться в одном конкретном значении или объекте.
Примеры:
double r = Math.random(); /* random относится к функциям */ System.out.println(r); /* println относится к процедурам */