Программирование для мобильных платформ. Android. Для студентов технических специальностей. Иван Андреевич Трещев

Чтение книги онлайн.

Читать онлайн книгу Программирование для мобильных платформ. Android. Для студентов технических специальностей - Иван Андреевич Трещев страница 2

Программирование для мобильных платформ. Android. Для студентов технических специальностей - Иван Андреевич Трещев

Скачать книгу

программно эти пространства никак не описываются. Защищенность данных достигается путем присваивания модификаторов доступа.

      Как пример могу привести работу автомобиля. Его можно воспринимать как программу. Разберем работу коробки передач. Она хранит в себе множестве сведений: максимальное количество передач, текущая включенная передача, конструкция – все это можно назвать данными. В ходе работы в ней происходят множество процессов, которые изменяют эти данные. При этом коробка не влияет, например, на систему световых приборов. Обе эти системы работают независимо друг от друга. В этом и есть суть инкапсуляции.

      Полиморфизм

      Полиморфизм для понимания считается самым сложным принципом. С точки зрения полиморфизма для объектов схожих классов можно задать одинаковое поведение.

      Например: представим класс реализующий круг (в качестве параметров можно указать радиус, площадь, периметр; его можно увеличивать, уменьшать, менять цвет контура или фона, выводить на экран – это и будет являться поведением круга) и представим еще один класс реализующий квадрат (в качестве параметров так же можно принять площадь, длина ребра и тд.; его так же можно увеличивать, уменьшать, менять цвет фона и контура и тд.).

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

      Можно привести другой пример: в случае если создать объект родительского класса, а инициализировать его как объект дочернего, то это не вызовет никакой ошибки. Программа корректно обработает данный код. В случае нашего примера можно создать массив объектов геометрических фигур (родительского класса) и потом рандомно присваивать разным ячейкам этого массива разные дочерние классы, то это так же не вызовет никакой ошибки.

      В этом и есть идея полиморфизма: объекты схожих классов обрабатываются одинаково. Однако если изначально создать массив объектов одного из дочерних классов, а потом к одной из ячеек присвоить объект другого дочернего класса, то это вызовет ошибку. Это вполне логично, так как при более детальной реализации эти классы разные.

      Методы

      В рамках ООП поведение объекта задают методы, которые так же описаны должны быть описаны при создании класса. Метод содержит в себе набор процедур, которые выполняются над объектом.

      Метод аналогично функции в С++ может принимать или не принимать аргументы. В листинге указан

Скачать книгу