Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
41) Область действия свойств и методов объектного типа при использовании наследования.
Если при написании программы вы хотите создать 2 объекта,например,создающих на экране движущуюся точку и квадрат и не хотите по несколько раз писать одинаковые свойства или методы,то лучше эти свойства или методы "унаследовать" от другого обекта.Тот объектный тип у кого наследуют методы или св-ва называется предком,тот который наследует-потомком.
Областью действия свойств и методов объектного типа при наследовании является сам предок и потомок. Методы которые в объектном типе(потомке) одинаково называются с методами предка но выполняют разные функции должны быть помечены св-вом virtual,а если в состав объекта входят виртуальные методы обязан быть хоть один конструктор(constructor)
Tpoint= object
procedure show; virtual;
procedure move(dx,dy);
end;
tcircle=object(Tpoint)
procedure show; virtual;
end;
42)переменные объектного типа могут быть статические и динамические т.е. распологаться в сегменте данных(статические) или в куче(динамические). В последнем случае мы могли бы использовать такую программу:
Unit graphapp; (для легкости примера создаём модуль)
interface
type
tgraphapp=object
procedure init;
procedure run;
end;
implementation
..........
end.
program gra; (программа пример использования динамических методов)
uses graphapp;
type
pgraphapp= ^tgraphapp;
var
app:pgraphapp;
begin
app:=New(pgraphapp,init);
app^.run;
end;
Для инициализации динамической переменной App используется вызов функции NEW. В этом случае первым парамеиром указывается имя типа инициализируемой переменной, а второй осуществляет вызов метода-конструктора,который нужен для настройки таблицы виртуальных методов.
43)переменные объектного типа могут быть статические и динамические т.е. распологаться в сегменте данных(статические) или в куче(динамические). В отличии от динамических объектов статические распологаются полностью в сегменте данных, а это плохо когда программа большая и памяти может не хватить.Динамические объекты распологаются в куче,а в сегменте данных распологается только адрес и смещение этого объекта в куче и занимает 4 байта.Таким образом при создании большой программы рекомендуется пользоваться динамическими объектами.
Одним из способов размещения объектов в памяи яв-ся использованиепроцедуры NEW,применяемой для работы с указателями:
var
sum:real;
p:^tperson;
......
new(p);
Процедура New выделяет в динамической памяти область, достаточную для хранения экземпляра типа,определенного указателем, и возвращает адрес этой области в указателе.
46) Метод- это процедура или функция, включенная в объект таким образом,что экземпляр данного типа становится доступным для нее изнутри. При определении метода он дополнительно идентифицируется именем типа.
Свойство- это данные(сами переменные).К свойству объекта можно обратиться как и к полю обычной записи, с помощью оператора with либо используя префикс с именем объекта. Например:
Student.ball:=4.5;
with student do begin
name:= 'Иванов Иван Иванович';
date:='25-06-1999';
end
Основное различие между переменными типа object и record в том,что в типе record могут быть только "свойства"(переменные) разных типов,а в Object по мимо "свойств" также используются "методы"(процедуры и функции).В record можно оперделить только свойства объекта(вес,размер,название),а в object можно запрограммировать также действия выполняемые над объектом(ДВИЖЕНИЕ,ПОКАЗ НА ЭКРАНЕ,СТИРАНИЕ С ЭКРАНА).Также отличие в том что в объектах есть свойство НАСЛЕДОВАНИЯ свойств и методов из других объектов.
49) Для описания методов в Паскале имеется особый вид процедур- конструкторы и деструкторы. Конструкторы предназнвчены для создания конкретного экземпляра объекта,ведь объект- это тип данных т.е. шаблон по которому можно создать сколько угодно рабочих экземпляров данных объектного типа..Зарезервированное слово Constructor,используемое в заголовке конструктора вместо procedure,предписывает компилятору создать особый код пролога,с его помощью настраивается так называемая таблица виртуальных методов(в этой таблицебудут хранится адреса точек входа в каждый виртуальный метод объекта). Если в объекте нет виртуальных методов ,в нем может не быть ни одного конструктора и если хотя бы один метод описан как виртуальный (с последующим словом Virtual) в состав объекта должен входить хотя бы один конструктор и обращение к конструктору должо предшествовать обращению к любому виртуальному методу.
В отличии от конструктора деструктор не связан с какими то специфичными действиями: для компилятора слова destructor и procedure-синонемы.Деструктор - просто процедура разрушающая экземпляр объектаОни освобождают выделенную для экземпляра объекта память.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.