Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Концепции ООП.docx
Скачиваний:
16
Добавлен:
29.03.2016
Размер:
157.73 Кб
Скачать
  1. Концепции ООП. Преимущества и недостатки ООП. Объявления классов.

Ключевой принцип ООП: всё является объектом

Объект – это набор логически связанных переменных, обладающих некоторым поведением.

Класс – способ описания объектов, имеющих одинаковые поля и методы, но различные значения.

Объявление классов:

[атрибуты]

[спецификаторы] classимя_класса [: предки]

{

[атрибуты]

[спецификаторы] тип имя_поля [= значение];

[атрибуты]

[спецификаторы] тип имя_метода(параметры)

{ тело метода }

[атрибуты] [спецификаторы] тип имя свойства

{

[спецификаторы] get{ тело }

[спецификаторы] set{ тело }

}

}

Пример:

public class Circle

{

public double x; public double y; private double r; public double R

{

get { return r; }

set { if(value >= 0) r = value;

}

public double GetLength()

{

return 2 * Math.PI * r;

}

}

ООП – набор концепций и идей, позволяющих осмысливать задачу и найти путь к решению более эффективным и понятным способом.

Принципы ООП

Преимущества:

Инкапсуляция – возможность скрыть внутреннюю составляющую объекта от пользователей.

Наследование – возможность указывать на происхождение класс, свойства и функции заимствуются новым классом.

Полиморфизм – возможность, позволяющая старому коду вызывать новый.

«Один интерфейс – множество реализаций».

Недостатки:

Документирование классов. Поскольку метод может быть переопределён, в документации должно быть указано, что он делает и в каком он месте вызывается.

Инкапсуляцией не следует злоупотреблять. Чем больше логики и данных открыто, тем сложнее его расширять.

  1. Инкапсуляция. Поля и свойства. Спецификаторы доступа.

Инкапсуляция.

Инкапсуляция (encapsulation) - это механизм, который объединяет данные и код, манипулирующий зтими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. При этом пользователю предоставляется только спецификация (интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс. Реализуется с помощью ключевого слова: public. Пользователь не может использовать закрытые данные и методы. Реализуется с помощью ключевых слов: private, protected, internal.

Поле – переменная, она хранит значение .Как правило, поля используются только для переменных, имеющих доступность private или protected

Свойство – пара методов (accessor, mutator), предназначенных для правильной инкапсуляции поля. accessor (get) не должен выполнять длительных вычислений, mutator (set) должен проверять значения, передавать уведомления. Значение в set передается через служебное слово value

Роль: сохранить класс в корректном состоянии

public int R{get;set;}

=

private int r;

public int R

{

get {return r;}

set { if(value>0)

{

r=value;

}

}

}

Поле – переменная, хранит значение.

public int s{get;set;}

Свойство – пара методов: get и set.

Позволяет проверить (set) и получить (get).

Спецификаторы доступа

Класс

– internal (по умолчанию)

– public

– private (внутри другого класса)

– static

– sealed (наследование) – abstract (полиморфизм)

Методы и поля

– private (по умолчанию)

– public

– internal

– static

– protected (наследование)

– abstract (только для методов, полиморфизм)

– new (только для методов, наследование)

– override (только для методов, полиморфизм)

3. Ооп. Методы, перегрузка, переопределение.

ООП – набор концепций и идей, позволяющих осмысливать задачу и найти путь к решению более эффективным и понятным способом.

Принципы ООП

Преимущества:

Инкапсуляция – возможность скрыть внутреннюю составляющую объекта от пользователей.

Наследование – возможность указывать на происхождение класс, свойства и функции заимствуются новым классом.

Полиморфизм – возможность, позволяющая старому коду вызывать новый.

«Один интерфейс – множество реализаций».

Недостатки:

Документирование классов. Поскольку метод может быть переопределён, в документации должно быть указано, что он делает и в каком он месте вызывается.

Инкапсуляцией не следует злоупотреблять. Чем больше логики и данных открыто, тем сложнее его расширять.

Метод – это функциональный элемент класса, который реализует вычисления, или другие действия, выполняемые классом, или его экземпляром (объектом). Метод представляет собой

законченный фрагмент кода, к которому можно обратиться по имени. Он описывается один

раз, а вызываться может многократно.

Перегрузка методов – совместное использование одного имени двумя и более методами одного класса при условии, что их параметры объявляются по-разному.

(тип или число параметров должны быть разными)

public void Write()

{

}

public void Write(string Name)

{

}

public void Write(string Name, string Family)

{

}

Переопределение.

Виртуальные методы/свойства : virtual

Новые реализации методов/свойств : override

class Round class Circle

{ {

public virtual string Name public virtual string Name

{ {

get {return “круг”;} get {return “окружность”;}

} }

} }

class Ring: Round class Ring: Circle

{ {

public override string Name public override string Name

{ {

get {return “кольцо”;} get {return “круг”;}

} }

} }

Перегрузка

Если два метода имеют одинаковое название, то они считаются перегруженными

Виды перегрузки

–Перегрузка в разных классах

–Перегрузка в одном классе

Переопределение методов

Переопределением называют такую перегрузку методов, когда в классах, связанных отношением наследования, существуют методы с одинаковыми именами, количеством и типом параметров

4. Ооп. Полиморфизм.

ООП – набор концепций и идей, позволяющих осмысливать задачу и найти путь к решению более эффективным и понятным способом.

Принципы ООП

Преимущества:

Инкапсуляция – возможность скрыть внутреннюю составляющую объекта от пользователей.

Наследование – возможность указывать на происхождение класс, свойства и функции заимствуются новым классом.

Полиморфизм – возможность, позволяющая старому коду вызывать новый.

«Один интерфейс – множество реализаций».

Недостатки:

Документирование классов. Поскольку метод может быть переопределён, в документации должно быть указано, что он делает и в каком он месте вызывается.

Инкапсуляцией не следует злоупотреблять. Чем больше логики и данных открыто, тем сложнее его расширять.

Определение: «один интерфейс - много методов»

Одинаковые по сути действия должны иметь одинаковые названия, то есть например если нужно совершить выключение компьютера, то и действие будет называться выключение компьютера. То же самое например и с включением

Виды полиморфизма

Статический полиморфизм

– перегрузка методов

– переопределение методов

Динамический полиморфизм

Статической называют такую разновидность полиморфизма, при которой вызываемая функция явно задается во время компиляции программы.

Перегрузка

Если два метода имеют одинаковое название, то они считаются перегруженными

Виды перегрузки

– Перегрузка в разных классах

– Перегрузка в одном классе

Переопределение методов

Переопределением называют такую перегрузку методов, когда в классах, связанных отношением наследования, существуют методы с одинаковыми именами, количеством и типом параметров Динамической называют такую разновидность полиморфизма, при которой на этапе компиляции задается группа вызываемых функций, из которых в момент исполнения программы автоматически выбирается нужная

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]