Главная » Просмотр файлов » Сравнение языков программирования (esyr)

Сравнение языков программирования (esyr) (1161143), страница 6

Файл №1161143 Сравнение языков программирования (esyr) (Сравнение языков программирования) 6 страницаСравнение языков программирования (esyr) (1161143) страница 62019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

Чтобы ближе имитировать статический класс C# можно отказаться от наследования спомощ ью ключевого слова final. Похожих свойств можно добиться используя шаблон проектирования singleton.В Java сущ ествует модификатор static для класса, но применяться он может только ко вложенным (nested) классам. Статический вложенный класс нельзясчитать статическим в том смысле, который вкладывается в это понятие в начале данного раздела и далее в разделе про Java этот смысл не подразумевается.Вложенные классы делятся на две категории — статические и нестатические. Вложенные классы, объявленные статическими называются статическимивложенными классами (static nested classes). Нестатические вложенные классы называются внутренними (inner classes).

Ко вложенному классу могут бытьприменены любые модификаторы доступа (тогда как к классу верхнего уровня — только public или package private).class OuterClass {...static class StaticNestedClass {...}class InnerClass {...}}Статический вложенный класс может использоваться без экземпляра объемлющ его класса. Он взаимодействует с членами объемлющ его класса (и любогодругого) точно так же как любой класс верхнего уровня (не вложенный). В сущ ности, он ведёт себя как класс верхнего уровня, вложенный в другой лишь с точкизрения логической группировки классов.// Создание экземпляра статического вложенного класса.OuterClass.StaticNestedClass nestedObject =new OuterClass.StaticNestedClass();Внутренний класс имеет доступ ко всем членам объемлющ его класса, даже если они объявлены с модификатором private и не может содержать статическиечлены. Экземпляр внутреннего класса можно получить только от конкретного экземпляра объемлющ его класса.

Можно сказать, что каждый из экземпляроввнутреннего класса ведёт себя как часть соответствующ его экземпляра объемлющ его класса.// Создание экземпляра внутреннего класса.open in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.com// Создание экземпляра внутреннего класса.OuterClass.InnerClass innerObject =outerObject.new InnerClass();Больше информации:http://docs.oracle.com/javase/tutorial/java/javaOO/nested.htmlhttp://stackoverflow.com/questions/3584113/java-static-classВ C#[править]В C# сущ ествует понятие статического класса. Статический класс создаётся с помощ ью ключевого слова static. Компилятор предоставляет относительно такогокласса некоторые гарантии.Может содержать только статические члены.Нельзя создать экземпляр такого класса.Неявно определяется как sealed, т.е.

