- •Лекция 1 Динамическая память и интеллектуальные указатели.
- •Лекция 2
- •Лекция 3
- •Исчерпание памяти
- •Лекция 4 Smart-pointer для обработки исключений
- •Создание собственного кода удаления
- •Класс unique_ptr
- •Класс weak_ptr
- •Использование динамических массивов
- •Смарт поинтеры и динамические массивы
- •Класс allocator
- •Тема 2. Обработка исключительных ситуаций
- •Лекция 7
- •Класс Exception
- •Лекция 8
- •Потоки, буферы и файл iostream
- •Перегруженная операция вставки
- •Лекция 9
- •Ввод с помощью cin
- •Тема 4. Файловый ввод/вывод
- •Лекция 10
- •Режимы открытия файла
- •Бинарные файлы
- •Лекция 11
- •Тема 5. Библиотека шаблонов Standart Template Library (stl)
- •Шаблонный класс Vector
- •Лекция 12
- •Цикл for , основанный на диапазоне
- •Обобщённое программирование
- •Лекция 13
- •Виды итераторов
- •Входные итераторы
- •Однонаправленные итераторы
- •Двунаправленные итераторы
- •Произвольного доступа
- •Лекция 14 Двунаправленные итераторы
- •Виды контейнеров
- •Лекция 15 Разработка с использованием Java-платформы
- •Этапы развития языка Java
- •Байт-код
- •Особенности языка Java
- •Программная платформа и виртуальная машина Java
- •Особенности разработки и исполнения объектно-ориентированных приложений на Java Сборка мусора в Java
- •Пакет jdk
- •Ide для работы на Java
- •Особенности настройки работы платформы Java
- •Запуск приложения на языке Java без ide
- •Особенности лексики Java
- •Примитивные типы данных Java
- •Переменные
- •Объявление переменной
- •Область и срок действия переменной
- •Преобразование и приведение типов. Автоматическое приведение и продвижение типов в выражениях. Логические выражения. Арифметические операции
- •Логические операции
- •Предшествование операций
- •Управляющие операторы
- •Операторы выбора Условный оператор if
- •Операторы цикла
- •Разновидность цикла for в стиле for each
- •Применение оператора instanceof
- •Принципы ооп
Разновидность цикла for в стиле for each
Цикл в стиле for each предназначен для строго последовательного выполнения повторяющихся действий над коллекцией объектов.
С условием:
boolean done = false;
for(int i=1; !done; i++){
//… if(interrupted()) done = true; }
Так же в цикле for инициализирующее или итерационное выражения или оба вместе могут отсутствовать
int i ;
boolean done = false;
i = 0;
//Отдельные части оператора цикла for могут отсутствовать
for (; !done;) {
System.out.println(" i равно "+i);
if(i == 10)
done = true;
i++;
}
В данном примере инициализирующее и итерационное выражения вынесены за пределы цикла for. В итоге соответствующие части оператора цикла for оказываются пустыми. Так, если начальное условие определяется сложным выражением где-то в другом месте программы или значение переменной управления циклом изменяется случайным образом в зависимости от действий, выполняемых в теле цикла, то эти части оператора цикла for имеет смысл оставить пустыми.
Приведем еще одну разновидность цикла for. Оставляя все три части оператора пустыми, можно умышленно создать бесконечный цикл, т.е. такой цикл, который никогда не завершается: for (;;).
Применение оператора instanceof
Оператор instanceof – это оператор, с помощью которого программа может получить сведения о типе объекта во время выполнения.
Большинство программ не нуждается в операторе instanceof, поскольку типы объектов обычно известны заранее. Но этот оператор может пригодиться при разработке обобщенных процедур, оперирующих объектами из сложной иерархии классов, где он и будет подробно обсуждаться.
Принципы ооп
Во всех объектно-ориентированных языках программирования, в том числе и в Java, поддерживаются три основных принципа ООП: инкапсуляция, полиморфизм и наследование.
Инкапсуляция представляет собой механизм программирования, объединяющий код и данные, которыми он манипулирует. Он предотвращает несанкционированный доступ к данным извне и их некорректное использование.
Полиморфизм ("много форм") –это свойство, позволяющее с помощью одного интерфейса обращаться к общему классу действий. Конкретное действие определяется ситуацией. В качестве примера, позволяющего лучше понять принцип полиморфизма, можно привести руль автомобиля. Руль (т.е. интерфейс взаимодействия) остается одним и тем же, независимо от того, какой именно механизм рулевого управления применяется в автомобиле, будь то зубчатая, реечная передача или гидроусилитель. Таким образом, зная, как обращаться с рулем, вы сможете управлять автомобилем любого типа.
Полиморфизм упрощает программу благодаря возможности определить общий класс действий с помощью одного и того же интерфейса. Выбрать определенное действие (т.е. метод) – задача компилятора, и он решает ее в зависимости от конкретных условий.
Наследование – это процесс, в ходе которого один объект приобретает свойства другого объекта. Наследование имеет очень большое значение, поскольку с его помощью поддерживается иерархическая классификация.