Лекция №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.