Содержание
- 2. Зачем нужно что-то новое? программы из миллионов строк тысячи переменных и массивов Э. Дейкстра: «Человечество еще
- 3. Как мы воспринимаем объекты? существенные свойства Абстракция – это выделение существенных свойств объекта, отличающих его от
- 4. Использование объектов Программа – множество объектов (моделей), каждый из которых обладает своими свойствами и поведением, но
- 5. С чего начать? Объектно-ориентированный анализ (ООА): выделить объекты определить их существенные свойства описать поведение (команды, которые
- 6. Модель дороги с автомобилями Объект «Дорога»: методы (поведение) свойства (состояние) название класса
- 7. Модель дороги с автомобилями Объект «Машина»: свойства: координаты и скорость все машины одинаковы скорость постоянна на
- 8. Модель дороги с автомобилями Взаимодействие объектов: узнать длину свойства объектов методы: операции, которые они могут выполнять
- 9. Классы программа – множество взаимодействующих объектов любой объект – экземпляр какого-то класса класс – описание группы
- 10. Класс «Дорога» class TRoad: pass Описание класса: Создание объекта: road = TRoad() Конструктор – это метод
- 11. Новый конструктор – добавлений полей class TRoad: def __init__ ( self ): self.length = 0 self.width
- 12. Конструктор с параметрами class TRoad: def __init__ ( self, length0, width0 ): self.length = length0 self.width
- 13. Защита от неверных данных class TRoad: def __init__ ( self, length0, width0 ): if length0 >
- 14. Класс «Машина» class TCar: def __init__ ( self, road0, p0, v0 ): self.road = road0 self.P
- 15. Класс «Машина» – метод move class TCar: def __init__ ( self, road0, p0, v0 ): ...
- 16. Основная программа road = TRoad( 65, 3 ) car = TCar( road, 1, 10 ) car.move()
- 17. Массив машин N = 3 cars = [] for i in range(N): cars.append ( TCar(road, i+1,
- 18. Что в этом хорошего и плохого? основная программа – простая и понятная классы могут разрабатывать разные
- 19. Задание «A»: Построить класс Попугай (Parrot), который умеет говорить какую-то фразу, заранее определённую при описании класса.
- 20. Задание «С»: Изменить класс из задания B так, чтобы фразу можно было изменять во время работы
- 21. Задание «E»: Изменить класс из задания D так, чтобы можно было добавлять фразы в набор фраз,
- 22. Зачем скрывать внутреннее устройство? Объектная модель задачи: интерфейсы защита внутренних данных проверка входных данных на корректность
- 23. Защита внутренних данных метод есть + энергия + настроение - голод метод спать + энергия +
- 24. class TPen: def __init__ ( self ): self.__color = "000000" Пример: класс «перо» class TPen: def
- 25. Пример: класс «перо» class TPen: def __init__ ( self ): self.__color = "000000" def getColor (
- 26. Пример: класс «перо» Использование: pen = TPen() pen.setColor ( "FFFF00" ) print ( "цвет пера:", pen.getColor()
- 27. Свойство color class TPen: def __init__ ( self ): ... def __getColor ( self ): ...
- 28. Изменение внутреннего устройства class TPen: def __init__ ( self ): self.__color = 0 def __getColor (
- 29. Преобразование int → hex Целое – в шестнадцатеричную запись: "0000FF" правильно так! 16711935 → "FF00FF" x
- 30. Преобразование hex → int "FF00FF" → 16711935 sHex = "FF00FF" x = int ( sHex, 16
- 31. Свойство «только для чтения» class TCar: def __init__ ( self ): self.__v = 0 v =
- 32. Скрытие внутреннего устройства Инкапсуляция («помещение в капсулу») интерфейс (public) внутреннее устройство (private)
- 33. Задание «A»: Построить класс РядЛампочек (LampRow), который хранит состояние ряда из 8 лампочек в виде символьной
- 34. Задание «B»: Дополните класс LampRow из задания A так, чтобы количество лампочек в цепочке можно было
- 35. Задание «С»: Дополните класс LampRow из задания B так, чтобы лампочки могли гореть одним из двух
- 36. Задание «D»: Дополните класс LampRow из задания C так, чтобы код состояния хранился как целое число.
- 37. Классификации Классификация – разделение изучаемых объектов на группы (классы), объединенные общими признаками. Яблоко Груша Банан Апельсин
- 38. Что такое наследование? класс Двудольные семейство Бобовые род Клевер горный клевер наследует свойства (имеет все свойства)
- 39. Иерархия логических элементов Логический элемент с одним входом с двумя входами НЕ Объектно-ориентированное программирование – это
- 40. Базовый класс class TLogElement: def __init__ ( self ): self.__in1 = False self.__in2 = False self._res
- 41. Базовый класс class TLogElement: def __init__( self ): self.__in1 = False self.__in2 = False self._res =
- 42. Метод calc class TLogElement: ... def calc ( self ): pass заглушка
- 43. Абстрактный класс Абстрактный метод – это метод класса, который объявляется, но не реализуется в классе. Абстрактный
- 44. Абстрактный класс class TLogElement: def __init__ ( self ): self.__in1 = False self.__in2 = False self._res
- 45. Что такое полиморфизм? греч.: πολυ — много, μορφη — форма Полиморфизм – это возможность классов-наследников по-разному
- 46. Элемент «НЕ» class TNot ( TLogElement ): def __init__ ( self ): TLogElement.__init__ ( self )
- 47. Элемент «НЕ» n = TNot() n.In1 = False print ( n.Res ) Использование: создание объекта установка
- 48. Элементы с двумя входами class TLog2In ( TLogElement ): pass наследник от TLogElement нельзя, он абстрактный
- 49. Элементы с двумя входами class TAnd ( TLog2In ): def __init__ ( self ): TLog2In.__init__ (
- 50. Пример: элемент «И-НЕ» elNot = TNot() elAnd = TAnd() print ( " A | B |
- 51. Модульность class TLogElement: ... class TNot ( TlogElement ): ... class TLog2In ( TLogElement ): pass
- 52. Модульность В основную программу: import logelement elNot = logelement.TNot() elAnd = logelement.TAnd() ...
- 53. Сообщения между объектами class TLogElement: def __init__ ( self ): ... self.__nextEl = None self.__nextIn =
- 54. Сообщения между объектами class TLogElement: ... def __setIn1 ( self, newIn1 ): self.__in1 = newIn1 self.calc()
- 55. Сообщения между объектами elNot = TNot() elAnd = TAnd() elAnd.link ( elNot, 1 ) print (
- 56. Задание «A»: Постройте класс Pet (домашнее животное) с двумя скрытыми полями: __name (имя) и __age (возраст).
- 57. Задание «A»: Пример: from animals import * p = Dog("Шарик", 5) p.gettingOlder() print( p.name + ":",
- 58. Задание «B»: Добавьте класс Mammal (млекопитающее) – наследник класса Pet и предок для классов Cat и
- 59. Задание «C»: Добавьте класс Reptilia (рептилии) – наследник класса Pet и предок для новых классов Turtle
- 60. Задание «A»: Собрать полную программу и построить таблицу истинности последовательного соединения элементов «ИЛИ» и «НЕ». Пример:
- 61. Задание «B»: Добавить в иерархию классов элементы «И-НЕ» (TNAnd) и «ИЛИ-НЕ» (TNOr), которые представляют собой последовательные
- 62. Задание «C»: Добавить в иерархию классов элемент «исключающее ИЛИ» (TXor) и «импликация» (TImp). Построить их таблицы
- 64. Скачать презентацию















![Массив машин N = 3 cars = [] for i in range(N):](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1020740/slide-16.jpg)













































Онлайн или не онлайн – вот в чем вопрос
Устройства ввода графической информации. Итоговое тестирование
Безопасность в сети Интернет
История создания Интернета
Компьютерные вирусы
Аппаратные и программные средства ИКТ
Трёхмерное измерение
Практические задания по PowerPoint
Компьютерное моделирование свободного падения
Системы счисления. Обобщение
Формы представления информации
Моделирование. Знаковая информационная модель
Изучение библиографических стилей. Составление списка источников. Лабораторная работа 7
Алгоритмы и исполнители. Основы алгоритмизации
Ответственное поведение в сети интернет. Киберпреступления
Коммерческий сайт компании
Особенности разработки сложных программных систем
Лекция 4
Информационная система
Язык программирования Pascal. Тест
Присоединение Средней Азии. Классификация изданий. Итоговая информативность
Основы алгоритмизации и программирования
Разработка программных модулей программного обеспечения для компьютерных систем
Человек на пути
Ежегодные мероприятия университета Частного права
Расчёт для аудио- и видеоданных
Lecture Plan: Diagonal Layout. Left-hand Margin. Which Language Used in Notes. When to Note
Компьютерное моделирование