SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Принципы объектного подхода
Основные понятия
Основные понятия
Объект Это сущность, способная сохранять свое состояние (информацию) и обеспечивающая набор операций для проверки и изменения этого состояния Состояние объекта характеризуется текущим значением его атрибутов
Объект
Инкапсуляция  Это определение классов — пользовательских типов данных, объединяющих своё содержимое в единый тип и реализующих некоторые операции или методы над ним Классы обычно являются основой модульности, инкапсуляции и абстракции данных в языках ООП
Наследование  Способ определения нового типа, наследуя элементы (свойства и методы) существующего и модифицируя или расширяя их
Наследование
Полиформизм Позволяет единообразно ссылаться на объекты различных классов (обычно внутри некоторой иерархии) Это делает классы ещё более удобными и делает программы, основанные на них, легче для расширения и поддержки
Полиформизм
Класс Это некое множество объектов, имеющих общую структуру и общее поведение class Date {  private:  intdd;  intmm;  intyy;  public:  void Init (int d, int m, int y);  intDay ();  intMonth ();  intYear ();  };
Структура класса Для поддержки принципа инкапсуляции, существуют четыре основных уровня доступа к членам класса Разные языки могут поддерживать разное из этих уровней
Структура класса Открытый (public) доступ — члены с этим уровнем доступа видимы всем клиентам класса Защищенный (protected) доступ — члены этого уровня видимы самому классу, его подклассам, и абстракциям, находящимся с ним в одном пакете Пакетный доступ — члены этого уровня доступны только самому классу и абстракциям Закрытый (private) доступ — члены этого уровня видимы только изнутри самого класса
Абстракция Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя
Абстрактные классы Классы, которые не могут иметь экземпляров Это означает, что в них присутствуют функции-члены, которые объявлены, но не определены Эти функции определяются в наследниках, которые уточняют данную абстракцию
Абстрактные классы class shape {public:      virtual void rotate(int) = 0;        virtual void draw() = 0; };
Интерфейс Это абстрактный класс, который содержит только объявления методов и статические константные поля Интерфейс определяет чистую абстракцию поведения
Класс-утилита Это класс, в котором присутствуют только статические члены Такие классы используются для группировки наиболее часто используемых общих алгоритмов, работающих с другими абстракциями или примитивными данными

Weitere ähnliche Inhalte

Was ist angesagt?

Msu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And ObjectsMsu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And Objects
olegol
 
03 ООП и UML
03 ООП и UML03 ООП и UML
03 ООП и UML
phearnot
 
Msu.Center.Lectures.J03 Oop And Uml
Msu.Center.Lectures.J03 Oop And UmlMsu.Center.Lectures.J03 Oop And Uml
Msu.Center.Lectures.J03 Oop And Uml
olegol
 
Шаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UMLШаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UML
Sergey Nemchinsky
 
Java. Lecture 03. OOP and UML
Java. Lecture 03. OOP and UMLJava. Lecture 03. OOP and UML
Java. Lecture 03. OOP and UML
colriot
 
Шаблоны разработки ПО. Рефакторинг
Шаблоны разработки ПО. РефакторингШаблоны разработки ПО. Рефакторинг
Шаблоны разработки ПО. Рефакторинг
Sergey Nemchinsky
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
metaform
 
Модуль 10 Интерфейсы
Модуль 10 ИнтерфейсыМодуль 10 Интерфейсы
Модуль 10 Интерфейсы
Yevgeniy Gertsen
 
Шаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASPШаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASP
Sergey Nemchinsky
 

Was ist angesagt? (18)

Java. Generic - шаблонные типы.
Java.  Generic - шаблонные типы.Java.  Generic - шаблонные типы.
Java. Generic - шаблонные типы.
 
Msu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And ObjectsMsu.Center.Lectures.J02 Classes And Objects
Msu.Center.Lectures.J02 Classes And Objects
 
03 ООП и UML
03 ООП и UML03 ООП и UML
03 ООП и UML
 
Msu.Center.Lectures.J03 Oop And Uml
Msu.Center.Lectures.J03 Oop And UmlMsu.Center.Lectures.J03 Oop And Uml
Msu.Center.Lectures.J03 Oop And Uml
 
Шаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UMLШаблоны разработки ПО. Часть 2. ООП и UML
Шаблоны разработки ПО. Часть 2. ООП и UML
 
Java. Наследование.
Java. Наследование.Java. Наследование.
Java. Наследование.
 
Java. Lecture 03. OOP and UML
Java. Lecture 03. OOP and UMLJava. Lecture 03. OOP and UML
Java. Lecture 03. OOP and UML
 
Принципы SOLID
Принципы SOLIDПринципы SOLID
Принципы SOLID
 
Шаблоны разработки ПО. Рефакторинг
Шаблоны разработки ПО. РефакторингШаблоны разработки ПО. Рефакторинг
Шаблоны разработки ПО. Рефакторинг
 
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
структура языка UML
структура языка UMLструктура языка UML
структура языка UML
 
Class diagram
Class diagramClass diagram
Class diagram
 
Архитектурный шаблон MVC
Архитектурный шаблон MVCАрхитектурный шаблон MVC
Архитектурный шаблон MVC
 
Модуль 10 Интерфейсы
Модуль 10 ИнтерфейсыМодуль 10 Интерфейсы
Модуль 10 Интерфейсы
 
л 2 10
л 2 10л 2 10
л 2 10
 
Шаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASPШаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASP
 

Ähnlich wie принципы объектного подхода

C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
Technopark
 
классы. отношения между классами. объекты. отношения между объектами (15)
классы. отношения между классами. объекты. отношения между объектами (15)классы. отношения между классами. объекты. отношения между объектами (15)
классы. отношения между классами. объекты. отношения между объектами (15)
romachka_pole
 
C++ осень 2013 лекция 3
C++ осень 2013 лекция 3C++ осень 2013 лекция 3
C++ осень 2013 лекция 3
Technopark
 
лекция 8
лекция 8лекция 8
лекция 8
cezium
 
Sistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodleSistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodle
CDO3
 
Тема 3. Модели и закономерности систем
Тема 3. Модели и закономерности системТема 3. Модели и закономерности систем
Тема 3. Модели и закономерности систем
Сергей Солнечный
 
основы ооп
основы оопосновы ооп
основы ооп
Dmitry Savin
 

Ähnlich wie принципы объектного подхода (20)

C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
 
JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.JavaScript Базовый. Занятие 04.
JavaScript Базовый. Занятие 04.
 
классы. отношения между классами. объекты. отношения между объектами (15)
классы. отношения между классами. объекты. отношения между объектами (15)классы. отношения между классами. объекты. отношения между объектами (15)
классы. отношения между классами. объекты. отношения между объектами (15)
 
Java. Полиморфизм.
Java. Полиморфизм.Java. Полиморфизм.
Java. Полиморфизм.
 
C++ осень 2013 лекция 3
C++ осень 2013 лекция 3C++ осень 2013 лекция 3
C++ осень 2013 лекция 3
 
Рефлексия в java
Рефлексия в javaРефлексия в java
Рефлексия в java
 
C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.
 
Step 3.2
Step 3.2Step 3.2
Step 3.2
 
Наследование и полиморфизм
Наследование и полиморфизмНаследование и полиморфизм
Наследование и полиморфизм
 
лекция 8
лекция 8лекция 8
лекция 8
 
Sistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodleSistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodle
 
Sistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodleSistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodle
 
система дистанционного обучения Moodle
система дистанционного обучения Moodleсистема дистанционного обучения Moodle
система дистанционного обучения Moodle
 
Классы и объекты С#
Классы и объекты С#Классы и объекты С#
Классы и объекты С#
 
Презентация Игоря Сазонова на IT Global Meetup #5
Презентация Игоря Сазонова на IT Global Meetup #5Презентация Игоря Сазонова на IT Global Meetup #5
Презентация Игоря Сазонова на IT Global Meetup #5
 
Moodle с точки зрения пользователя и программиста
Moodle с точки зрения пользователя и программистаMoodle с точки зрения пользователя и программиста
Moodle с точки зрения пользователя и программиста
 
Тема 3. Модели и закономерности систем
Тема 3. Модели и закономерности системТема 3. Модели и закономерности систем
Тема 3. Модели и закономерности систем
 
основы ооп
основы оопосновы ооп
основы ооп
 
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
 
п2 04 05
п2 04 05п2 04 05
п2 04 05
 

принципы объектного подхода

  • 4. Объект Это сущность, способная сохранять свое состояние (информацию) и обеспечивающая набор операций для проверки и изменения этого состояния Состояние объекта характеризуется текущим значением его атрибутов
  • 6. Инкапсуляция  Это определение классов — пользовательских типов данных, объединяющих своё содержимое в единый тип и реализующих некоторые операции или методы над ним Классы обычно являются основой модульности, инкапсуляции и абстракции данных в языках ООП
  • 7. Наследование  Способ определения нового типа, наследуя элементы (свойства и методы) существующего и модифицируя или расширяя их
  • 9. Полиформизм Позволяет единообразно ссылаться на объекты различных классов (обычно внутри некоторой иерархии) Это делает классы ещё более удобными и делает программы, основанные на них, легче для расширения и поддержки
  • 11. Класс Это некое множество объектов, имеющих общую структуру и общее поведение class Date { private: intdd; intmm; intyy; public: void Init (int d, int m, int y); intDay (); intMonth (); intYear (); };
  • 12. Структура класса Для поддержки принципа инкапсуляции, существуют четыре основных уровня доступа к членам класса Разные языки могут поддерживать разное из этих уровней
  • 13. Структура класса Открытый (public) доступ — члены с этим уровнем доступа видимы всем клиентам класса Защищенный (protected) доступ — члены этого уровня видимы самому классу, его подклассам, и абстракциям, находящимся с ним в одном пакете Пакетный доступ — члены этого уровня доступны только самому классу и абстракциям Закрытый (private) доступ — члены этого уровня видимы только изнутри самого класса
  • 14. Абстракция Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя
  • 15. Абстрактные классы Классы, которые не могут иметь экземпляров Это означает, что в них присутствуют функции-члены, которые объявлены, но не определены Эти функции определяются в наследниках, которые уточняют данную абстракцию
  • 16. Абстрактные классы class shape {public:      virtual void rotate(int) = 0;       virtual void draw() = 0; };
  • 17. Интерфейс Это абстрактный класс, который содержит только объявления методов и статические константные поля Интерфейс определяет чистую абстракцию поведения
  • 18. Класс-утилита Это класс, в котором присутствуют только статические члены Такие классы используются для группировки наиболее часто используемых общих алгоритмов, работающих с другими абстракциями или примитивными данными