шпоргалка исис. Билет 1. Платформа Microsoft. Net Framework 0
Скачать 151.37 Kb.
|
Билет №24. Переменные базового класса и производного класса. Виртуальные методы. Переменные базового класса и производного класса С# является языком со строгой типизацией, в нем требуется строгое соблюдение совместимости типов с учетом стандартных преобразований типов. Из чего следует, что переменная одного типа обычно не может ссылаться на объект другого ссылочного типа. За одним небольшим исключением – ссылочная переменная базового класса может ссылаться на объект любого производного класса. class DemoPoint { public int x; public int y; public void Show() { Console.WriteLine("точка на плоскости: ({0}, {1})",x, y); } public DemoPoint (int x, int y) { this.x=x; this.y=y; } } class DemoShape : DemoPoint { public int z; new public void Show() { Console.WriteLine("точка в пространстве: ({0}, {1}, {2})", x, y, z); } public DemoShape(int x, int y, int z):base(x, y) { this.z=z; } } class Program { static void Main() { DemoPoint point1 = new DemoPoint(0,1); Console.WriteLine("({0}, {1})",point1.x,point1.y); DemoShape pointShape = new DemoShape(2,3,4); Console.WriteLine("({0}, {1}, {2})",pointShape.x, pointShape.y, pointShape.z); DemoPoint point2=pointShape; //допустимая операция //ошибка - не соответствие типов указателей //pointShape=point1; Console.WriteLine("({0}, {1})", point2.x, point2.y); //ошибка, т.к. в классе DemoPoint нет поля z //Console.WriteLine("({0}, {1}, {2})", point2.x, point2.y, point2.z); } } Ошибка возникнет и при попытке через объект point2 обратиться к методу Show. Например, point2.Show(). В этом случае компилятор не сможет определить, какой метод Show вызвать – для базового или для производного класса. Для решения данной проблемы можно воспользоваться таким понятием как полиморфизм, который основывается на механизме виртуальных методов. Виртуальные методы Виртуальный метод – это метод, который объявлен в базовом классе с использованием ключевого слова virtual, и затем переопределен в производном классе с помощью ключевого слова override. При этом если реализована многоуровневая иерархия классов, то каждый производный класс может иметь свою собственную версию виртуального метода. Этот факт особенно полезен в случае, когда доступ к объекту производного класса осуществляется через ссылочную переменную базового класса. В этой ситуации С# сам выбирает какую версию виртуального метода нужно вызвать. Этот выбор производится по типу объекта, на которую ссылается данная ссылка. Таким образом, благодаря полиморфизму через ссылочную переменную возможно обращаться к объектам разного типа, а также с помощью одного и того же имени выполнять различные действия. Билет № 25. Абстрактные методы и классы Иногда полезно создать базовый класс, определяющий только своего рода "пустой бланк", который унаследуют все производные классы, причем каждый из них заполнит этот "бланк" собственной информацией. Такой класс определяет структуру методов, которые производные классы должны реализовать, но сам при этом не обеспечивает реализации этих методов. Подобная ситуация может возникнуть, когда базовый класс попросту не в состоянии реализовать метод. В данной ситуации разрабатываются абстрактные методы илицелые абстрактные классы. Абстрактный метод создается с помощью модификатора abstract. Он не имеет тела и, следовательно, не реализуется базовым классом, а производные классы должны его обязательно переопределить. Абстрактный метод автоматически является виртуальным, однако использовать спецификатор virtual не нужно. Более того, если вы попытаетесь использовать два спецификатора одновременно, abstract и virtual, то компилятор выдаст сообщение об ошибке. Если класс содержит один или несколько абстрактных классов, то его также нужно объявить как абстрактный, используя спецификатор abstract перед class. Поскольку абстрактный класс полностью не реализован, то невозможно создать экземпляр класса с помощью операции new. Например, если класс Demo определен как абстрактный, то попытка создать экземпляр класса Demo повлечет ошибку: Demo a = new Demo(); Однако, можно создать массив ссылок, используя этот же абстрактный класс: Demo [] Ob=new Demo[5]; Если производный класс наследует абстрактный, то он должен полностью переопределить все абстрактные методы базового класса или также быть объявлен как абстрактный. Таким образом, спецификатор abstract наследуется до тех пор, пока в производном классе не будут реализованы все абстрактные методы. Билет №27. Стандартные интерфейсы .Net. Стандартные интерфейсы .Net В библиотеке классов .Net определено множество стандартных интерфейсов, задающих желаемую функциональность объектов. Например, интерфейс IComparable задает метод сравнения объектов по принципу больше и меньше, что позволяет переопределить соответствующие операции в рамках класса, наследующего интерфейс IComparable. Реализация интерфейсов IEnumerable и IEnumerator дает возможность просматривать содержимое объекта с помощью оператора foreach. Можно создавать собственные классы, реализующие стандартные интерфейсы, что позволит использовать объекты этих классов стандартными способами. Более подробно рассмотрим стандартный интерфейс IComparable. Интерфейс IComparable определен в пространстве имен System и содержит единственный метод CompareTo, возвращающий результат сравнения двух объектов – текущего и переданного ему в качестве параметра: interface IComparable { int CompareTo(object obj); } Реализация данного метода должна возвращать:
Используя собственную реализацию метода CompareTo можно перегрузить операции отношения. Напомним, что операции отношения должны перегружаться парами: < и >, <= и >=, == и !=. Билет №28. Структуры. Структуры Классы, как вы уже знаете, являются ссылочными данными. Это означает, что к экземплярам классов можно обратиться только через ссылку. В С# реализован тип данных, аналогичный классу, но который в отличие от классов является размерным типом. Таким типом является структура. Так как структура является размерным типом, то экземпляр структуры хранит значение своих элементов, а не ссылки на них, и располагается в стеке данных, а не в куче. В связи этим фактом структура не может участвовать в иерархии наследования, а может только реализовывать интерфейсы. Кроме того, структуре запрещено:
Синтаксис структуры: [атрибуты][спецификаторы] struct имя_структуры [: интерфейсы] { тело_структуры } Спецификаторы структуры имеют такой же смысл, как и для класса. Однако из спецификаторов доступа допускается использовать только public, internal и для вложенных структур еще и private. Кроме того, структуры не могут быть абстрактными, поскольку по умолчанию они бесплодны. Интерфейсы, реализуемые структурой, перечисляются через запятую. Тело структуры может содержать: константы, поля, конструкторы, методы, свойства, индексаторы, операторные методы, вложенные типы и события. При описании структуры задавать значение по умолчанию можно только для статических полей. Остальным полям с помощью конструктора по умолчанию будут присвоены нули для полей размерных типов и null для полей ссылочных типов. Параметр this интерпретируется как значение, поэтому его можно использовать для ссылок, но не для присваивания. Так как структуры не могут участвовать в иерархии, то для ее членов недопустимо использовать спецификаторы protected и protected internal. Методы структур не могут быть абстрактными и виртуальными. А переопределяться могут только те методы, которые унаследованы от базового класса object. Экземпляр структуры, как и экземпляр класса, создаются с помощью оператора new, но это не обязательно. Если оператор new не используется, то структура все равно создается, но не инициализируется. Если при объявлении структуры не был вызван конструктор, то поля нужно инициализировать вручную: Так как структуры являются размерными типами, то присваивание одной структуры другой создает копию экземпляра структуры. Этот факт является важным отличием структуры от класса. Билет №29. Классификация ИС. Информационная система (ИС) в целом - автоматизированная система, предназначенная для организации, хранения, пополнения, поддержки и представления пользователям информации в соответствии с их запросами. Классификация по архитектуре По степени распределённости:
Распределённые ИС разделяют на:
Клиент-серверные ИС разделяют на:
Классификация по степени автоматизации
Классификация по охвату задач (масштабности)
Классификация по характеру обработки данных
Классификация по сфере применения Поскольку ИС создаются для удовлетворения информационных потребностей в рамках конкретной предметной области, то каждой предметной области (сфере применения) соответствует свой тип ИС.
Билет №30. Основные стадии создания ИС. Этап обследования предприятия. Этап обработки результатов обследования. Основные стадии создания АИС
Этап обследования предприятия Обследование предприятия (может проводиться два раза, первый раз по укороченной программе с целью ознакомления с объектом и выработкой концептуального (чернового) проекта АИС; второй — полное обследование производства после заключения договора и подписания технического задания (ТЗ может быть заменено специфицированным описанием будущей компьютерной системы). Работы ведутся квалифицированным персоналом, в зависимости от количества специалистов, размеров предприятия и создаваемой системы, в среднем, могут выполняться в сроки от 6 месяцев до 1 года. Так как данный этап является длительным разработку желательно вести параллельно. На основе собранного материала можно создать пакет черновой АИС, подобрать прототип или купить макет, можно использовать готовые разработки. Часто выбирается вариант разработки комплексов задач. На данном этапе необходимо выяснить: Функциональную структурную схему предприятия, информационных объектов, к ним создать пояснительную записку, в которой будут изложены функциональные обязанности подразделений, внутренняя структура подразделений, задачи и функции, кадровый состав, описание задач пользователей и групп, информационные и временные характеристики данных, сроки выполнения той или иной задачи. Необходимо сделать перечень и собрать образцы всех необходимых документов предприятия и подразделений. Составить схему документа оборота, с описанием периодичности с указанием источника возникновения документа, маршрут документа, изменение, утверждение и исполнение. Документы желательно классифицировать по признакам (отчетный документ, плановый, финансовый и т.д.). Этап обработки результатов обследования Цель данного этапа получить комплексное представление о предприятии, объекте, получить формальное описание, уточнить перечень и количество задач и функций, выполняемых подразделениями, составить схему документа оборота, составить схему информационных связей (модель), производственных структур, служб материально-технического снабжения, складов, составить схему движения материального потока. Если предприятие состоит из отдельных финансовых объектов составить схему финансового оборота. На этом же этапе можно подготовить предварительные схемы информационных связей для ограниченного количества финансовых задач (бух. учет, движение материальных средств, планирование производства и т.д.). Подготовить материалы для технико-экономического обоснования (ТЭО) проекта. Выработать и подготовить положение по необходимым изменениям структуры объекта, по функциям подразделений, по ликвидации параллельных информационных потоков, т.е. надо подробно описать структуру организации предприятия и утвердить у руководства. К проведению данной работы привлекаются высоко квалифицированные специалисты, их можно использовать по различным направлениям или по иерархическому принципу. Главная задача систематизировать весь собранный материал и на его основании составить грубую схему АИС для исследуемого объекта. Билет №31. Формирование технического задания (ТЗ). Этап составления общей схемы (проекта ИС). Реализация системы. Формирование технического задания (ТЗ) Формирование ТЗ на систему, включает в себя описание входных и выходных форм, действующих в системе документов, краткий или полный перечень задач, перечень технических средств с техническими требованиями к ним, расчет экономической эффективности (заказчик может не потребовать расчет). Техническое задание должно состоять из следующих разделов: 1. Наименование; 2. Основание для создания; 3. Назначение и цель; 4. Требования к АИС; 5. Состав, содержание, ограничение работ по подготовке объекта к вводу АИС в действие; 6. Показатели эффективности АИС; 7. Порядок контроля и приемки АИС; 8. Источники разработки. Назначение и цель, здесь указываются основные показатели (улучшение материально-технического обеспечения, обеспечение полного выполнения договорных обязательств и т.д.). Требования — этот раздел включает следующие подразделы, требования к системе в целом, требования к видам обеспечения. Первый подраздел должен указывать перечень функциональных подсистем, задач и их основные характеристики, связь задач с подразделами или их место в системе, управление ими, их перечень и основные характеристики входных и выходных документов и информации. При необходимости можно приводить структуру создаваемой системы. Второй подраздел обычно указывает технические требования и требования к обеспечению программному, математическому, а также требования по надежности и безопасности. Обычно ТЗ включает экономическое обоснование — это экономические затраты на создание системы, направление за счет которого будет получен экономический эффект и его расчет. |