Готовые программы включающие функции объекты и классы это

До сих пор на этом курсе мы усиленно изучали программирование на Питоне, но практически не задумывались над тем, как мы программируем и как мы организовываем код, который пишем. Все потому, что код, который мы создавали был очень прост.

Единственное, что мы довольно активно применяли — это функции. Они помогали нам выделить повторяющиеся части кода и в дальнейшем просто обращались к ним по имени.

При этом многие языки программирования (в том числе Питон) позволяют использовать подход, который существенно упрощает работу со сложно-структурированным кодом. Такой подход или парадигма называется объектно-ориентированным программированием (object-oriented programming, OOP).

Содержание занятия

  • Понятие объектно-ориентированного программирования
  • Классы и объекты в Питоне
  • Создание класса и метод .__init__()
  • Создание объекта
  • Атрибуты класса
  • Методы класса
  • Инкапсуляция
  • Наследование
  • Полиморфизм
  • Императивное и декларативное программирование
  • Процедурное программирование
  • Объектно-ориентированное программирование
  • Функциональное программирование
  • Готовые классы библиотеки sklearn
  • Пример ООП: собственный класс линейной регрессии
  • Пара важных деталей
  • Вопросы для закрепления

Понятие объектно-ориентированного программирования

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

Python с нуля. Урок 10 | Классы и объекты

  • Во-первых, у них есть общие свойства, например, шерсть, когти и хвост.
  • Кроме того, любая кошка может выполнять определенные действия: лазить по деревьям, мяукать и потягиваться.

Если мы хотим максимально сэкономить время при рисовании кошек, то будет логично создать шаблон условной кошки, а затем копировать этот шаблон и дополнять нужными нам свойствами и положениями.

Так вот объектно-ориентированное программирование предполагает, что вначале мы создаем шаблон нужного нам предмета (назовем его классом, class), а затем на основе шаблона создаем конкретный предмет (назовем его объектом, object).

объектно-ориентированное программирование: класс и объект

Причем тип животного или цвет шерсти станут атрибутами (attribute) такого объекта, а способность выполнять определенные движения — методами (method).

Читайте также:
Программа как уменьшить картинку

атрибуты и методы класса

По большому счету в этом и заключается суть программирования, ориентированного на объект. Наши программы теперь состоят не из последовательных команд, а представляют собой объекты.

Посмотрим как это можно реализовать на Питоне.

Что такое класс. Что такое объект класса. Экземпляр класса это. Класс ООП это. Урок #73

Классы и объекты в Питоне

Создание класса и метод .__init__()

Класс в Питоне создается с помощью ключевого слова class, названия класса и двоеточия. Внутри класса необходимо прописать метод .__init__(), который будет создавать или инициализировать (initialize) объект этого класса. Методы прописываются через ключевое слово def.

Дополнительно метод .__init__() нужно снабдить аргументом, его принято обозначать словом self, который при создании объекта будет ссылаться на этот же объект (то есть по сути сам на себя, отсюда и выбор такого названия).

# создадим класс CatClass
class CatClass :
# и пропишем метод .__init__()
def __init__ ( self ) :

Оператор pass мы указали, потому что метод класса, как и тело функции, нельзя оставлять пустым. Теперь давайте создадим или инициализируем объект созданного класса.

Создание объекта

Для того чтобы создать объект, запишем наш класс в переменную. Пусть это будет Matroskin. Дополнительно проверим тип данных новой переменной.

# создадим объект Matroskin класса CatClass()
Matroskin = CatClass ( )
# проверим тип данных созданной переменной
type ( Matroskin )
__main__.CatClass

Классы и функции

Что и когда лучше использовать, чтобы писать хороший код.

Готовые программы включающие функции объекты и классы это

В результате будет создан файл .cs с именем класса Phone . В нём будет объявлен класс с помощью ключевого слова class и объявление класса может иметь следующий вид:

👨‍🎓️ Самоучитель по C# для начинающих за 30 минут. Часть 2: ООП и коллекции

В результате выполнения выведены значения полей и отработаны методы класса. Но для более эффективного программирования классов используются конструкторы.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека шарписта»

Конструкторы

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

Существуют следующие типы конструкторов:

  • конструктор без параметров;
  • параметризованный конструктор;
  • конструктор по умолчанию.

Конструктор по умолчанию создается в языке C#, если в классе не реализованы конструкторы.

Читайте также:
Примеры программ на haas

