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

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

Описание языка PascalABC.NET: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Описание языка PascalABC.NET»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Описание языка PascalABC.NET», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

usesGraphABC;

const

n = 8;

sz = 50;

typeChessBoard = class

private

a: array[1..n,1..n] ofboolean;

proceduresetCell(x,y: integer; value: boolean);

begin

ifvalue then

Brush.Color := clWhite

elseBrush.Color := clBlack;

Fillrect((x-1)*sz+1,(y-1)*sz+1,x*sz,y*sz);

a[x,y] := value;

end;

functiongetCell(x,y: integer): boolean;

begin

Result := a[x,y];

end;

public

propertyCells[x,y: integer]: boolean readgetCell writesetCell; default;

end;

varc: ChessBoard := new ChessBoard;

begin

var x,y: integer;

forx:=1 ton do

fory:=1 ton do

c[x,y] := Odd(x+y);

end.

Наследование

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

При описании класса его базовый класс указывается в скобках после слова class.

Например:

type

BaseClass = class

procedurep;

procedureq(r: real);

end;

MyClass = class(BaseClass)

procedurep;

procedurer(i: integer);

end;

В данном примере процедура p переопределяется, а процедура r добавляется в класс MyClass.

Если не указать имя базового класса, то считается, что класс наследуется от класса Object - предка всех классов. Например, BaseClass наследуется от Object.

Переопределение методов при наследовании рассматривается здесь.

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

Переопределение методов

Метод базового класса может быть переопределен (замещен) в подклассах. Если при этом требуется вызвать метод базового класса, то используется служебное слово inherited(англ.- унаследованный). Например:

type

Person = class

privat e

name: string;

age: integer;

public

constructorCreate(nm: string; ag: integer);

begin

name := nm;

age := ag;

end;

procedurePrint;

begin

writeln('Имя: ',name,' Возраст: ',age);

end;

end;

Student = class(Person)

private

course, group: integer;

public

constructorCreate(nm: string; ag,c,gr: integer);

begin

inheritedCreate(nm,ag);

course := c;

group := gr;

end;

procedurePrint;

begin

inheritedPrint;

writeln('Курс: ',course,' Группа: ',group);

end;

end;

Здесь метод Print производного класса Student вызывает вначале метод Print, унаследованный от базового класса Person, с помощью конструкции inheritedPrint. Аналогично конструктор Create класса Student вызывает вначале конструктор Create базового класса Person, также используя служебное слово inherited.

Правила наследования конструкторов рассматриваются здесь.

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

Если в методе вызывается метод базового класса с теми же параметрами, то можно использовать запись inherited, не указывая имя метода и параметры. Например, метод Student.Print можно записать таким образом:

procedurePrint;

begin

inherited;

writeln('Курс: ',course,' Группа: ',group);

end;

Наследование конструкторов

Правила наследования конструкторов - достаточно сложные. В разных языках программирования приняты разные решения на этот счет. В частности, в Delphi Object Pascal все конструкторы наследуются. В .NET, напротив, конструкторы не наследуются. Причина такого решения - каждый класс сам должен отвечать за инициализацию своих экземпляров. Единственное исключение в .NET - если класс вовсе не определяет конструкторов, то автоматически генерируется конструктор без параметров, называемый конструктором по умолчанию.

В PascalABC.NETпринято промежуточное решение. Если класс не определяет конструкторов, то все конструкторы предка автоматически генерируются в потомке, вызывая соответствующие конструкторы предка (можно также говорить, что они наследуются). Если в классе определяются конструкторы, то конструкторы предка не генерируются. Конструктор по умолчанию, если он явно не определен, генерируется автоматически в любом случае и является protected.

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

Интервал:

Закладка:

Сделать

Похожие книги на «Описание языка PascalABC.NET»

Представляем Вашему вниманию похожие книги на «Описание языка PascalABC.NET» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Catie Disabato - The Ghost Network
Catie Disabato
Отзывы о книге «Описание языка PascalABC.NET»

Обсуждение, отзывы о книге «Описание языка PascalABC.NET» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x