Successfully reported this slideshow.
Your SlideShare is downloading. ×

принципы ооп и программирование классов в C#

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 36 Ad

принципы ооп и программирование классов в C#

Download to read offline

Описание основных принципов объектно-ориентированного программирования. приведены фрагменты кода на C#

Описание основных принципов объектно-ориентированного программирования. приведены фрагменты кода на C#

Advertisement
Advertisement

More Related Content

Viewers also liked (9)

Advertisement

Similar to принципы ооп и программирование классов в C# (20)

Recently uploaded (20)

Advertisement

принципы ооп и программирование классов в C#

  1. 1. Объектный подход к проектированию программ Установочная лекция по дисциплине «Высокоуровневые методы информатики и программирования» class Animal Кот Барсик – экземпляр класса Animal
  2. 2. Сложность программного обеспечения Декомпозиция
  3. 3. Абстрагирование Абстракция фокусируется на существенных с точки зрения наблюдателя характеристиках объекта
  4. 4. Моделирование
  5. 5. Синхронный двигатель Математическая модель двигателя
  6. 6. Как строить абстрактный объект? В окружающем нас мире можно выделить различные группы вещей. Назовем их классами.
  7. 7. class Animal { } Класс Animal Animal Barsik; Kind of animal = "Cat" ("Кот"). Height = 50 cm (большой котяра!). Length = 110 cm (это рысь скорее, а не домашняя кошка!). Number of legs = 4. Color = "Black" (черный). Has tail = true (истина). Is mammal = true (истина).
  8. 8. Классы и объекты (экземпляры) класса class Animal { string kindOfAnimal; string name; int numberOfLegs; int height; int length; string color; bool hasTail; bool isMammal; bool spellingCorrect; } Animal Barsik; Barsik = new Animal(); Barsik.kindOfAnimal = "Cat"; Barsik.name = "Кот Барсик"; Barsik.numberOfLegs = 4; Barsik.height = 50; Barsik.length = 110; Barsik.color = "Black"; Barsik.hasTail = true; Barsik.isMammal = true;
  9. 9. [ атрибуты ] [ спецификаторы ] class имя_класса [ : предки ] тело_класса  Тело класса — список описаний его элементов, заключенный в фигурные  Атрибуты задают дополнительную информацию о классе.  Спецификаторы определяют свойства класса, а также доступность класса ©Павловская Т.А. (СПбГУ ИТМО) Описание класса  Имя класса задается по общим правилам. скобки. для других элементов программы. 9 Простейший пример описания класса: class Demo {} // пустой класс
  10. 10. Доступ class Animal { public string kindOfAnimal; public string name; public int numberOfLegs; public int height; public int length; public string color; bool hasTail; protected bool isMammal; private bool spellingCorrect; } Ключ к hasTail не указан???
  11. 11. Методы А теперь, используя этот МЕТОД, сложи 2 числа 5 и 3 Сложение двух чисел
  12. 12. void Say() { Console.WriteLine(“Myav"); } … Animal Barsik=new Animal (); Barsik.Say()
  13. 13. .Net Содержит огромную библиотеку классов, сгруппированных по пространствам имен
  14. 14. ©Павловская Т.А. (СПбГУ ИТМО) Пример класса class Monster { public Monster() // конструктор { 14 this.name = "Noname"; this.health = 100; this.ammo = 100; } public Monster( string name ) : this() { this.name = name; } public Monster( int health, int ammo, string name ) { this.name = name; this.health = health; this.ammo = ammo; } public int GetName() // метод { return name; } public int GetAmmo() // метод { return ammo;} public int Health { // свойство get { return health; } set { if (value > 0) health = value; else health = 0; } } public void Passport() // метод { Console.WriteLine( "Monster {0} t health = {1} ammo = {2}", name, health, ammo ); } public override string ToString(){ string buf = string.Format( "Monster {0} t health = {1} ammo = {2}", name, health, ammo); return buf; } string name; // поле int health, ammo; // поле }
  15. 15. НАСЛЕДОВАНИЕ
  16. 16.  ООП позволяет писать гибкие, расширяемые и читабельные  Во многом это обеспечивается благодаря полиморфизму, под которым понимается возможность во время выполнения программы с помощью одного и того же имени выполнять разные действия или обращаться к объектам разного типа.  Чаще всего понятие полиморфизма связывают с механизмом ©Павловская Т.А. (СПбГУ ИТМО) Полиморфизм программы. виртуальных методов. 16 Метод Move (double s, double v)
  17. 17.  использование при программировании понятий, близких к  возможность успешно управлять большими объемами исходного кода благодаря инкапсуляции, то есть скрытию деталей реализации объектов и упрощению структуры программы;  возможность многократного использования кода за счет  сравнительно простая возможность модификации программ;  возможность создания и использования библиотек объектов. ©Павловская Т.А. (СПбГУ ИТМО) Достоинства ООП предметной области; наследования; 17
  18. 18.  некоторое снижение быстродействия программы, связанное с ©Павловская Т.А. (СПбГУ ИТМО) Недостатки ООП 18 использованием виртуальных методов;  идеи ООП не просты для понимания и в особенности для практического использования;  для эффективного использования существующих объектно- ориентированных систем требуется большой объем первоначальных знаний;  неграмотное применение ООП может привести к значительному ухудшению характеристик разрабатываемой программы.
  19. 19. Пример описания классов в С# Общее понятие. Поля, методы, ключи доступа. Конструкторы. 19 Болгарина Е.В., РГППУ, 2010
  20. 20. Описание класса class <имя>{ [ private ] <описание скрытых элементов> public <описание доступных элементов> }; 20 Болгарина Е.В., РГППУ, 2010
  21. 21. Пример 1. Опишем класс Персона. 1.1. Полями данного класса будут Имя, Возраст, Зарплата. 1.2. Объявим метод вывода на экран информации об объекте. 21 Болгарина Е.В., РГППУ, 2010
  22. 22. Создадим 2 объекта (экземпляры класса – Рабочий и Начальник). 22 Болгарина Е.В., РГППУ, 2010
  23. 23. В итоге должно получиться следующее: Самостоятельно: Добавьте строки, задающие значения полям объекта boss. Результат работы программы должен быть примерно таким: 23 Болгарина Е.В., РГППУ, 2010
  24. 24. Ключи доступа. Изменим ключ доступа к полям с Public на Private 24 Болгарина Е.В., РГППУ, 2010
  25. 25. Определение метода вне класса. В примере метод Show_information определен внутри класса. Но при большом количестве методов такой способ сделает описание класса слишком громоздким. Поэтому чаще всего в описании класса ограничиваются объявлением метода, а его реализацию описывают ниже. 25 Болгарина Е.В., РГППУ, 2010
  26. 26. Конструкторы.  Для создания объектов класса с инициализацией полей.  Конструктор всегда имеет такое же имя, как и класс.  Конструктор не возвращает никаких значений.  При создании объектов программа каждый раз будет вызывать описанный конструктор.  Конструкторов может быть несколько, в зависимости от того, какие из параметров вы хотите инициализировать. 26 Болгарина Е.В., РГППУ, 2010
  27. 27. Опишем конструктор для класса Person: 27 Болгарина Е.В., РГППУ, 2010
  28. 28. Теперь создавать объекты в теле главной процедуры будем с помощью Конструктора. 28 Болгарина Е.В., РГППУ, 2010
  29. 29. Результат: 29 Болгарина Е.В., РГППУ, 2010
  30. 30. Конструкторы по умолчанию 30 Болгарина Е.В., РГППУ, 2010
  31. 31. конструктор с пустыми полями 31 Болгарина Е.В., РГППУ, 2010
  32. 32. Обращение к закрытым полям класса.  Принцип сокрытия информации (инкапсуляция) предоставляет программе минимум информации по работе с классом.  Изменение полей класса возможно только через использование методов самого класса.  Создадим открытые, т.е. доступные программе методы по управлению полями класса Person:  Метод изменения зарплаты change_salary;  Метод вывода возраста get_age; 32 Болгарина Е.В., РГППУ, 2010
  33. 33. 33 Болгарина Е.В., РГППУ, 2010
  34. 34. 34 Болгарина Е.В., РГППУ, 2010
  35. 35. 35 Болгарина Е.В., РГППУ, 2010
  36. 36. Лабораторная работа Индивидуальные задания: 1.Описать класс Aeroflot, содержащую закрытые поля: название пункта назначения рейса, номер рейса, тип самолета. Описать конструкторы без параметров и с различным числом параметров. Описать открытые методы Вывод информации, Замена номера рейса. Создать несколько объектов (не менее 3х) и продемонстрировать работу созданных методов. 2. Описать класс Price, содержащий следующие поля: название товара, название магазина, в котором продается товар, количество товара, стоимость единицы товара. Описать конструкторы без параметров и с различным числом параметров. Описать открытые методы Вывод информации, Замена стоимости товара. Создать несколько объектов (не менее 3х) и продемонстрировать работу созданных методов. Определить общую стоимость товара в определенном магазине. 36 Болгарина Е.В., РГППУ, 2010

×