- •Краткая историческая справка.
- •Преимущества языка Java.
- •Недостатки java:
- •Лекция 2. Этапы разработки java-приложений. Этапы разработки java-приложений.
- •Установка jdk.
- •Инсталляция исходных кодов библиотек
- •Инсталляция пакета документации.
- •Тестирование правильности установки и создание простейшей программы
- •Визуальные среды программирования.
- •Лекция 3. Переменные и типы данных. Переменные и типы данных.
- •Подробности о примитивных типах.
- •Лекция 4. Операторы и функции. Операторы и функции.
- •Операторы ветвлений и циклов.
- •Оператор цикла while.
- •Оператор цикла for.
- •Лекция 5. Объектно ориентированное программирование Объектно ориентированное программирование.
- •Определение объекта.
- •Инкапсуляция.
- •Наследование.
- •Полиморфизм (перегрузка).
- •Пример ооп – программы.
- •Отличие перегрузки функций от переопределения.
- •Отличие классов от интерфейсов.
- •Лекция 6. Массивы и строки. Массивы и строки.
- •Многомерные массивы.
- •Приведение типов и динамические массивы.
- •Строки в java.
- •Лекция 7. Организация ввода-вывода данных Организация ввода-вывода данных.
- •Функции стандартной библиотеки ввода/вывода.
- •Новая библиотека ввода/вывода.
- •Классы потокового ввода/вывода из пакета java.Io.
- •Лекция 8. Обработка исключений. Обработка исключений.
- •Классификация исключений.
- •Перехват исключений блоками try/catch.
- •Самостоятельное выбрасывание исключений.
- •Разработка собственных классов исключений.
- •Лекция 9. Потоки. Потоки.
- •1. Cпециальный класс Thread.
- •2. Реализация интерфейса Runnable.
- •Выбор между использованием класса Thread и интерфейса Runnable.
- •Синхронизация потоков с помощью оператора synchronized.
- •Синхронизация потоков с помощью семафоров.
- •Лекция 10. Подключаемые библиотеки java. Подключаемые библиотеки java.
- •Библиотека awt
- •Внутреннее устройство системы обработки событий awt.
- •Библиотека Swing.
Лекция 5. Объектно ориентированное программирование Объектно ориентированное программирование.
Классы. Поля и методы классов. Перегрузка методов. Наследование и полиморфизм.
В процессе развития компьютерных технологий программы становятся все более структурированными. Одной из самых важных концепций, которая определила развитие большинства программных платформ с начала 2000-х годов, стала концепция ООП.
Эта концепция предполагает, что программа представляет собой некую модель объектов внешнего мира, а также связей между этими объектами и методов их взаимодействия.
Таким образом, объект в программе представляет собой некую сущность, которая объединяет в себе данные и функции для работы с ними. В терминологии ООП, данные в объекте называются «полями», а функции для работы с этими данными – «методами».
Хранение данных и функций внутри объекта оказалось очень удобной затеей, поскольку сам объект как часть программы в этом случае становится автономным модулем, который можно практически без изменений перемещать из программы в программу и собирать из них новые программы как из готовых кубиков, избегая излишних затрат на повторное проектирование и программирование.
Определение объекта.
Таким образом, объект (класс) можно определить как программную сущность, объединяющую в себе поля данных и методы для их обработки, которая отображает какую-либо сущность из внешнего мира, моделирует программным способом её свойства и поведение.
При этом, следует различать определение класса и экземпляры класса. Определение класса содержит описание сигнатур полей и методов класса, то есть, его объявление в программе.
А экземпляры класса представляют собой инициализированные переменные класса, на которые уже выделена память. При этом обращаться в программе с экземплярами класса можно как с обычными переменными – присваивать, сравнивать между собой, записывать в них что-либо и т.д.
Концепция ООП базируется на трех основных «китах»:
Инкапсуляция,
Наследование
Полиморфизм.
Инкапсуляция.
Подразумевает, что все необходимое для работы объекта – то есть данные и функции должно находиться в нем самом. В некоторых случаях под инкапсуляцией также понимается, что внутри объекта должны находиться так же и связанные с ним другие объекты, то есть речь здесь идет скорее об экземплярах других объектов, записанных в какие-либо поля класса.
Шаблон объявления класса в java выглядит так:
Class ИмяКласса
{
поле_1
поле_2
…
конструктор
…
метод_1
метод_2
…
}
Наследование.
Если какое – либо поле (или функция) уже определены в каком-либо классе и это поле нужно использовать в другом классе, который тесно связан с первым, то в ООП для таких случаев предусмотрен соответствующий механизм, который называется наследованием.
Мы наследуем один класс от другого и класс – наследник получает доступ ко всем полям и методам родителя и может вызывать их из себя так, как будто это его собственные поля и методы. При этом писать какой – либо дополнительный код не нужно. Достаточно просто указать в заголовке класса-наследника, что он наследуется от класса – родителя.
Таким образом в программах можно строить целые иерархии классов, в которых классы нижележащих уровней наследуются от вышестоящих классов, все более дополняя и развивая их первоначальные поля и методы. В этом случае говорят, что вновь созданные классы расширяют классы, на основе которых они созданы.
Так, например, весь язык java, по сути создан на основе глобального суперкласса Object. Все остальные объекты языка наследуют класс Object и расширяют его всеми возможными методами.
