Может кто-нибудь, пожалуйста, объясните мне их (например, если это возможно)?
Ответ 1
У вас будет много проблем с написанием Java, особенно многопоточного кода, если вы не можете понять эти простые идеи:
Предварительные условия - это вещи, которые должны быть истинными до вызова метода. Метод говорит клиентам "это то, что я ожидаю от вас".
Пост-условия - это то, что должно быть истинным после завершения метода. Метод говорит клиентам "это то, что я обещаю сделать для вас".
Инварианты - это вещи, которые всегда верны и не изменятся. Метод говорит клиентам: "Если это было правдой, прежде чем вы позвонили мне, я обещаю, что все будет так, когда я закончу".
Все они являются частью идеи, называемой "программирование по контракту". Он был изобретен парнем по имени C.A.R. Хора. Бертран Мейер построил объектно-ориентированный язык под названием Eiffel вокруг него. Никто его не использует, но из-за этого у него был день на солнце.
Эйфель не очень популярен. Есть более четырех миллионов вопросов по SO, поскольку я пишу это, но только 32 из них отмечены "eiffel".
Обновление: с 29 июня по 2016 год на SO было 11 966 392 вопроса. Только 92 из них были отмечены "Эйфелем". Процент вопросов Эйфеля остается примерно постоянным на уровне ~ 0,00077%.
Я стою исправленным - спасибо, flamingpenguin. Я обновил свой ответ.