Распечатать страницу

Лекция №12 - Классы и объекты в Visual Prolog 7.1

« Назад

Код роботи: 1340

Вид роботи: Лекція

Предмет: Технологія створення програмних та інтелектуальних систем (Технология создания программных и интеллектуальных систем)

Тема: №12 - Классы и объекты в Visual Prolog 7.1

Кількість сторінок: 3

Дата виконання: 2016

Мова написання: російська

Ціна: 100 грн

1. Факты объектов в Visual Prolog 7.1.

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

- Создайте новый консольный проект:

-- Project Name: classexample

-- UI Strategy: console

- Build/Build приложение.

- Создайте новый класс: account. Не убирайте галочку Creates Objects.

- Измените файл account.i как показано:

% Файл account.

interface account

open core

predicates

ssN:(string SocialSecurity) procedure (o).

setSocialSecurity:(string SSN) procedure(i).

deposit:(real).

end interface account

Класс account создаст новый объект account, когда вы вызовете метод:

A=account::new().

Вы можете посылать сообщения в этот объект. Например, вы можете установить номер Social-Security клиента: A:setSocialSecurity("AA345").

Впоследствии, вы можете извлечь этот самый Social Security.

A:ssN(SocialSecurity),

И ssN/1 и setSocialSecurity/1 должны быть объявлены в интерфейсе, который находится в файле account банковскому счёту [собственно account – прим. пер.] требуются и другие методы, кроме ssN/1 и setSocialSecurity/1. Например, вам могут понадобиться методы для депозитов, для паролей, и т.д. Я оставлю создание этих методов вашему воображению. Интересным дополнением могли бы быть методы криптографии.

- Измените account.pro как показано ниже.

% Файл account.pro

implement account

open core

facts – customer

funds:real := 3.0.

personalData:(string Name,

string SocialSecurity) single.

Clauses

classInfo("account", "1.0").

personalData("", "").

ssN(SS) :- personalData(_, SS).

setSocialSecurity(SSN) :- personalData(N, _),

assert(personalData( N, SSN)).

deposit(Value) :- funds := funds+Value.

end implement account

- Измените run/0 в файле classexample.pro, для того, чтобы протестировать новый класс.

run():- console::init(),

A= account::new(),

A:setSocialSecurity("AA345"),

A:ssN(SocialSecurity),

stdio::write(SocialSecurity), stdio::nl.