- •Перечень известных парадигм программирования (3)
- •Основные модели программирования
- •Проблемы создания больших программных комплексов и основные технологии их решения
- •Предшественники ООП
- •Что такое ООП?
- •Так что же такое ООП?
- •Объекты
- •Объекты и классы:
- •ОО-программа – это:
- •Основные термины ООП
- •Основные термины ООП
- •Цели ООП
- •Уменьшение сложности
- •Надежность, устойчивость и управляемость
- •Взаимная независимость компонентов
- •Java: платформа и ОО-язык программирования
- •Основные отличительные черты Java
- •Краткий экскурс в историю возникновения Java



Основные термины ООП
Инкапсуляция — это свойство системы программирования, позволяющее объединить некоторые данные класса и методы, работающие с ними, и скрыть детали реализации от пользователя.
Наследование — это свойство системы программирования, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствованной функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.
Полиморфизм — это свойство системы программирования, позволяющее одинаковым образом использовать объекты разных классов, имеющие одинаковый (полностью или частично) интерфейс.



Цели ООП
уменьшение сложности разработки составных частей программной системы, тем самым – увеличение сложности создаваемых приложений;
повышение надежности, устойчивости и управляемости программного обеспечения;
взаимная независимость, т.е. обеспечение возможности модификации некоторых компонентов программного обеспечения без изменения остальных его компонентов;
обеспечение возможности повторного использования отдельных компонентов программного обеспечения.



Уменьшение сложности
–Достигается путем разбиения всей совокупности данных программной системы на иерархию взаимодействующих объектов
–Далее для каждого класса объектов определяется минимально необходимая функциональность
–Классы объектов с более сложной функциональностью наследуют основную функциональность от своих базовых классов
Священный для ООП принцип KISS: Keep It Simple, Stupid
Надежность, устойчивость и управляемость
всей системы объектов обеспечивается за счёт:
–чёткого разделения ответственности объектов (за каждое действие отвечает строго определённый метод одного объекта);
–однозначного определения интерфейсов межобъектного взаимодействия;
–и полной изолированности внутренней структуры объекта от внешней среды.
Взаимная независимость компонентов
–обеспечивается за счет разумного применения инкапсуляции, т.е. скрытия деталей реализации класса от пользователей объектов этого класса.
Повторное использование
–подразумевает создание библиотек классов общего и специализированного назначения;
–а также обеспечивается путем наследования, тогда при использовании объектов любого производного класса вызываются методы базовых классов.
Java: платформа и ОО-язык программирования
Java – это объектно-ориентированный язык программирования со строгой типизацией.
В то же время Java позиционируется как независимая от архитектуры процессора и операционной системы платформа для создания и исполнения приложений широкого спектра от простых настольных до распределенных серверных.
Основные отличительные черты Java
Платформно-независимый язык (WORA: write once, run anywhere – написано однажды, работает везде)
Объектная ориентированность со строгой типизацией
Безопасность (нет указателей, не надо освобождать память, Garbage Collector)
Устойчивость (проверка кода и при компиляции и при выполнении)
Многопоточность (встроена в язык)
Распределенность (легкость использования TCP/IP)
Динамичность (легкость добавления новых возможностей )
Интерпретируемость (байт-код, виртуальная JAVA- машина + JIT- (Just In Time) компиляция)
Облегченное изучение (синтаксически похож на С++)
Краткий экскурс в историю возникновения Java
1990 – 1992 проект фирмы Sun OAK (дуб)
1995 |
Java Development Kit (JDK) 1.0 |
1996 |
JDK 1.1.0 – 1.1.9 |
1997 – 1999 Software Development Kit (SDK) |
|
|
Java2 – 4 (JDK 1.2 – 1.4) |
2004 |
SDK Java5 |
2006 |
SDK Java6 |
2011 – 2012 SDK Java7 (Oracle)
