Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Концепции ООП.docx
Скачиваний:
33
Добавлен:
29.03.2016
Размер:
151.79 Кб
Скачать
  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 “круг”;}

} }

} }

Перегрузка

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

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

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

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

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

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