- Основы ООП
- 1.1. Написать класс Circle (круг) по аналогии с Rectangle и метод, который будет возвращать его площадь.
- 1.2. Написать класс, который умеет считать количество созданных объектов этого класса (static).
- 1.3. Написать класс «автомобиль», который должен уметь заводится, глушить мотор, ехать и держать необходимую скорость.
- Наследование
- 2.1. Проект "Cars": добавить свойство «объем двигателя» в класс Engine. Написать код для вывода потраченного топлива на экран.
- 2.2. Проект "Students": сделать поиск по фамилии, сделать поиск по дате рождения, сделать ф-ю удаления студента из списка, предусмотреть выход за пределы списка.
- 2.3. Написать класс наследник SamsungS4 с диагональю экрана 5 дюймов, поддержкой Wifi и методом отправки SMS, который будет дописывать к сообщению слово "Hello".
- 2.4. Модифицировать класс Phone так, чтобы он ситал количество звонков и сообщений отдельно для каждого объекта.
- 2.5. Написать иерархию классов «Фигуры». Фигура → Треугольник → Прямоугольник → Круг. Реализовать ф-ю подсчета площади для каждого типа фигуры.
- 2.6. Написать код для связи телефонов между собой. У каждого телефона будет свой номер. При вызове call(x) телефон должен найти собеседника по номеру x из всех доступных в данный момент телефонов) из всех созданных объектов типа Phone) и вызвать его метод answer().
- Полиморфизм. Исключения
- 3.1. Написать своего наследника Developer. Добавить его в существующий проект.
- 3.2. Создать список разработчиков и заполнить его случайным образом. Вывести на экран только Senior developer-ов с зарплатой больше 1500 у.е.
- 3.3. Написать код, который разделит список объектов Developer на 3 отдельных списка для Juniors, Seniors и Team Leads. Вывести списки на экран.
- 3.4. Написать программу, которая будет рисовать на консоли прямоугольник с заданными длинами сторон.
- 3.5. Построить иерархию классов «Фигуры» с учетом знаний о полиморфизме. У каждого класса фигуры должен бать метод подсчета площади. Создать список фигур. Вывести площади всех фигур на экран.
- 3.6. Написать метод разбора списка параметров в формате URL: param1=value1¶m2=value2¶m3=value3. В случае ошибки в формате бросать исключение.
- 3.7. Найти в стандартной библиотеке 5 классов, методы которых кидают исключения и написать пример кода для их обработки (пример: Integer.parseInt).
- 3.8. Написать аналог Integer.parseInt. Использовать исключения.
- 3.9. Придумать свое исключение и написать соответствующий класс и использующий его код.
- 3.10. * Модифицировать проект «Список студентов» так, чтобы 1) список вводился с клавиатуры, 2) была возможность удалять студента по номеру, 3) при введении неправильных даннях (пустое имя, неправильная дата) программа кидала исключение и обрабатывала его с выводом соотв. сообщений на экран.
- Интерфейсы
- 4.1. Модифицировать код для сортировки Human чтобы элементы упорядочивались по убыванию.
- 4.2. Создать список фигур. Реализовать сортировку списка по возрастанию площади фигуры.
- 4.3. Добавить в проект «монитор» функцию вывода даты создания файла на экран (см. java.io.File).
- 4.4. Добавить в проект ф-ю мониторинга более одного файла.
- 4.5. Написать код для мониторинга каталога. Выводить на экран предупреждение если в каталог добавляется текстовый файл (*.txt).
- Потоки ввода-вывода
- 5.1. Модифицировать проект FindFiles так, чтобы программа искала в каталоге все файлы с расширениями из списка.
- 5.2. Написать рекурсивную ф-ю для вывода на экран всех файлов и каталогов, имя которых длиннее 5 символов и вторая буква равна "A".
- 5.3. Написать программу, которая считает текстовый файл, заменит в нем все слова "Hello" на "1234" и запишет изменения в тот-же файл.
- 5.4. Написать программу для копирования всех файлов из одного каталога в другой.
- 5.5. Написать программу, которая создаст текстовый файл и запишет в него список файлов (путь, имя, дата создания) из заданного каталога.
- 5.6. Разобраться с java.io.BufferedInputStream и java.io. BufferedOutputStream. Подумать как улучшить программу №3 с помощью этих классов.
- 5.7. Написать программу, которая скопирует несколько файлов в один. Подумать как для этого использовать java.io.SequenceInputStream.
- Многопоточное программирование
- 6.1. Модифицировать класс Counter так, чтобы он циклически выводил числа из определенного диапазона.
- 6.2. Создать поток, который будет каждые 10 секунд выводить текущее время на экран. Сделать возможность прерывания потока с помощью команды с консоли.
- 6.3. Создать 100 потоков, каждый их которых выведет на экран свой номер и дождется, пока его прервут.
- 6.4. Создать поток, который создаст 50 потоков, каждый их которых выведет на экран свой номер и дождется, пока его прервут. Прерывание дочерних потоков должно выполнятся из потока их порождающего.
- 6.5.* Копирование файла блоками (1 поток на блок).
- 6.6. Написать программу копирования файла с выводом прогресса в % на консоль.
- 6.7. Разобраться с методом fact (рекурсия).
- Синхронизация потоков
- 7.1. Написать класс, который позволит записывать текстовые данные в один файл из разных потоков.
- 7.2. Решить задачу про банк с помощью чего-нибудь из java.util.concurrent.* Не через Atomic.
- 7.3. Реализовать многопоточное перемножение квадратных матриц. Сравнить скорость выполнения алгоритма с однопоточным решением.
- Generics. Executor. Коллекции
- 8.1. Написать метод для конвертации массива строк/чисел в список.
- 8.2. Написать метод, который создаст список, положит в него 10 элементов, затем удалит первые два и последний, а затем выведет результат на экран.
- 8.3. Написать класс, который умеет хранить в себе масив любых типов данных (int, long etc.). Реализовать метод, который возвращает любой элемент массива по индексу.
- 8.4. Написать монитор, который хранит дату модификации файлов и выводит сообщения при изменении в файлах*.
- 8.5. Написать свою реализацию классов ArrayList и LinkedList.
- Object
- 9.1. Написать класс «человек». Реализовать его методы clone, equals, hashCode, toString.
- 9.2. Реализовать возможность сериализации для класса «человек».
- 9.3. Написать программу, которая запросит ввести с консоли информацию о 10 людях, запишет ее на диск, а при следующем старте прочитает записи и выведет сохраненные данные на экран. Одинаковые записи должны игнорироваться (Set + equals*).
- 9.4.* Написать проект «Виртуальная файловая система». Каждый каталог и файл представлен одним объектом (Directory/File); должны поддерживатся связи между объектами; вся файловая структура хранится в одном файле. Обеспечить базовые ф-и для работы с ФС: добавление и удаление файлов и каталогов etc.
- HashMap
- 10.1. Написать программу переводчик, которая будет переводить текст, написанный на одном языке, на другой язык согласно заранее составленному словарю.
- 10.2.* Сделать ф-ю ручного наполнения словаря и возможность его сохранения на диск.
- 10.3. Решить задачу подсчета повторяющихся элементов в массиве с помощью HashMap.
- 10.4. Пользователь вводит набор чисел в виде одной строки ("1, 2, 3, 4, 4, 5"). Избавиться от повторяющихся элементов в строке и вывести результат на экран.
- 10.5. Написать программу «База данных пользователей» с функциями добавления, удаления, поиска и вывода информации о пользователе по номеру.
- 10.6. Реализовать методы HashMap: keySet, entrySet, containsValue etc.
- Сетевое программирование
- Сетевое программирование. Чат
- 12.1. В файле хранится список веб-серверов. Надо проверить какие из серверов доступны в данный момент и создать отчет в формате сервер=статус.
- 12.2. Написать программу для стресс-тестирования веб-серверов.
- 12.3. Написать стресс-тест для чата.
- 12.4. Сделать ф-ю приватных сообщений.
- 12.5. Реализовать передачу файлов между клиентами.
-
Notifications
You must be signed in to change notification settings - Fork 1
📚 Prog.kiev.ua, Java OOP
suoapvs/Prog.kiev.ua-JavaOOP
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
📚 Prog.kiev.ua, Java OOP
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published