W Cat - Описание языка PascalABC.NET

Тут можно читать онлайн W Cat - Описание языка PascalABC.NET - бесплатно полную версию книги (целиком) без сокращений. Жанр: Детская образовательная литература. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

W Cat - Описание языка PascalABC.NET краткое содержание

Описание языка PascalABC.NET - описание и краткое содержание, автор W Cat, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru


PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства: классы, перегрузку операций, интерфейсы, обработку исключений, обобщенные классы и подпрограммы, сборку мусора, лямбда-выражения, средства параллельного программирования.


PascalABC.NET является мультипарадигменным языком: на нем можно программировать в структурном, объектно-ориентированном и функциональном стилях.


PascalABC.NET — это также простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense, содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм.

Описание языка PascalABC.NET - читать онлайн бесплатно полную версию (весь текст целиком)

Описание языка PascalABC.NET - читать книгу онлайн бесплатно, автор W Cat
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

implementation

раздел реализации

end.

Имя библиотеки должно совпадать с именем pas-файла, в котором библиотека находится.

Имеется также упрощенный синтаксис библиотек - без разделов интерфейса и реализации, совпадающий с упрощенным синтаксисом модулей (за исключением заголовка).

В результате компиляции библиотеки в текущем каталоге создаётся .dll-файл, содержащий откомпилированную библиотеку.

Подключение библиотеки к основной программе

Для подключения библиотеки к основной программе используется директива компилятора {$reference ИмяБиблиотеки}. Например:

{$reference ABC.dll}

{$reference ABC1.dll}

begin

writeln(a.GetType);

end.

Подключение библиотеки может проводиться в любом месте исходного файла.

Библиотеки ABC и ABC1 имеют соответственно вид:

library ABC;

var a: integer;

end.

и

library ABC1;

var a: real;

end.

Алгоритм поиска имен в библиотеках

В первую очередь имя ищется в исходном модуле, затем в модулях, подключенных в разделе uses в порядке справа налево, и только потом - в подключенных библиотеках в порядке подключения.

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

В случае коллизии имен используемое имя можно предварять именем библиотеки с последующей точкой:

{$reference ABC.dll}

{$reference ABC1.dll}

begin

writeln(ABC1.a.GetType);

end.

Документирующие комментарии

Можно помечать заголовки процедур, функций, методов, имена классов, типов, констант и переменных так называемыми документирующими комментариями. Документирующие комментарии всплывают в подсказках редактора при наведении курсора мыши на слово, при открытии скобки после имени подпрограммы и при выборе поля из списка полей, выпадающих при нажатии точки после имени. Система всплывающих подсказок в редакторе получила название Intellisense.

Документирующий комментарий располагается на строчке, предшествующей помечаемому объекту, и начинается с символов ///. Например:

const

/// Константа Pi

Pi = 3.14;

type

/// TTT - синоним целого типа

TTT = integer;

/// Документирующий комментарий класса XXX

XXX = class

end;

/// Документирующий комментарий процедуры p

procedure p(a : integer);

begin

end;

var

/// Документирующий комментарий переменной t1

t1: TTT;

Документирующие комментарии могут занимать несколько строк, каждая из которых должна начинаться с /// . Для комментирования подпрограмм можно использовать в первой строке документирующий комментарий ///-, тогда его содержимое меняет заголовок подпрограммы в подсказке при наведении курсора мыши. Например:

///- Exclude(var s : set of T; el : T)

///Удаляет элемент el из множества s

procedure Exclude(var s: TypedSet; el: object);

Если первая строка документирующего комментария имеет вид ///--, то подсказка не всплывает. Это делается для элементов, которые хочется скрыть от системы всплывающих подсказок.

Классы

Обзор классов и объектов

Описание классов

Класс представляет собой составной тип, состоящий из полей (переменных), методов (процедур и функций) и свойств. Описание класса имеет вид:

type

имя класса = class

секция1

секция2

...

end;

Каждая секция имеет вид:

модификатор доступа

описания полей

объявления или описания методов и описания свойств

Модификатор доступа в первой секции может отсутствовать, при этом подразумевается модификатор internal (видимость всюду внутри сборки).

Методы могут описываться как внутри, так и вне класса. При описании метода внутри класса его имя предваряется именем класса с последующей точкой. Например:

type

Person = class

private

fName: string;

fAge: integer;

public

constructorCreate(Name: string; Age: integer);

begin

fName := Name;

fAge := Age;

end;

procedure Print;

propertyName: string read fName;

propertyAge: integer read fAge;

end;

procedure Person.Print;

begin

writelnFormat('Имя: {0} Возраст: {1}', Name, Age);

end;

После слова classв скобках может быть указано имя класса-предка (см. Наследование), а также через запятую список поддерживаемых интерфейсов.

Перед словом classможет быть указано ключевое слово finalв этом случае от класса запрещено наследовать.

Все описания и объявления внутри класса образуют тело класса . Поля и методы образуют интерфейс класса. Инициализаторы полей описаны здесь.

Классы могут описываться только на глобальном уровне. Локальные определения классов (т.е. определения в разделе описания подпрограмм) запрещены.

Переменные типа класс

В языке PascalABC.NET классы являются ссылочными типами. Это значит, что переменная типа класс хранит в действительности ссылку на объект.

Переменные типа класс называются объектами или экземплярами класса . Они инициализируются вызовом конструктора класса - специального метода, выделяющего память под объект класса и инициализирующего его поля:

var p: Person := new Person('Иванов',20);

После инициализации через переменную типа класс можно обращаться к публичным членам класса (полям, методам, свойствам), используя точечную нотацию:

Print(p.Name,p.Age);

p.Print;

Вывод переменной типа класс

По умолчанию процедура write для переменной типа класс выводит содержимое её публичных полей и свойств в круглых скобках через запятую:

write(p); // Иванов 20

Чтобы изменить это поведение, в классе следует переопределить виртуальный метод ToString класса Object - в этом случае именно он будет вызываться при выводе объекта.

Например:

type

Person = class

...

functionToString: string; override;

begin

Result := string.Format('Имя: {0} Возраст: {1}', Name, Age);

end;

end;

...

varp: Person := new Person('Иванов',20);

writeln(p); // Имя: Иванов Возраст: 20

Присваивание и передача в качестве параметров подпрограмм

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

Как ссылка переменная типа класс может хранить значение nil:

p := nil;

...

if p = nilthen ...

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

varp1,p2: Person;

...

p1 := new Person('Петров',20);

p2 := p1;

p1.IncAge;

p2.Print; // Имя: Петров Возраст: 21

Сравнение на равенство

При сравнении переменных типа класс на равенство сравниваются ссылки, а не значения.

varp1 := new Person('Петров',20);

varp2 := new Person('Петров',20);

writeln(p1=p2); // False

p2 := p1;

writeln(p1=p2); // True

Это поведение можно изменить, перегрузив операцию = для класса.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


W Cat читать все книги автора по порядку

W Cat - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Описание языка PascalABC.NET отзывы


Отзывы читателей о книге Описание языка PascalABC.NET, автор: W Cat. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x