Языки программирования - концепции и принципы

По существу, нет никакого различия


По существу, нет никакого различия между функциями и константами: подобно литералу пере­числения языка Ada, константа рассматривается просто как функция без пара­метров. Язык Eiffel статически типизирован, подобно языку C++, в том смысле, что при присваиваниях и при передаче параметров типы должны соот­ветствовать друг другу, и это соответствие может быть проверено во время ком­пиляции. Однако язык не имеет таких богатых конструкций для управления со­ответствием типов, как подтипы и числовые типы (numerics) языка Ada.

    Когда объявляется класс, задается список свойств:

class Airplanes

feature                                                                              -- "public"

    New_Airplane(Airplane_Data): Integer is

Do

       ….

       end; -- New_Airplane Get_Airplane(lnteger): Airplane_Data is

       do

       ….

       end; -- Get_Airplane

feature {} --"private"

database: ARRAY[Airplane_Data];

current_airpianes: Integer;

find_empty_entry: Integer is

do

     …

end; -- find_empty_entry

end; -- class Airplanes

     Как и в языке C++, набор свойств может быть сгруппирован, и для каждой такой feature-группы может быть определена своя доступность, feature-груп­па со спецификатором, который изображает пустое множество «{}», не экс­портируется ни в какой другой класс, подобно private-спецификатору, fea­ture-группа без спецификатора экспортируется в любой другой класс в систе­ме; однако это отличается от public-спецификатора в языке C++ и от откры­той части спецификации пакета в языке Ada, потому что экспортируется толь­ко доступ для чтения. Кроме того, вы можете явно написать список классов в feature-спецификаторе; этим классам будет разрешен доступ к свойствам внутри группы, подобно «друзьям» в языке C++.

     В языке Eiffel нет реального различия между предопределенными типами и типами, определенными программистом, database — это объект класса ARRAY, который является предопределенным в библиотеке языка Eiffel.

Содержание  Назад  Вперед