Your SlideShare is downloading. ×
0
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Ruby: основы ООП
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ruby: основы ООП

3,543

Published on

Основы объектно-ориентированного программирования на ruby. Разбор концепции наследования. …

Основы объектно-ориентированного программирования на ruby. Разбор концепции наследования.

Оригинал: http://school.smirik.ru/show/43

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,543
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
38
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Что такое ООП Кот Другие животные Наследование Примеры Задания References Объектно–ориентированное программирование Информатика 10-11 классы 26 февраля 2012 г. Информатика 10-11 классы Объектно–ориентированное программирование
  • 2. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesЧто такое ООП? Динамическое и функциональное виды программирования, как известно, решают весьма важную задачу разделения бизнес–логики приложения от низкоуровневых алгоритмов. Когда мы используем автомобиль, мы не задумываемся о его устройстве, а просто используем различные способы управления. При этом даже те инженеры, которые разрабатывают автомобили, имеют свои специализации: часть занимается двигателем, часть — дизайном, часть — безопасностью, а кто-то — и концепцией в целом. Информатика 10-11 классы Объектно–ориентированное программирование
  • 3. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesЧто такое ООП? Концепция объектно–ориентированного программирования (ООП) предлагает оперировать в программе не переменными и функциями, а объектами. Всё в программе является объектами. У объекта имеются свойства и методы. Свойства представляют собой переменные, принадлежащие объекту. Методы — функции, позволяющие получить / изменить информацию об объекте. Информатика 10-11 классы Объектно–ориентированное программирование
  • 4. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesОбъект Кот Информатика 10-11 классы Объектно–ориентированное программирование
  • 5. Что такое ООП Кот Другие животные Наследование Примеры Задания References Какие свойства есть у кота? Информатика 10-11 классы Объектно–ориентированное программирование
  • 6. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesСвойства кота Порода Цвет Рост Возраст Дата последнего кормления Дата последнего поглаживания Дата последнего мяукания ... Информатика 10-11 классы Объектно–ориентированное программирование
  • 7. Что такое ООП Кот Другие животные Наследование Примеры Задания References А методы? Информатика 10-11 классы Объектно–ориентированное программирование
  • 8. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesМетоды кота Мяукнуть Поесть Потребовать погладить Погулять ... Информатика 10-11 классы Объектно–ориентированное программирование
  • 9. Что такое ООП Кот Другие животные Наследование Примеры Задания References А что с другими животными? Информатика 10-11 классы Объектно–ориентированное программирование
  • 10. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesУпс, не то Информатика 10-11 классы Объектно–ориентированное программирование
  • 11. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesСобака Информатика 10-11 классы Объектно–ориентированное программирование
  • 12. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesСравнение свойств Кота и Собаки Порода Порода Цвет Цвет Рост Рост Возраст Возраст Дата последнего Дата последнего кормления кормления Дата последнего Дата последнего поглаживания поглаживания Дата последнего Дата последнего мяукания гавкания Информатика 10-11 классы Объектно–ориентированное программирование
  • 13. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesСравнение методов Кота и Собаки Гавкнуть Мяукнуть Поесть Поесть Потребовать погладить Потребовать погладить Погулять Погулять Выгуляться Информатика 10-11 классы Объектно–ориентированное программирование
  • 14. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesДомашние животные Информатика 10-11 классы Объектно–ориентированное программирование
  • 15. Что такое ООП Кот Другие животные Наследование Примеры Задания References Принцип наследования Общие свойства и методы объектов можно вынести в класс–родитель. Все “дети”–наследники автоматически получают их. Информатика 10-11 классы Объектно–ориентированное программирование
  • 16. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesСхема наследования Родитель: Домашнее животное Наследник: Кот Наследник: Собака Информатика 10-11 классы Объектно–ориентированное программирование
  • 17. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesНесколько нудных терминов Одинаковые объекты являются экземплярами класса. Кот — это, на самом деле, класс. А вот, например, кот Вася — это объект, то есть, представитель класса. Класс — это программная структура. В программе мы сначала создаём класс, а потом уже создаём (инстанцируем) объекты. В ruby всё что угодно является объектом. Даже число 5, строка “мама мыла раму” и пр. Информатика 10-11 классы Объектно–ориентированное программирование
  • 18. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesКласс Многоугольник Создадим класс Многоугольник. Базовые свойства фигуры: стороны фигуры, углы, периметр, площадь и др. Методы: посчитать площадь, посчитать периметр, найти радиус описанной окружности и др. Фигуры бывают разные: треугольник, четырёхугольник (среди которых тоже есть квадрат, ромб и пр.) У каких-то фигур мы знаем, как считать площадь и пр., а у каких-то — нет. Напишем программу. Информатика 10-11 классы Объектно–ориентированное программирование
  • 19. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesКласс Многоугольник Listing 1: Класс Многоугольник c l a s s Polygon attr_accessor : sides , : corners , : perimeter , : square def perimeter @ p e r i m e t e r = @ s i d e s . i n j e c t ( 0 ) { | r e s , elem | r e s + elem } end d e f num_points @sides . s i z e end end Информатика 10-11 классы Объектно–ориентированное программирование
  • 20. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesПояснения к классу Методы класса определяются точно так же, как и обычные функции. Отличий нет. Свойства класса мы будем определять через специальную конструкцию attr_accessor. Не вдаваясь в детали, просто перечислим все свойства–переменные. Обратите внимание, что они начинаются со знака “двоеточие”. Чтобы внутри метода обратиться к свойству, нужно перед его (свойства) названием поставить знак @. В данном классе мы определяем методы perimeter и num_points (количество вершин). Мы специально метод perimeter назвали одинаково со свойством, чтобы при вызове obj.perimeter происходило автоматическое вычисление. Информатика 10-11 классы Объектно–ориентированное программирование
  • 21. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesИспользуем класс Polygon Listing 2: Использование Polygon f i g = P o l y g o n . new fig . sides = [2 ,4 ,2 ,4] f i g . c o r n e r s = [ 9 0 , 90 , 90 , 90] puts f i g . perimeter Для создания экземпляра класса используется конструкция CLASS.new. Аналог — ручное создание массивов и хэшей. Некоторые свойства мы задаём вручную. Также, как и массивами, для вызова методов и свойств используем разделитель–точку. Информатика 10-11 классы Объектно–ориентированное программирование
  • 22. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesКласс Triangle Listing 3: Класс Triangle c l a s s T r i a n g l e < Polygon def square pp = s e l f . p e r i m e t e r /2 ( pp ∗ ( pp − s i d e s [ 0 ] ) ∗ ( pp−s i d e s [ 1 ] ) ∗ ( pp−s i d e s [ 2 ] ) ) ∗ ∗ 0 . 5 end end t r = T r i a n g l e . new tr . sides = [3 ,4 ,5] puts t r . square puts t r . perimeter Информатика 10-11 классы Объектно–ориентированное программирование
  • 23. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesРазбор класса Triangle Аналогично создаём класс Triangle, являющийся наследником класса Polygon. Для наследования используем конструкцию: Наследник < Родитель. Все методы и свойства класса Polygon автоматически появились в классе Triangle. Отдельно определяем по формуле Герона площадь треугольника. Итого, теперь в треугольнике мы можем посчитать и площадь, и периметр. Информатика 10-11 классы Объектно–ориентированное программирование
  • 24. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesРазбор класса Triangle Разберёмся в конструкции self.perimeter. self означает текущий объект, то есть тот объект, для которого вызывается метод или свойство. self.sides — замена @sides. Однако вызвать метод со знаком @ не получится. Для этого и используем конструкцию self. self.perimeter вызывает метод perimeter для текущего объекта. Задание. В чём отличие записи @perimeter от self.perimeter? Одинаков ли будет результат. Если нет, приведите пример. Информатика 10-11 классы Объектно–ориентированное программирование
  • 25. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesЗадания Написать класс Прямоугольник — наследник Polygon. Определить в нём метод подсчёта площади. Проверить корректность его работы. Написать в классе Прямоугольник метод, определяющий, является ли прямоугольник квадратом. Метод должен возвращать булевский ответ. Проверить корректность работы метода. Создать в классе Треугольник метод, проверяющий, является ли данный треугольник прямоугольным. Проверить корректность работы метода. Информатика 10-11 классы Объектно–ориентированное программирование
  • 26. Что такое ООП Кот Другие животные Наследование Примеры Задания ReferencesReferences При подготовке данного материала использовались сайты: http://ru.wikibooks.org/wiki/Ruby, http://rubydev.ru, http://en.wikipedia.org, http://ruby-lang.org, http://de.trinixy.ru/, http://www.krassotkam.ru/, http://gen.su/. Все презентации доступны на http://school.smirik.ru! Вопросы, предложения, д/з: smirik@gmail.com Информатика 10-11 классы Объектно–ориентированное программирование

×