
Системное программирование.pptx
- Количество слайдов: 19
Системное программирование Занятие 2
Объектно-ориентированное программирование Идея ООП заключается в стремлении связать данные с обрабатывающими эти данные процедурами в единое целое –класс. Основные принципы ООП: Абстракция Инкапсуляция Наследование Полиморфизм
Объектно-ориентированное программирование Абстракция – придание классу характеристик, которые четко определяют его концептуальные границы, отличая от всех других классов. Основная идея состоит в том, чтобы отделить способ использования составных объектов данных от деталей их реализации в виде более простых объектов.
Объектно-ориентированное программирование Инкапсуляция – объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются переменными или полями класса, а алгоритмы – функциями или методами класса. Целью инкапсуляции является обеспечение согласованности внутреннего состояния объекта.
Объектно-ориентированное программирование class No. Encapsulation { public double Value; public string Value. String; }
Объектно-ориентированное программирование class Encapsulation. Example { private double value. Double; private string value. String; public double Value { get { return value. Double; } set { value. Double = value; value. String = value. To. String(); } } } public string Value. String { get { return value. String; } set { double tmp_value = Convert. To. Double(Value. String); //здесь может возникнуть исключение value. Double = tmp_value; value. String = Value. String; }
Объектно-ориентированное программирование Наследование – свойство классов порождать своих потомков. Класс-потомок автоматически наследует от родителей все поля и методы, может дополнять классы новыми полями и заменять (перекрывать) методы родителя или дополнять их. public class A { } public class B : A { }
Объектно-ориентированное программирование Полиморфизм – свойство родственных объектов (т. е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами.
Объектно-ориентированное программирование public class Shape class Circle : Shape { { // A few example members public override void Draw() public int X { get; private set; } { public int Y { get; private set; } Console. Write. Line("Drawing a circle"); public int Height { get; set; } base. Draw(); } public int Width { get; set; } } // Virtual method class Rectangle : Shape public virtual void Draw() { public override void Draw() { { Console. Write. Line("Performin g base class drawing tasks"); Console. Write. Line("Drawing a rectangle"); } base. Draw(); } } }
Объектно-ориентированное программирование … shapes. Add(new Rectangle()); shapes. Add(new Triangle()); shapes. Add(new Circle()); foreach (Shape s in shapes) { s. Draw(); } …
Классы Класс — это конструктор, который позволяет создавать свои собственные пользовательские типы путем группирования переменных других типов, методов и событий. Роли классов: Класс - это модуль, архитектурная единица построения программной системы. 2. Класс - это тип данных, задающий реализацию некоторой абстракции данных. 1.
Классы как типы данных Поля класса синтаксически являются обычными переменными (объектами) языка. Их описание удовлетворяет обычным правилам объявления переменных. Доступ к полям: Private (только внутри данного класса) Protected (всем наследникам данного класса) Internal (всем дружественным классам) Public (всем)
Классы как типы данных Все процедуры и функции, объявленные в классе, являются методами класса. Их описание удовлетворяет обычным правилам синтаксиса. Доступ к методам: Private (только внутри данного класса) Protected (всем наследникам данного класса) Internal (всем дружественным классам) Public (всем)
Классы как типы данных Конструктор - неотъемлемый компонент класса. Нет классов, задающих тип данных и не имеющих конструкторов. Конструктор представляет собой специальный метод класса, позволяющий создавать объекты класса. У конструкторов две синтаксические особенности: • имя конструктора фиксировано и совпадает с именем класса, • для конструктора не задается возвращаемое значение.
Классы как типы данных class my. Class { private int m. A; private string m. B; public my. Class(int a, string b) { m. A = a; m. B = b; } } … my. Class c = new my. Class(42, "string");
Классы как типы данных Если задача создания объектов полностью возлагается на программиста, то задача удаления ненужных объектов в Visual Studio. Net снята с программиста и возложена на соответствующий инструментарий - сборщик мусора. В классическом варианте деструктор служит для удаления объектов и освобождения ресурсов, занятых объектом, в первую очередь оперативной памяти. ~My. Class() { //Код деструктора }
Классы как типы данных Если задача создания объектов полностью возлагается на программиста, то задача удаления ненужных объектов в Visual Studio. Net снята с программиста и возложена на соответствующий инструментарий - сборщик мусора. В классическом варианте деструктор служит для удаления объектов и освобождения ресурсов, занятых объектом, в первую очередь оперативной памяти. ~My. Class() { //Код деструктора }
Классы как типы данных Методы, называемые свойствами ( Properties ), представляют специальную синтаксическую конструкцию, предназначенную для обеспечения эффективной работы со свойствами. class My. Class { private int p_field; public int Field { get { return p_field; } private set { p_field = value; } } }
Объекты Объект — некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеет заданные значения свойств (атрибутов) и операций над ними (методов). Student Petrov; Student Group 22[30]; Student * p. Stud; … p. Stud = new Student; Student // Описание объекта типа Student // Описание массива объектов типа Student в 30 элементов // Описание указателя на тип Student // Динамическое создание объекта типа
Системное программирование.pptx