Имя конструктора должно совпадать с именем класса и не может иметь тип возвращаемого значения.

Модифицируем класс Phone , добавив в него конструктор без параметров и с параметрами:

👨‍🎓️ Самоучитель по C# для начинающих за 30 минут. Часть 2: ООП и коллекции

Конструкторы, как и другие методы можно перегружать, используя разные параметры.

Модификаторы доступа

Модификаторы доступа используется для установки уровня доступа/видимости для классов, полей, методов и свойств. К модификаторам доступа относятся такие ключевые слова, как public , private , protected и internal , ранее использовался нами только public .

Модификатор Описание
public Код доступен для всех классов
private Код доступен только в пределах одного класса
Protected Код доступен в пределах одного класса или в классе, который наследуется от этого класса
Internal Код доступен только в пределах собственной сборки, но не из другой сборки

Если мы объявим поля нашего класса Phone или методы как private , то они станут недоступны для использования в других классах, например в Program . Ограничение доступа и является основой принципа ООП – инкапсуляции.

Инкапсуляция и свойства

Инкапсуляция позволяет скрыть конфиденциальные данные от пользователей. Чтобы достичь этого, необходимо:

  • объявить поля/переменные как private ;
  • обеспечить public get и set методы через свойства для доступа и изменения значения private поля.

Доступ к private переменным возможен только внутри одного и того же класса. Иногда нужно получить к ним доступ вне класса – и это можно сделать с помощью свойств.

Свойство похоже на комбинацию переменной и метода и имеет два метода: get() и set() .

👨‍🎓️ Самоучитель по C# для начинающих за 30 минут. Часть 2: ООП и коллекции

Поля можно сделать доступными только для чтения, используя get() или только для записи, используя set() .

C# позволяет использовать автоматические свойства, где не нужно определять поле для свойства, а достаточно написать get; и set; внутри свойства. Изменив класс Phone , следующим образом:

👨‍🎓️ Самоучитель по C# для начинающих за 30 минут. Часть 2: ООП и коллекции

Результат показывает, что класс Smartphone успешно унаследовал от класса Phone поля и метод.

Наследование позволяет существенно сократить объем кода, так как не требуется повторная реализация участков кода в других классах.

Полиморфизм и перегрузка методов

Принцип полиморфизма позволяет методам классов иметь не одну, а несколько форм, и он необходим, когда у нас есть много классов, связанных друг с другом путем наследования.

Читайте также:
Программа сброса веса в домашних условиях

Как было сказано выше, наследование позволяет наследовать поля и методы от другого класса. Полиморфизм использует эти методы для выполнения различных задач. Это позволяет нам выполнять одно и то же действие разными способами.

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

👨‍🎓️ Самоучитель по C# для начинающих за 30 минут. Часть 2: ООП и коллекции

Все объекты успешно выполнили свои методы, благодаря их перегрузке.

Абстрактные классы и методы

Абстракция данных – это процесс сокрытия определенных деталей и показа пользователю только важной информации. Абстракция может быть достигнута либо с помощью абстрактных классов, либо с помощью интерфейсов.

Ключевое слово abstract используется для классов и методов:

  • абстрактный класс – это ограниченный класс, который нельзя использовать для создания объектов (для доступа к нему он должен быть унаследован от другого класса);
  • абстрактный метод: может использоваться только в абстрактном классе и не имеет тела. Тело предоставляется производным классом.

Абстрактный класс может иметь как абстрактные, так и обычные методы. Создавать объекты абстрактных классов нельзя. Для создания объектов должен использоваться класс наследник.

Рассмотрим на примере:

👨‍🎓️ Самоучитель по C# для начинающих за 30 минут. Часть 2: ООП и коллекции

Создали список с элементами, добавили новый элемент, удалили его по индексу, перевернули список в обратном порядке. С остальными методами предлагаю поэкспериментировать самостоятельно.

Словарь

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

Пустой словарь можно объявить так:

👨‍🎓️ Самоучитель по C# для начинающих за 30 минут. Часть 2: ООП и коллекции

Продемонстрировано использование основных свойств и методов класса Dictoniary .

На этом мы завершаем вторую часть статьи, важно понять принципы ООП и в дальнейшем их корректно применять на практике.

Материалы по теме

  • Руководство по С# для начинающих: массивы и цикл foreach
  • 8 шагов от новичка до профессионала: дорожная карта разработчика на C#
  • ТОП-10 книг по C#: от новичка до профессионала

Источник: proglib.io

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru