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
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Видимость членов класса и модификаторы доступа

Каждое поле, метод или свойство класса имеет модификатор (атрибут) доступа, задающий правила его видимости. В PascalABC.NETсуществуют четыре вида модификаторов доступа: public(открытый), private(закрытый), protected(защищенный) и internal(внутренний). К члену класса, имеющему атрибут public, можно обратиться из любого места программы, члены класса с атрибутом privateдоступны только внутри методов этого класса, члены класса с атрибутом protectedдоступны внутри методов этого класса и всех его подклассов, члены класса с атрибутом internalдоступны внутри сборки (термин .NET, сборка в нашем понимании - это множество файлов, необходимых для генерации .exe или .dll-файла). Кроме того, privateи protectedчлены видны отовсюду в пределах модуля, в котором определен класс.

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

Например, пусть данный код располагается в одном модуле:

type

A = class

private

x: integer;

protected

a: integer;

public

constructorCreate(xx: integer)

begin

x := xx; // верно, т.к. внутри метода класса можно обращаться к его закрытому полю x

a := 0; // верно

end;

;

Следующий же код пусть располагается в другом модуле: type

B = class(A)

public

procedureprint;

begin

writeln(a); // верно, т.к. a - защищенное поле

writeln(x); // неверно, т.к. х - закрытое поле

end;

end;

...

varb1: B := new B(5);

...

writeln(b1.x); // неверно, т.к. х - закрытое поле

writeln(b1.a); // неверно, т.к. a - защищенное поле

b1.print; // верно, т.к. print - открытый метод

Комментарии по тексту программы описывают верное и неверное в смысле доступа обращение к полям и методам.

Методы

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

Определение методов можно давать как внутри класса (стиль Java, C#, C++), так и вне класса (стиль Delphi, C++). При определении метода вне интерфейса класса его имя предваряется именем класса с последующей точкой. Например:

type

Rectangle = class

x1,y1,x2,y2: integer;

constructorCreate(xx1,yy1,xx2,yy2: integer);

begin

x1 := xx1; x2 := xx2;

y1 := yy1; y2 := yy2;

end;

functionSquare: integer;

end;

functionRectangle.Square: integer;

begin

Result := abs(x2-x1) * abs(y2-y1);

end;

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

Методы делятся на классовые и экземплярные . Классовые методы в .NET называются статическими . Объявление классового метода начинается с ключевого слова class. Экземплярные методы можно вызывать только через переменную-объект класса. Классовые же методы не связаны с конкретным экземпляром класса; их следует вызывать в виде:

имя класса . имя метода ( параметры )

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

Например:

type

Rectangle = class

...

class procedureMove( varr: Rectangle; dx,dy: integer);

begin

r.x1 += dx; r.x2 += dx;

r.y1 += dy; r.y2 += dy;

end;

end;

...

varr := newRectangle(10,10,100,100);

Rectangle.Move(r,5,5);

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

Нередко создаются классы, целиком состоящие из классовых методов. Таков, например, класс System.Math, содержащий определения математических подпрограмм.

Инициализаторы полей

При создании объекта его поля инициализируются автоматически нулевыми значениями если они не инициализированы явно. Их инициализация может проводиться как в конструкторе, так и непосредственно при описании. Инициализация поля при описании приводит к тому, что код инициализации вставляется в начало ВСЕХ конструкторов.

Например:

type

A = class

private

x: integer := 1;

y: integer;

l := new List;

public

constructorCreate(xx,yy: integer);

begin

x := xx;

y := yy;

end;

constructorCreate;

begin

end;

end;

В данном примере код x:=1; l := new List вставляется в начало каждого конструктора.

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

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

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

Например:

type

Person = class

private

nm: string;

ag: integer;

public

constructorCreate(name: string; age: integer);

end;

...

constructorPerson.Create(name: string; age: integer);

begin

nm := name;

ag := age;

end;

В PascalABC.NETконструктор всегда должен иметь имя Create. При описании конструктора внутри класса можно опускать его имя:

type

Person = class

constructor(name: string; age: integer);

begin

nm := name;

ag := age;

end;

end;

В силу особенностей реализации вызовов конструкторов в .NET в PascalABC.NETвсегда создается конструктор без параметров (независимо от того, определен ли другой конструктор). Этот конструктор инициализирует все поля нулевыми значениями (строковые поля - пустыми строками, логические - значением False).

Для вызова конструктора можно использовать два способа.

1 способ.В стиле Object Pascal.

Для вызова конструктора следует указать имя класса, за которым следует точка-разделитель, имя конструктора и список параметров. Например:

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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