Содержание
- 2. Понятие объекта В реальном мире каждый предмет или процесс обладает набором статических и динамических характеристик (свойствами
- 3. Абстрагирование и инкапсуляция При представлении реального объекта с помощью программного необходимо выделить в первом его существенные
- 4. Наследование Важное значение имеет возможность многократного использования кода. Для объекта можно определить наследников, корректирующих или дополняющих
- 5. Полиморфизм ООП позволяет писать гибкие, расширяемые и читабельные программы. Во многом это обеспечивается благодаря полиморфизму, под
- 6. Достоинства ООП использование при программировании понятий, близких к предметной области; возможность успешно управлять большими объемами исходного
- 7. Недостатки ООП некоторое снижение быстродействия программы, связанное с использованием виртуальных методов; идеи ООП не просты для
- 8. Технология разработки ОО программ В процесс проектирования добавляется еще один этап - разработка иерархии классов. в
- 9. Понятие класса Класс является типом данных, определяемым пользователем. Он должен представлять собой одну логическую сущность, например,
- 10. Описание класса [ атрибуты ] [ спецификаторы ] class имя_класса [ : предки ] тело_класса Имя
- 11. Сквозной пример класса class Monster { public Monster() // конструктор { this.name = "Noname"; this.health =
- 12. Спецификаторы класса
- 13. Элементы класса
- 14. Описание объекта (экземпляра) Класс является обобщенным понятием, определяющим характеристики и поведение множества конкретных объектов этого класса,
- 15. Пример создания объектов (экземпляров) class Monster { ... } class Class1 { static void Main() {
- 16. Присваивание и сравнение объектов b = c Величины ссылочного типа равны, если они ссылаются на одни
- 17. Данные: поля и константы Данные, содержащиеся в классе, могут быть переменными или константами. Переменные, описанные в
- 18. Пример класса using System; namespace CA1 { class Demo { public int a = 1; //
- 19. Спецификаторы полей и констант класса
- 20. Методы Метод — функциональный элемент класса, реализующий вычисления или другие действия. Методы определяют поведение класса и
- 21. Синтаксис метода [ атрибуты ] [ спецификаторы ] тип имя_метода ( [ параметры ] ) тело_метода
- 22. Примеры методов public void Sety(double z) { y = z; } public double Gety() { return
- 23. Параметры методов Параметры определяют множество значений аргументов, которые можно передавать в метод. Список аргументов при вызове
- 24. Пример class Demo { public int a = 1; public const double c = 1.66; static
- 25. Вызов метода Вычисляются выражения, стоящие на месте аргументов. Выделяется память под параметры метода. Каждому из параметров
- 26. Пример передачи параметров class Class1 { static int Max(int a, int b) // выбор макс. значения
- 27. Способы передачи параметров и их типы Способы передачи параметров: по значению и по ссылке. При передаче
- 28. Пример: параметры-значения и ссылки ref using System; namespace ConsoleApplication1 { class Class1 { static void P(
- 29. Пример: выходные параметры out using System; namespace ConsoleApplication1 { class Class1 { static void P( int
- 30. Правила применения параметров Для параметров-значений используется передача по значению. Этот способ применяется для исходных данных метода.
- 31. Ключевое слово this Чтобы обеспечить работу метода с полями того объекта, для которого он был вызван,
- 32. Использование явного this В явном виде параметр this применяется: // чтобы возвратить из метода ссылку на
- 33. Конструкторы Конструктор предназначен для инициализации объекта. Он вызывается автоматически при создании объекта класса с помощью операции
- 34. Пример класса с конструктором class Demo { public Demo( int a, double y ) // конструктор
- 35. Пример класса с двумя конструкторами class Demo { public Demo( int a ) // конструктор 1
- 36. Сквозной пример класса class Monster { public Monster() // конструктор { this.name = "Noname"; this.health =
- 37. Свойства Свойства служат для организации доступа к полям класса. Как правило, свойство определяет методы доступа к
- 38. Пример описания свойств public class Button: Control { private string caption; // поле, с которым связано
- 39. Сквозной пример класса class Monster { public Monster() // конструктор { this.name = "Noname"; this.health =
- 40. Методы с переменным количеством аргументов class Class1 { public static double Average( params int[] a )
- 41. Рекурсивные методы Рекурсивным называется метод, который вызывает сам себя (прямая рекурсия). Косвенная рекурсия - когда два
- 42. Характеристики рекурсии Достоинство рекурсии: компактность записи. Недостатки: опасность переполнения стека; расход времени и памяти на повторные
- 43. Перегрузка методов Использование нескольких методов с одним и тем же именем, но различными типами параметров называется
- 44. ©Павловская Т.А. (СПбГУ ИТМО) Операции класса В С# можно переопределить для своих классов действие большинства операций.
- 45. Общие правила описания операций класса операция должна быть описана как открытый статический метод класса (спецификаторы public
- 46. Унарные операции Можно определять: + - ! ~ ++ -- true false Примеры заголовков: public static
- 47. Пример унарной операции класса class Monster { public static Monster operator ++(Monster m) { Monster temp
- 48. Бинарные операции Можно определять: + - * / % & | ^ > == != >
- 49. Пример бинарных операций класса class Monster { public static Monster operator +( Monster m, int k
- 50. Операции преобразования типа Обеспечивают возможность явного и неявного преобразования между пользовательскими типами данных. implicit operator тип
- 51. Применение операций преобразования Неявное преобразование выполняется автоматически: при присваивании объекта переменной целевого типа; при использовании объекта
- 52. Индексаторы ©Павловская Т.А. (СПбГУ ИТМО) Индексатор представляет собой разновидность свойства. Если у класса есть скрытое поле,
- 53. Пример ©Павловская Т.А. (СПбГУ ИТМО) class Book { public Book(string name) { this.Name=name; } public string
- 54. Многомерные индексаторы ©Павловская Т.А. (СПбГУ ИТМО) class Matrix { private int[,] numbers = new int[,] {
- 55. Индексаторы без массива ©Павловская Т.А. (СПбГУ ИТМО) namespace ConsoleApp4 { class Program { static void Main(string[]
- 57. Скачать презентацию