ЧП ПРОМКОД - Официальный сайт Телефоны ЧП ПРОМКОД: В Киеве: +38(044)38-38-773, В Херсоне: +38(0552)39-10-24

 Официальный сайт Частного предприятия «ПРОМКОД».

Главная :: О компании :: Контакты :: Обратная связь

   >   >   >   > 



Терминология: классы, объекты и типы в языке Перфолента

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


Любые физические объекты могут быть описаны в программе в виде классов.

«В мире работающей программы нет ничего,

кроме структурных и ссылочных объектов.»

Первый закон Перфоленты.

 

Типы данных бывают разные. Это могут быть простейшие типы Целое, Число, Строка, Дата, Булево, а могут быть типы, обладающие сложной структурой и поведением, например, ТаблицаЗначений.

В библиотеках .Net Framework и в стандартной библиотеке языка Перфолента, находится огромное количество разнообразных типов, которые должны были бы подойти на все случаи жизни. Но нет, жизнь слишком разнообразна и очень вероятно, что вы не найдете во всем этом разнообразии тот тип данных, который полностью удовлетворит ваши нужды. Вам обязательно не хватит какого-нибудь свойства или не устроит поведение методов. Тут-то и пригодится возможность создавать собственные типы данных.

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

Элемент программы – это самостоятельная часть программы, описанная в стандарте языка и имеющая особое назначение, и правила использования. В языке Перфолента.Net элементами программы являются: Класс, Модуль (в том числе модуль Программа), Структура, Интерфейс, Перечисление. Элементы программы похожи на кубики из которых собирается программа.

Объект – это сущность времени выполнения. Чаще всего это некая структура данных, которая располагается где-то в памяти компьютера и к которой можно получить доступ из программы. Объект всегда имеет ТИП, может быть структурным либо ссылочным, может обладать свойствами и методами, возможно может порождать события, сохраняться на устройства хранения и т.д. Очень часто, чтобы подчеркнуть физическую сущность объекта и отличать его от других объектов того же типа, используется термин «Экземпляр объекта». Ссылочный объект создается на базе элемента Класс, а структурный объект создается на базе элемента Структура.

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

Класс – это программный шаблон, позволяющий компилятору сгенерировать машинный код, используя который среда выполнения сможет создать и использовать необходимое количество экземпляров объектов этого класса. В шаблоне могут быть описаны все члены будущего объекта, такие как поля, свойства, методы, события и т.д. Класс является сущностью времени компиляции. Во время выполнения вы можете только сказать, что создали экземпляр объекта определенного класса. Модули, Структуры, Интерфейсы и Перечисления так же являются специализированными версиями классов, которые используются средой выполнения по другим правилам. Например, экземпляры структур по-другому хранятся в памяти компьютера, экземпляры модулей во время выполнения создавать нельзя, интерфейсы обычно становятся неотъемлемой частью других классов, а перечисления во время выполнения представлены одним из возможных значений.    

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

Модуль (в том числе модуль Программа) – специализированный вид класса, все члены которого являются общими для класса. Экземпляры объектов этого класса создавать нельзя.

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

Тип – это уникальная спецификация для создания объекта во время выполнения. Тип включает в себя одно или несколько имен классов, пространство имен к которому он принадлежит, а также все необходимые указания, конкретизирующие будущий объект так, чтобы среда выполнения могла его создать. Например, определение Строка[,] задает тип: «Двухмерный массив, состоящий из элементов типа Строка».

Умнику на заметку: Понятия Класс и Тип часто означают одно и то же, однако Тип — это более широкое понятие. Тип может включать в себя несколько классов, например, рассмотренный ранее тип Строка[,] содержит в себе классы Массив и Строка. Правильно говорить о создании экземпляров объектов определенного типа, но когда в определении типа нет ничего, кроме имени класса, то можно говорить о создании объектов определенного класса.

Родитель (базовый тип) – класс, от которого текущий класс унаследовал свойства и методы. Класс Объект является корневым родителем для всех остальных классов.

Предок – класс из цепочки родителей (цепочки наследования) текущего класса.    

Потомок – класс, который унаследует свойства и методы от текущего класса.   

 

 

Определение собственного класса.

В языке Перфолента.Net существует возможность создавать собственные классы объектов.

Рассмотрим определение простейшего класса:

Класс Животное
            //тут можно определить свойства и методы работы с классом
КонецКласса

Вот и всё! Мы уже можем создавать экземпляры объектов класса Животное оператором Новый. И несмотря на то, что у этого объекта нет ни каких свойств и методов, ему можно придумать полезное применение. Например, он может быть родителем классов Кот и Собака.

Умнику на заметку: Если для класса не указан родитель, то его родителем является класс Объект, который является корневым родителем всей иерархии классов, используемых в .Net.

Создадим классы Кот и Собака, указав, что родителем для них является класс Животное:

Класс Кот Родитель Животное
            //тут можно определить свойства и методы работы с классом
КонецКласса

Класс Собака Родитель Животное
            //тут можно определить свойства и методы работы с классом
КонецКласса

Теперь покажем, как можно эти классы использовать:

МойКот = Новый Кот
ПриветЖивотное(МойКот)

МояСобака = Новый Собака
ПриветЖивотное(МояСобака)

//где-то ниже определим процедуру
Процедура ПриветЖивотное(МоёЖивотное тип Животное)
        Выбор Для МоёЖивотное
        Когда ЭтоТип Кот
                ВыводСтроки "Привет кот!"
        Когда ЭтоТип Собака
                ВыводСтроки "Привет собака!"
        Иначе
                ВыводСтроки "Привет не известное животное!"
        КонецВыбора
КонецПроцедуры

Как видно из этого примера, процедура ПриветЖивотное() может приветствовать животное любого типа, даже такого, который на момент написания программы еще не существовал. Главное, чтобы не известное животное было потомком класса Животное. А вот классы Кот и Собака этой процедуре известны и приветствие выводится вполне конкретное.

Таким образом, мы извлекли пользу от использования классов не имеющих ни каких свойств и методов (кроме методов родительского типа Объект). Нам пригодилась сама иерархия, согласно которой мы классифицировали объекты.

Умнику на заметку: Отметьте для себя связь терминов Класс и Классификация. Вы должны выстраивать иерархию классов не как попало, а по определенным критериям, что бы можно было сказать, что вы их классифицировали.

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

Удачи в программировании!



  Навигатор:
Информация для клиентов
Доработки к Бухгалтерии для Украины ред. 1.2
Советы бухгалтеру
Язык программирования Перфолента.Net
  Все статьи
  Новости ПРОМКОД:
      27.09.2020 Обновился до версии 0.4.7.0 дистрибутив языка программирования Перфолента.Net
      23.07.2019 Опубликована первая пробная версия языка программирования Перфолента
      03.07.2018 На портале поддержки пользователей опубликованы внешние формы отчетов "Декларация по НДС, Уточняющий расчет по НДС"
      27.06.2018 На сайте поддержки пользователей опубликована информация о проблемных ситуациях в типовых конфигурациях для Украины
      21.06.2018 Выпущены новые релизы типовых конфигураций для Украины на платформе 1С:Підприємство 7.7
       Все новости ПРОМКОД

  Развлечения:
Загрузка...