Программирование по контракту — различия между версиями
Sergej (обсуждение | вклад) (→Пример) |
Sergej (обсуждение | вклад) (→Пример) |
||
Строка 21: | Строка 21: | ||
intMINUTES; | intMINUTES; | ||
intSECONDS; | intSECONDS; | ||
− | |||
getHours(); | getHours(); | ||
{ | { | ||
returnHOURS; | returnHOURS; | ||
− | } | + | } |
− | |||
getMinutes(); | getMinutes(); | ||
{ | { | ||
return MINUTES; | return MINUTES; | ||
} | } | ||
− | |||
getSeconds() | getSeconds() | ||
{ | { | ||
return SECONDS; | return SECONDS; | ||
} | } | ||
− | |||
setHours(newHOURS); | setHours(newHOURS); | ||
{ | { | ||
HOURS = newHOURS; | HOURS = newHOURS; | ||
} | } | ||
− | |||
setMinutes(newMINUTES); | setMinutes(newMINUTES); | ||
{ | { |
Версия 15:46, 15 июня 2013
Программирование по контракту обеспечивает проверку предусловий и постусловий при выполнении методов классов, пользовательских функций. Также немаловажную роль в правильности написания функций играют инварианты.
Содержание
Предусловие
Определение: |
Предусловие - должно быть выполнено до исполнения действия. |
Постусловие
Определение: |
Постусловие - должно быть выполнено после исполнения действия. |
Инвариант
Определение: |
Инвариант - определяет глобальные свойства некоторого класса, которые должны соблюдаться после его создания на протяжении всего времени жизни. |
Пример
class Time
{
intHOURS; intMINUTES; intSECONDS; getHours(); { returnHOURS; } getMinutes(); { return MINUTES; } getSeconds() { return SECONDS; } setHours(newHOURS); { HOURS = newHOURS; } setMinutes(newMINUTES); { MINUTES = newMINUTES; } setSeconds(newSECONDS) { SECONDS = newSECONDS; } }