Дополнительно: сравнение Java и C#.
Сходства
1Исходный текст программы компилируется в промежуточный код, не зависящий от языка и платформы; этот код в дальнейшем выполняется в специальной управляемой среде.
2Автоматический сбор мусора (Garbage Collection).
3Программы в Java и C# состоят из классов (class) – основной структурной единицы приложения.
4Механизм области видимости имен. В C# – пространство видимости имен, в Java – использование пакетов (packages).
5Рабочий язык – С.
6Запрет на использование указателей. В C# допускается ограниченное использование указателей в блоках кода, помечаемых как "ненадежные" (unsafe).
7Отсутствие заголовочных файлов. Весь код помещается в пакеты (packages) и сборки (assemblies).
8Объекты создаются с помощью ключевого слова new, выделение памяти производится из "кучи" (heap), находящейся в распоряжении среды выполнения.
9Многопоточность поддерживается путем блокирования объектов
10И в Java, и C# разрешается наследование только от одного класса; вместе с тем, можно подключать к классу более одного интерфейса
11Отсутствие глобальных функций и констант, все элементы должны принадлежать классам.
12Не применяются операторы ->, ::. Во всех случаях используется оператор ".".
13Любая величина должна быть проинициализирована до того, как будет использована.
14Нельзя использовать целые числа (integers) для управления операторами if.
15Блоки try могут иметь заключительное предложение finally.
Отличия
1В Java главная точка входа в приложение есть public static void main (String [] args). Этот синтаксис является неизменным. В C# метод Main ( ) мб переопределен.
2В C# имеется оператор goto (gперехода на метку), в языке Java – нет.
3В C# можно определять структуры и перечисления; в Java эта возможность исключена.
4Имеются различия в реализации оператора switch.
10.39 Описание статической модели на языке UML
Статические модели обеспечивают представление структуры систем в терминах базовых строительных блоков и отношений между ними. «Статичность» этих моделей состоит в том, что здесь не показывается динамика изменений системы во времени. Эти модели несут в себе структурные описания и описания операций, реализующих заданное поведение системы. Основным средством для представления статических моделей являются диаграммы классов. Вершины диаграмм классов нагружены классами, а дуги (ребра) — отношениями между ними.
Вершина в диаграмме классов — класс. Имя класса указывается всегда, свойства и операции — выборочно. Предусмотрено задание области действия свойства (операции). Если свойство (операция) подчеркивается, его областью действия является класс, в противном случае областью действия является экземпляр.
Свойства
Общий синтаксис представления свойства имеет вид
Видимость Имя [Множественность]: Тип = НачальнЗначение {Характеристики}
Уровни видимости:
public(по умолч) protected private | Любой клиент класса может использовать свойство (операцию), символ + Любой наследник класса может использовать свойство (операцию), символ # Свойство (операция) может использоваться только самим классом, символ - |
Характеристики свойств:
changeable addOnly frozen | Нет ограничений на модификацию значения свойства Для свойств с множественностью, большей единицы; дополнительные значения могут быть добавлены, но после создания значение не может удаляться или изменяться После инициализации объекта значение свойства не изменяется |
Операции
Общий синтаксис представления операции имеет вид
Видимость Имя (Список Параметров): ВозвращаемыйТип {Характеристики}
Характеристики операций:
leaf isQuery sequential guarded concurrent | Конечная операция, операция не может быть полиморфной и не может переопределяться (в цепочке наследования) Выполнение операции не изменяет состояния объекта В каждый момент времени в объект поступает только один вызов операций. Как следствие, в каждый момент времени выполняется только одна операция объекта. Допускается одновременное поступление в объект нескольких вызовов, но в каждый момент времени обрабатывается только один вызов охраняемой операции. В объект поступает несколько потоков вызовов операций (из параллельных потоков управления). Разрешается параллельное (и множественное) выполнение операции. |
Множественность
Иногда бывает необходимо ограничить количество экземпляров класса:
- задать ноль экземпляров (в этом случае класс превращается в утилиту, которая предлагает свои свойства и операции);
- задать один экземпляр (класс-singleton);
- задать конкретное количество экземпляров;
- не ограничивать количество экземпляров (по умолчанию).
Количество экземпляров класса называется его множественностью. Выражение множественности записывается в правом верхнем углу значка класса. Множественность применима не только к классам, но и к свойствам. Множественность свойства задается выражением в квадратных скобках, записанным после его имени.
Дата добавления: 2017-09-01; просмотров: 1417;