наследоваться от такого класса нельзя.Не может иметь instance constructors.Может иметь статический конструктор, который выполняется перед первым обращ ением к данному классу.Не может быть унаследован ни от какого объекта, исключая Object, от которого, как и все классы, наследуется неявно.Также можно обратить внимание на тот факт, что к члену интерфейса не может быть применено ключевое слово static, равно как и к соответствующ ему членуреализующ его интерфейс класса. Напрямую к статическим классам это не относится, но означает, что реализовать интерфейс с хотя бы одним членомстатический класс не может. Вопрос о том, может ли статический класс быть реализацией интерфейса без членов остаётся в рамках данной статьи открытым,профессионалы могут добавить ответ и ссылку на него.Больше информации:Msdn: «Static Classes and Static Class Members (C# Programming Guide)» .Msdn: «Interfaces (C# Programming Guide)» .http://stackoverflow.com/questions/259026/why-doesnt-c-sharp-allow-static-methods-to-implement-an-interfaceОбъединение типов (запись с вариантами)[править]Объединение типов (или запись с вариантами) — это конструкция, объединяющ ая в один тип несколько различных структур (вариантов).

Все варианты вобъединении начинаются с одного адрес и занимают одну и ту же память.Размеченное объединение типов содержит одно выделенное поле (дискретного типа данных) — общ ее для всех вариантов. Такое поле называетсядискриминантом. Значение дискриминанта определяет, по какому варианту выделена память в переменной-экземпляре размеченного объединения.Семантика копирования[править]Проблема копирования состоит в том, что копируемый объект может содержать ссылки на другие объекты.

Проблема копирования состоит в том, что объектымогут содержать ссылки на другие объекты. При копировании таких ссылок возникает дилемма: копировать либо только ссылку, либо полностью содержимоеобъекта, на который указывает ссылка. Первый вид копирования называется поверхностным, а второй — глубоким. В общ ем случае транслятор не в состояниивыбрать нужную семантику копирования, поэтому в языках программирования, которые мы рассматриваем, принята следующ ая схема: по умолчаниюреализуется поверхностное копирование, но программисту предоставляются средства для указания глубокой семантики копирования.

В C++ этими средствамиявляются переопределение конструктора копирования и операции присваивания, в Java и C# — наследование и реализация специального интерфейса.Особенности копирования объектов в Java[править]Все массивы реализуют интерфейс Cloneable и могут копироваться. Поэтому далее рассматриваются только экземпляры классов.open in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.comДля того, чтобы разрешить копировать экземпляр класса в Java нужно сделать следующ ее:1.

Реализовать интерфейс Cloneable. Этот интерфейс не содержит методов и служит только для того, чтобы указать, что вы разрешаете копировать этотобъект.2. Переопределить метод clone класса Object со спецификатором доступа public. Заголовок метода в Object выглядит так:protected Object clone() throws CloneNotSupportedExceptionObject.clone() выбрасывает исключение CloneNotSupprotedException только в случае, если не реализован интерфейс Cloneable. Однако,переопределяющ ий метод может выбрасывать исключение CloneNotSupportedException для того, чтобы показать, что объект не может или не должен бытьскопирован.3.

По соглашению, переопределяющ ий метод должен получать копию объекта с помощ ью вызова метода clone суперкласса (конструкция super.clone()).Object.clone() возвращ ает новый объект со значениями полей, в точности равными соответствующ им значениям переданного в параметре объекта(поверхностное копирование).4. Если требуется глубокое копирование, то перед тем, как вернуть объект-копию, нужно привести его к соответствующ ему типу и заменить значениянеобходимых полей вручную созданными копиями.Больше информации:http://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.htmlhttp://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#clone%28%29http://docs.oracle.com/javase/7/docs/api/java/lang/CloneNotSupportedException.htmlИ.

Г. Головин выделяет не два (копируется / не копируется) вида копирования в Java, а четыре. ЕМНИП, добавляется вариант с перманентным выбросомисключения CloneNotSupportException для явного запрета копирования. А четвёртый не помню. TODO: описать все варианты.В общ ем случае всё это говорит о сложности проблемы копирования. Проблемы у программистов на C# — такие же.Модульность и раздельная трансляция[править]Раздельная трансляция[править]C, C++Раздельная трансляция означает то, что программа разбивается на части — физические модули или единицы компиляции.

Каждая единица может или обязанатранслироваться отдельно от остальных. Независимая раздельная трансляция означает то, что транслятор не обладает информацией об уже оттранслированныхединицах и поэтому не может проверить корректность межмодульных связей.Модульность[править]ОБЕРОН И ОБЕРОН-2[править]Модуль - совокупность объявлений констант, типов, переменных и процедур вместе с последовательностью операторов, предназначенных для присваиванияначальных значений переменным.

Модуль представляет собой текст, который является единицей компиляции.Модуль=MODULE идент ";" [СписокИмпорта] ПоследовательностьОбъявлений[BEGIN ПоследовательностьОператоров] END идент ".".СписокИмпорта=IMPORT Импорт {"," Импорт} ";".Импорт=[идент ":="] идент.Список импорта определяет имена импортируемых модулей. Последовательность операторов после символа BEGIN выполняется, когда модуль добавляется ксистеме (загружается). Это происходит после загрузки импортируемых модулей. Отсюда следует, тот циклический импорт модулей запрещ ен. Отдельные (неopen in browser PRO versionAre you a developer? Try out the HTML to PDF APIpdfcrowd.comимеющ ие параметров и экспортированные) процедуры могут быть активированы из системы.

Характеристики

Тип файла
PDF-файл
Размер
597,43 Kb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Сравнение языков программирования
Сравнение_языков_программирования_files
ClickTracking.js
CollapsibleTabs.js
ajax.js
centralnotice.js
combined.css
commonPrint.css
flaggedrevs.css
flaggedrevs.js
index.css
index.php
index_002.css
index_003.css
index_004.css
index_005.css
injection_graph_func.js
injection_nh_graph.css
jquery-ui-1.css
js2.js
main.css
main_002.css
mwsuggest.js
plugins.js
shared.css
skypeplugin_dropdownmenu.css
wikibits.js
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6531
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее