- •Главные блоки компьютера и их назначение.
- •Назначение программы-компилятора
- •Назначение программы-интерпретатора
- •Основные идеи методики «структурное программирование»
- •Основные идеи методики «объектно-ориентированное программирование»
- •Что такое «объект»?
- •Что такое «класс»?
- •Что такое «геттеры» и «сеттеры»?
- •Перечислите известные Вам типы классов
- •Перечислите этапы жизненного цикла объекта и дайте краткие пояснения этапов
- •Укажите назначение конструктора класса
- •Что такое «наследование»?
- •Приведите структуру (форму) определения класса
- •Поясните термин «инициализация». Приведите три примера определения полей с инициализацией и без инициализации
- •Поясните понятие «ссылка на объект». Приведите пример объявления ссылки на объект
- •Примитивные типы данных, их назначение и «ширина»
- •Определение литерала, примеры литералов различных типов.
- •Понятие константы в Java. Способы задания констант. Примеры.
- •Операции для целочисленных данных: обозначения и правила выполнения.
- •Операции для булевских данных: обозначения и правила выполнения
- •Обозначение операций для сравнения данных. Примеры применения этих операций.
- •Правила вычисления результата для операций & и |. Примеры.
- •Назначение, форма и примеры применения «расширенного присваивания»?
- •Блок: определение, назначение и примеры применения.
- •Назначение и форма условного оператора (с примерами применения).
- •28. Назначение и форма оператора выбора, примеры применения.
- •Назначение и форма оператора while, примеры применения.
- •Назначение и форма оператора for, примеры применения.
- •Назначение и форма операторов break, continue, return. Примеры применения.
- •Создание переменных простого и объектного типов: сходство и различие.
- •Простые переменные
- •Определение массива. Нумерация элементов одномерного массива. Примеры.
- •Базовый тип массива. Допустимые базовые типы. Длина массива.
- •Различие между объявлением массива и созданием массива. Примеры.
- •Прием вычисления суммы элементов числового массива.
- •37. Методика поиска минимального и максимального элементов массива.
- •38. Приемы инициализации элементов массива (привести примеры).
- •39. Приемы копирования массива.
- •40. Метод пузырьковой сортировки
- •41. Метод сортировки прямым выбором
- •42. Метод сортировки прямыми вставками
- •43. Структура (составные части) метода. Форма определения метода.
- •44. Особенности методов, возвращающих значения. Оператор return.
- •45. Параметры методов: различия между параметрами простых типов и параметрами объектных типов.
- •46. Уровни доступа к элементам класса: назначение и примеры. Ограничение доступа
- •47. Особенности конструктора как метода класса
- •Отличия описания
- •48. Понятие статических элементов класса. Объявление статических элементов.
- •49. Назначение и форма статических инициализаторов
- •50. Понятие инкапсуляции.
- •51. Правила передачи параметров в методы
- •52. Понятие полиморфизма. Объяснение полиморфизма на примере базового класса и нескольких его наследников.
- •53. Ограничения на типы левой и правой частей оператора присваивания
- •54. Понятия «динамическое связывание» и «статическое связывание»
- •55. Абстрактные методы и абстрактные классы.
- •Понятие интерфейса. Назначение интерфейса.
- •57. Объявление интерфейса и объявление класса, реализующего интерфейс.
- •Правила создания класса-интерфейса в BlueJ
- •59. Борьба с ошибками в программах. Защита кода проверкой допустимости данных.
- •60. Понятие исключения. Типы исключений.
- •62.Охраняемый участок программы блок try
- •63.Обработка исключений
- •64.Назначение finally
- •65.Генерация исключений в программе
- •70. Класс String. Особенность экземпляров класса
- •71.Методы выделения элементов строки
- •72. Методы поиска строки
- •73.Сравнение строк.Примеры
- •74.Преобразования символов строки в маленькие буквы и наоборот
- •75. Разбиение строки на слова .StringTokenizer
49. Назначение и форма статических инициализаторов
Любые статические инициализаторы, объявленные в классе, реализуются, когда класс инициализируется и для переменных класса вместе с некоторым полем инициализаторов (§8.3.2) , может использоваться, чтобы инициализировать переменные класса (§12.4).
StaticInitializer:
static Block
Ошибка времени компиляции происходит, если статический инициализатор завершаться преждевременно (§14.1, §15.5) с проверенным исключением (§11.2).
Статические инициализаторы и переменная инициализации класса выполнены в текстовом порядке и не могут обращаться к переменным класса, объявленным в классе, чье объявление появляется в тексте после использования, даже при том, что эти переменные класса находятся в области видимости. Это ограничение предназначено замку, во время компиляции, зациклившейся или неправильной инициализации. Таким образом, для следующих кодов:
class Z {
static int i = j + 2;
static int j = 4;
}
и:
class Z {
static { i = j + 2; }
static int i, j;
static { j = 4; }
}
результатом будет ошибка времени компиляции.
50. Понятие инкапсуляции.
Основой инкапсуляции в Java является класс. Класс определяет данные и код некоторого набора объектов. Объект является экземпляром класса. Таким образом, класс - это логическая конструкция, а объект – физическая реальность.
При составлении класса код и данные необходимо специфицировать. Все эти элементы называют членами класса. Члены-переменные или переменные экземпляра являются данными. Члены методы или просто методы – код, оперирующий этими данными.
Цель класса – инкапсуляция сложности. Для этого у методов и переменных внутри класса могут быть модификаторы доступа (public, private).
Инкапсуляция означает, что данные объекта недоступны его клиентам непосредственно. Вместо этого они инкапсулируются — скрываются от прямого доступа извне. Инкапсуляция предохраняет данные объекта от нежелательного доступа, позволяя объекту самому управлять доступом к своим данным.
Модификаторы доступа Модификаторы доступа можно рассматривать как с позиции инкапсуляции так и наследования. Если рассматривать с позиции инкапсуляции, то модификаторы доступа позволяют ограничить нежелательный доступ к членам класса извне.
51. Правила передачи параметров в методы
Передача по ссылке подразумевает передачу ссылки на объект. В этом случае реализация метода потенциально может модифицировать переданный объект (например, вызвав метод, изменяющий состояние объекта). В случае передачи по значению параметр копируется. Изменение параметра не будет заметно на вызывающей стороне. В Java объекты всегда передаются по ссылке, а примитивы - по значению Pass By Reference means the passing the address itself rather than passing the value. Pass By Value means passing a copy of the value to be passed.
52. Понятие полиморфизма. Объяснение полиморфизма на примере базового класса и нескольких его наследников.
Полиморфизм - третья неотъемлемая часть объектно-ориентированного программирования, после абстракции и наследования соответственно.
Полиморфизм предоставляет другое измерение разделения интерфейса и реализации, т.е. отделяет что от как. Полиморфизм позволяет повысить возможности по организации кода и читабельность исходных текстов, так же, как создание расширяемых программ, которые могут расти не только во время их создания, но и после, когда к ним нужно добавить новую требуемую возможность.
-
Наследование (в Java) - возможность создать класс (интерфейс) наследник получающий (наследующий) от родительского класса (и/или интерфейса) доступные (для наследования) поля и методы 2. Полиморфизм - возможность переопределить в классе наследнике унаследованные методы
Полиморфизм в Java позволяет повысить возможности по организации кода и читабельность исходных текстов, облегчить создание расширяемых программ, предполагающих дальнейшее наращивание функциональности.