Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория ООП .doc
Скачиваний:
9
Добавлен:
26.09.2019
Размер:
199.17 Кб
Скачать

История развития объектного подхода. Первым компьютерным решением, воплотившем в себе объектный подход, стал программно – аппаратный графический планшет, разработанный в 1963 году. Его разработал Айван Сазерленд. В качестве понятия класса он использовал определение «мастер», разделяя описание и реально существующий на экране объект. Эти объекты с помощью планшета могли быть нарисованы и перемещены в любую точку экрана. Основоположниками объектного подхода программирования считаются норвежцы Оле – Йохан Дал и Кристиан Нигорт – авторы языка программирования Симула. В 1965 г авторам Симулы пришла в голову фундаментальная идея – объединить в одно целое данные с процедурами их обрабатывающими и на основе этой идеи родилось понятие класса. Авторы так же придумали термин «класс» и «объект», тогда же возникла технологии функции и наследования. Возникает еще 2 языка программирования на основе объектного подхода – Lisp и Loga. Эти языки появились благодаря Алону Кею. Он придумал новую концепцию разработки в 1966г, в соответствии с которой набор последовательно выполняющихся инструкций мог быть без ущерба заменен коллекцией объектов, общающихся друг с другом путем асинхронного обмена сообщений. В 1972 г Кей воплотил свои идеи в новом объектном языке – Small Talk.

Именно здесь впервые появился термин ООП. Заложенные в Small Talk идеи и по сей день остались не превзойденными ни в каких других языках. В 1974 г Марган Минский, основоположник теории искусственного интеллекта, предложил идею Фрейма, отделившего описание класса от его конкретного представления. Эта идея быстро завоевала популярность в языках искусственного интеллекта, а Фрейм стал прямым предшественником современного понятия класса в языках C++, C#, Delphi.

Эффективность объектного подхода оказалась столь высока, что в 1979 г 11 компаний основали группу OMG, которая была призвана формировать стандарты на объектное –программирование. Эта группа первым делом приступила к выработке единого стандарта модели CORBA. Параллельно с CORBA разрабатывались другие объекты, такие как COM DCOM, ActiveX, ориентированные на прикладные, пользовательские элементы и основанные на элементах OLE. В 1994 г появился новый модифицированный язык моделирования UML, на основе существующих методологий визуального моделирования. В 2000 г появляется новая платформа .Net и язык программирования C#. Эта платформа себя очень хорошо зарекомендовала, и в 2005 г появляется .Net 2.0.

Архитектура платформы .Net. Платформа представляет собой надстройку над низкоуровневыми ОС и при этом не зависит не от типа ОС, ни от марки процессора. Ф-ции ядра в ней разделены и выполнены в модульном и расширяемом виде. Платформа .Net базируется на объектном представлении ресурсов и функциональных возможностях. В платформу включена библиотека на несколько тысяч классов. Ядро платформы .Net складывается из нескольких модулей:

  1. .Net Framework – это платформа, ориентированная на быстрое визуальное создание приложений.

  2. CLR – единая оболочка поддержки выполнения программ

  3. ADO.Net – технология, предназначенная для работы с БД

  4. ASP.Net – это сис- ма для быстрого создания web – приложений.

  5. Web – службы, реализующие работу в сети

  6. Др. встроенные технологии, обеспечивающие безопасность.

Оболочка .Net Framework

Оболочка ориентирована прежде всего на нужды программиста, она поддерживает объектно – ориентированную оболочку, в нее включено несколько тысяч стандартных классов. Программисты могут создавать собственные классы как в прикладных программах. Так и на системном уровне, расширяя стандартные возможности. Библиотеки классов .Net Framework охватывают множество областей, связанных с функционированием ОС, представляя программисту доступ к следующим возможностям:

1) работа в сети

2) обращение к БД

3) организация безопасного функционирования

4) система ввода/вывода

5) готовые элементы пользовательского интерфейса, с помощью которых удается создавать компактные прикладные приложения

6) стандартные возможности, востребованные разработчиками

7) поддержка интерфейса программирования Win32

Свойства качественной программы.

  1. Понимаемость(информативность, осмысляемость, структурированность, сложность, модульность) – это свойство программы быть хорошо читаемой

  2. Надежность (корректность, устойчивость) – это свойство программы выполнять поставленную задачу за определенное число шагов.

  3. Сопровождаемость(сложность, модульность, изменяемость, тестируемость, переносимость, распараллеливаемость)это свойство программы по обеспечению данного программного продукта технической поддержкой и обновлением

  4. Эффективность (распараллеливаемость, оптимизированность) – это свойство программы, заключающееся в многократном решении однотипных задач.

Свойства качества декомпозиции проекта. 1) вопрос декомпозиции, т. е. на какие компоненты, модули, функции. Классы нужно разбить программу, но при этом учитывать, что с ростом числа компонентов сложность программы возрастает. Поскольку увеличивается число связей м/у компонентами.2) связана с организацией взаимодействия м/у компонентами. Взаимодействие упрощается, если каждый компонент рассматривать как некий черный ящик, внутреннее устройство которого неизвестно, но известны выполняемые им функции, а так же входы и выходы. Т. О. для оценки качества программного продукта нужно учитывать 2 показателя: 1) сцепление внутри компонента – это показатель, характеризующий степень взаимосвязи отдельных его частей. 2) связанность м/у компонентами – это показатель, описывающий интерфейс м/у компонентом – клиентом и компонентом – сервером. Общее число входов и выходов есть мера связанности.

Понятие класса в ООП. Класс – это тип, определяемый программистом, в котором определены структуры данных и функции их обработки. Класс содержит константы, переменные, называемые поля класса, а так же выполняемые над ними операции и функции, называемые методами.

[модификаторы] class <имя_класса>

{

<закрытые функции и переменные класса>

<открытые функции и переменные класса>

};

Модификатор

Пояснение

public

Класс или его член доступен из любой точки программы

internal

Класс (член) доступен в сборке, в которой он определен

pritected

Класс (член) доступен потомкам и только им

private

Члены класса доступны только методам этого же класса

abstract

Абстрактный класс; должен обязательно перекрываться в

потомках

sealed

Класс не может иметь наследников

static

Определяет статических член класса. Для доступа к

статическому члену можно не создавать объект класса —

статические члены принадлежат не отдельному объекту,

но классу как таковому. Если таким членом является поле

или свойство, оно имеет одинаковое значение для всех

экземпляров этого класса

Пример №1

class Avto

{

private static string marka1= "BMW";

private static string color1= "black";

private static int speed1=120;

public static string marka = marka1;

public static string color= color1;

public static int speed=speed1;

}

class Executer

{

static void Main(string[] args)

{

Console.WriteLine(Avto.marka); // Вывод на экран значения переменной marka

Console.WriteLine(Avto.color); // Вывод на экран значения переменной color

Console.WriteLine(Avto.speed);

Console.ReadLine();// Ожидание нажатия клавиши Enter

}

Пример №2

using System;

class MyClass {

private int alpha; // Явно задан спецификатор private,