Класс в программировании представляет собой группировку данных, полей и функций или методов. Все они называются переменными, методами или функциями-членами. Программа построена из набора классов. Как только он определен и реализован, можно объявить его элементы аналогично языковым переменным из примитивных типов «int», «double» и «String».
Краткая история языка программирования
SIMULA был первым объектным языком, он использовался для создания симуляций. Алану Кею, который в то время учился в университете штата Юта, понравился язык тем, что в перспективе его можно было применить для персонального компьютера с целью реализации графически-ориентированных приложений. Он предположил, что такой язык, как SIMULA, предоставит новичкам хороший способ для создания программ, и поделился своим видением с Xerox Parc. В начале 1970-х годов команда, возглавляемая Аланом Кейем, создала первый ПК под названием Dynabook с объектно-ориентированным языком Smalltalk, который существует и по сей день, хотя в коммерческих целях не особо широко используется.
Идея объектно-ориентированного программирования (ООП) получила развитие в 1970-х, а в начале 1980-х Бьорн Страуструп интегрировал его в язык Си, который стал называться «C ++» — первый объектно-ориентированный язык (ООЯ), широко используемый в коммерческих целях.
В начале 1990-х годов группа в Sun под руководством Джеймса Гослинга разработала более простую версию C ++ под названием Java. Которая должна была стать языком для приложений видео по запросу. Этот проект Java программирования с нуля так и не был реализован. Группа вынуждена была переориентировать свое внимание на разработку языка для интернет-приложений. Он стал приобретать все более широкую популярность по мере того, как развивался интернет, хотя его проникновение на рынок было довольно сдержанным из-за кажущейся неэффективности.
Объектно-ориентированное моделирование
Классы и объекты являются двумя из немногих ключевых строительных блоков ООП. Они используются для моделирования поведения и инкапсуляции. В реальном мире можно найти множество отдельных однотипных объектов. Например, существуют тысячи велосипедов одной и той же марки и модели. Каждый был построен из одного набора и, следовательно, содержит равные компоненты. В ОО терминах, это означает, что велосипед является экземпляром из класса объектов, известных, как велосипеды. Все просто. Класс в языках программирования – это план, создания конкретных объектов. Например, Bicycle является одной из возможных реализаций.
Можно заметить, что Bicycle класс не содержит «main» метод. Из-за того что он не представляет полное приложение, а только план для велосипедов. Ответственность за создание и использование новых Bicycle объектов принадлежит иному классу в программировании. А Bicycle Demo — тот, который создает два отдельных Bicycle объекта и вызывает их методы.
Выходные данные этого теста выводят конечную скорость и передачу для двух велосипедов.
Основные термины
Переменная — это имя со значением, которое может изменяться во всей программе. В соответствии с содержащейся информацией, они классифицируются на 2 и более типа, в зависимости от используемого языка. В общем случае существует 2 типа классификаций:
- Переменные примитивных типов. Они определяются одним значением — целым, с плавающей запятой, символом или логическим знаком.
- Переменные-ссылки — это имена более сложной информации: массивы или объекты определенного класса.
Ключевым моментом ООП является предотвращение неверной информации, поскольку переменные не были правильно инициализированы. Для верного определения объектов необходимо использовать конструктор—методов, срабатывающий автоматически каждый раз, когда создается объект. Основная миссия их — зарезервировать память, выполнить инициализацию переменных членов класса в программировании. Они не имеют возвращаемого значения «void», и их имя совпадает с именем общей группы. Его неявный аргумент — это объект, который создается.
Классы и объекты в Python
Python относится к ОО языкам программирования, тем самым отличаясь от процедурно-ориентированного, где основной упор делается на функции, он базируется на объектах. Объект — набор данных и функций , которые воздействуют на них. Класс — это план для объекта. Можно думать о классе, как об эскизе (прототипе) дома. Он содержит все детали о полах, дверях, окнах и других конструкциях. На основании этих описаний строят дом, который является объектом.
Объект — это просто набор данных и методов (функций), которые воздействуют на эти них. Класс — это план для объекта. Можно думать о классе, как об эскизе (прототипе) дома. Он содержит все детали о полах, дверях, окнах и других конструкциях. На основании этих описаний строят дом, который является объектом.
Поскольку из описания можно сделать много домов, есть возможность создать много объектов из одной группы. Она также называется экземпляром. Что мы имеем в итоге? Что процесс демонстрирует понятие экземпляра класса и его создание. Подобно тому, как определения функций начинаются с ключевого слова «def», в Python определяют группу с помощью «class». Первая строка называется «docstring» и имеет краткое описание класса.
Класс создает новое локальное пространство имен, в котором определены все его атрибуты, они могут быть данными или функциями. В нем также есть специальные, начинающиеся с двойного подчеркивания (__). Например, «__doc__» дает строку документа этого класса в программировании.
Как только его определяют, создается новый объект с тем же именем. Он позволяет получать доступ к различным атрибутам, а также создавать новые объекты этого класса.
Ключевое слово «class»
Python — отличный язык, который поддерживает ООП, его применяют для установки класса. Он предлагает ряд преимуществ по сравнению с другими языками Java, C ++ или R. Это динамический язык с высокоуровневыми типами данных, поэтому разработка происходит намного быстрее, чем при Java или C ++. Программисту не требуется объявлять типы переменных и аргументов. Это также облегчает понимание и изучение Python для начинающих, его код более читабелен и интуитивно понятен.
Чтобы определить класс в Python, можно применить ключевое слово «class», за которым следует имя и двоеточие. Внутри его «__init__» метод должен быть определен с «def». Это инициализатор, который позже можно применить для создания объектов, он должен присутствовать всегда. Это похоже на конструктор Java.
Требуется один аргумент «self», который относится к самому объекту. Внутри метода используется ключевое слово «pass», и применяют правильный отступ. «Self» в Python эквивалентно «this» в C ++ или классов в Java. В этом случае есть в основном пустой «Dog», но еще нет объекта. Класс имеет точные спецификации, как план или шаблон. Они устанавливают контракт класса.
Разбивка представления
Класс можно разбить на две части:
- Заголовок класса, который состоит из ключевого слова «class» и имени, которое ему присваивается. Имена в языках программирования также известны, как идентификаторы.
- Тело, которое состоит из пары открывающих/закрывающих волнистых скобок с элементами между ними.
Вот шаблон для исходного кода класса:
class
{
…
}
Когда пишется класс, его заменяют именем. Тело состоит из одного или нескольких элементов, строка означает любое количество предшествующих частей. В частности, ключевое слово «class» должно начинаться с первого столбца строки, за которым следует остальная часть информации заголовка — идентификатор в простейшем случае.
Открытая волнистая скобка разграничивает заголовок и инициирует тело класса. Некоторые программисты любят размещать ее в конце строки, но большинству нравится — на отдельной линии. Волнистая скобка ограничивает тело класса. Обычная практика заключается в том, чтобы помещать закрывающую скобку в столбце отдельно.
Коллекция элементов
Содержимое тела класса состоит из коллекции элементов. Члены из переменных, называемых полями, и частей, которые он делает, обозначаемые методами также известными, как процедуры.
Содержимое тела должно иметь отступ не менее двух столбцов. Многие программисты делают их в четыре столбца за раз, чтобы облегчить чтение исходного кода. Количество не имеет значения, но должно соответствовать любой выбранной сумме.
Есть еще одно правило, которое нужно выполнять: идентификаторы классов должны начинаться с заглавной буквы, также, как каждое новое слово в нем.
Классы состоят из элементов. Члены — это либо поля, либо методы. Каждая ПО обязано иметь специальный метод с именем «main», если объединить исходный код, то получится шаблон для минимального приложения.
Это стандарт де-факто, где имена начинаются с заглавной буквы, так же как и дополнительные слова в нем. К примеру: MyClass подходит, а myClass и Myclass — нет. Идентификатор класса также должен быть именем файла, в который вводят исходный код. Он обязан иметь расширение «.java».
Ключевые слова
Ключевые слова классов в Java — это слова, зарезервированные, как основные строительные блоки языка. Нельзя использовать их для имен создаваемых объектов. Таких как идентификаторы классов, полей и методов. Компилятор распознает эти слова и рассматривает их, как особые.
Когда выполняется приложение Java, применяется команда «java», которая запускает JVM, и указывают файл класса для его исполнения. Процесс начинается со специального метода, который пользователь определяет, как «основной» метод приложения. Это соглашение является традицией Java программирования с нуля, унаследованной от » C «.
Исходящий код «main» () всегда выглядит примерно так:
public static void main (String[ ] identifier)
{
…
}
Ключевые «public» и «static», как специальные модификаторы, для нахождения «main» были найдены и доступны. Идентификатор бывает чем угодно, но в значительной степени — стандарт использует имя «арг», являющего аббревиатурой от аргументов.
Java конструктор класса
«Class» можно понимать как прототип, который регламентирует переменные и методы, общие для конкретного типа экземпляров, он определяет все, что характеризует и может создавать один или несколько экземпляров. Он устанавливает переменные и методы, общие для экземпляров этого типа созданного классом, но затем каждый будет иметь свои собственные значения: шаблон, цвет и рецепт.
В Java, сначала создают класс, прежде чем будет можно создавать экземпляры. Объект становится экземпляром класса. Он содержит атрибуты и методы, при создании нужно указать типы, методы, функции и имя атрибутов, а также тип данных, имена и другие параметры которые они используют.
Базовая структура выглядит так.
Создан JavaScript с именем класса «MyClass», который имеет в общей сложности три атрибута, и все они являются закрытыми: «String», «int» и «float».
Предельная переменная
Классы хранения C используются для описания функций переменной. Они в основном включают в себя область действия, видимость и время жизни, которые помогают отслеживать существование определенной переменной во время выполнения программы.
Язык C использует 4 класса хранения. А именно:
- Auto — устанавливается по умолчанию для всех переменных, объявленных внутри функции или блока классов в C. Следовательно, ключевое слово «auto» редко используется при написании программ на языке Си. Доступ к автоматическим переменным возможен только внутри блока/функции, в которой они были объявлены, а не вне их, что определяет их область действия. Конечно, к ним можно получить доступ во вложенные внутри родительского блока/функции, в которых была объявлена автоматическая переменная. Тем не менее, к ним можно получить доступ и вне их области действия, указывая на очень точное место в памяти, где находятся.
- Внешний, когда переменная определена в другом месте, а не там, где используется. Как правило, значение присваивается в одном блоке, и это может быть перезаписано в другом. Таким образом, «extern» — это не что иное, как глобальная переменная, инициализированная с допустимым значением, в котором она объявлена для использования в другом месте.
- Статический, используется для объявления статических переменных, которые широко применяются при написании классов в C. Они имеют свойство сохранять свое значение даже после того, как выходят за пределы области видимости. Таким образом, можно сказать, что они инициализируются только один раз и существуют до завершения программы, им новая память не выделяется, поскольку они не объявляются повторно, а область действия зависит от функции, для которой они были определены. Глобальные статические переменные могут быть доступны в любом месте программы. По умолчанию им присваивается значение 0 компилятором.
- Регистр, объявляет переменные, которые имеют ту же функциональность, что и автоматические. Единственное отличие состоит в том, что компилятор пытается сохранить их в микропроцессоре, если доступ свободный. Это делает использование намного быстрее, чем в памяти во время выполнения программы. Если свободный регистр недоступен, они сохраняются только в памяти. Обычно немногие переменные, к которым в программе нужно обращаться очень часто, объявляются с ключевым словом «register», что улучшает время выполнения программы.
Синтаксис: класс хранения var_data_type имя_переменки.
Секреты программирования
Следующие рекомендации не являются исчерпывающими и предназначены для правильного использования шаблонов проектирования объектно-ориентированного программирования:
- Избегать всемогущих классов в Python.
- Применять значимые имена.
- Разрабатывая класс или рефакторинг существующего кода, разработчик должен составить список всех задач, и придумать имя.
- При применении ООП гораздо проще придумать значимые имена, поскольку сам шаблон проектирования часто определяет тип ответственности.
- Имя класса обязано начинаться с заглавной буквы. Если имя представляет сложное слово или несколько слов, то первая буква каждого слова должна верхнего регистра. Пример: class Study, class StudyTonight etc.
- Классы содержат члены-данные и функции-члены. А доступ к этим элементам и переменной зависит от спецификаторов.
- Понятие членов класса. Что это значит? Класс в C ++ подобен структурам в C. Единственное отличие состоит в том, что он по умолчанию использует частный контроль доступа, а структура — public.
- Все функции OOPS, вращаются вокруг классов в C — наследование, инкапсуляция, абстракция и другие.
- Объекты содержат отдельные копии данных-членов.
- Можно создать столько объектов, сколько нужно.
Объект имеет индивидуальные переменные. Они инициализируются с использованием специальных функций класса, называемых конструкторами. И всякий раз когда он выходит из области видимости, вызывается другая специальная функция, называемая Destructor, чтобы освободить память, зарезервированную объектом. C ++ не имеет автоматического сборщика мусора, как в JAVA, в нем Destructor выполняет эту задачу.
В статье написано простым языком о классах в программировании. Надеемся, материал был вам понятен. Знание правил применения объектно-ориентированных языков — основное условие разработки успешного приложения. Хорошая архитектура означает деньги, сэкономленные на обучении, обслуживании, тестировании, исправлении, расширении и масштабировании исходного кода. Это требует больше времени и заботы о первоначальной разработке, но быстро возвращает инвестиции с большими интересами. Неизбежно, что даже лучше спроектированные архитектуры нуждаются во временной корректировке и рефакторинге.