Презентация по теме классы, инкапсуляция, наследование
Презентация по теме классы, инкапсуляция, наследование
Объектно-ориентированное программирование является более структурным, чем все предыдущие разработки, касающиеся структурного программирования. Оно также является более модульным и более абстрактным, чем предыдущие попытки абстрагирования данных и переноса деталей программирования на внутренний уровень
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Презентация по теме классы, инкапсуляция, наследование»
Классы. Инкапсуляция. Наследование.
Объектно–ориентированное программирование
Объектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования
История
ООП возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны
Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование, КОП)
Процедурный стиль
Входные данные
Процедура 1
Память
Процедура 2
Процедура 3
Результат работы процедур
Объектно–ориентированное программирование
Объект – это сущность, экземпляр класса, которой можно посылать сообщения и которая может на них реагировать, используя свои данные. Данные объекта скрыты от остальной программы. Сокрытие данных называется инкапсуляцией.
Абстрагирование – это способ выделить набор значимых характеристик объекта, исключая из рассмотрения не значимые. Соответственно, абстракция – это набор всех таких характеристик.
Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.
Наследование – это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью
Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Классы
Классы и объекты – базовые понятия объектно–ориентированного программирования. В первой главе эти понятия были рассмотрены очень кратко.
Класс – описание множества объектов, имеющих одинаковые атрибуты и поведение.
Класс – абстрактный тип, на основе которого создаются объекты.
Фактически класс – образец (шаблон) для создания объектов
Классы
К ласс – абстрактная модель некоего предмета.
Классы
Класс – это абстрактный тип данных. Другими словами, класс – это некоторый шаблон, на основе которого будут создаваться его экземпляры – объекты .
[модификатор доступа] class [имя_класса]{ //тело класса}
- public – доступ к классу возможен из любого места одной сборки либо из другой сборки, на которую есть ссылка; - internal – доступ к классу возможен только из сборки, в которой он объявлен
Классы
Пример. Описание класса, содержащего только поля
Описать класс «Компания»
Поля касса:
Название, количество сотрудников, месячный фонд зарплаты
class Company {
public string name; //название компании
public int persons; //количество сотрудников
public int money;// месячный фонд зарплаты
Инкапсуляция (encapsulation)
- это объединение производного типа данных с набором функций , используемых при работе с этим типом данных, в единый класс.
Функции, включенные в класс, называют методами класса
Данные – элементами или полями класса ,
Конкретные представители класса – объекты, экземпляры .
Класс (объект) - это то, что поддерживает инкапсуляцию
Инкапсуляция позволяет сделать класс «самодостаточным» для решения конкретной задачи.
Класс всегда несет в себе некоторую функциональность.
Это мощное средство обмена готовыми к работе программными заготовками
Инкапсуляция
Отделение (сокрытие) внутреннего устройства (данных и вспомогательных операций) от поведения (доступных операций)
Положительные стороны
гибкость – можем менять внутреннее строение, не меняя поведение безопасность – запрещаем и/или ограничиваем доступ к данным объекта простота – меньше доступных операций - легче использовать и понимать
гибкость – можем менять внутреннее строение, не меняя поведение
безопасность – запрещаем и/или ограничиваем доступ к данным объекта
простота – меньше доступных операций - легче использовать и понимать
Реализация инкапсуляции Методы доступа к полям
Методы доступа к полям
getFieldName / setFieldName boolean – isFieldName Поля
getFieldName / setFieldName boolean – isFieldName
getFieldName / setFieldName
boolean – isFieldName
Поля
модификатор private (или protected ) Модификатор final повышает скорость
модификатор private (или protected )
модификатор private (или protected )
Модификатор final повышает скорость
Инкапсуляция
Ключи доступа
private - элементы данных могут использоваться только функциями-методами класса, к которому принадлежат эти элементы данных
public - элементы данных могут использовать любыми функциями программы
protected - элементы данных могут использоваться функциями-методами того же класса, к которому принадлежат эти элементы данных, а также функциями-методами производных классов (классов-потомков)
По умолчаниюключ доступаprivate. Т.е. если ключи доступа не указаны, то все элементы класса являются скрытыми (недоступными).
Попытка обратиться в программе к скрытым данным или методам вызывает сообщение:
is not accessible
Инкапсуляция
доступно только в этом классе
private
доступно в этом классе и наследниках
protected
доступно всем
public
Наследование (inheritance)
- это возможность определять новые классы посредством добавления полей, свойств и методов к уже существующим классам .
Такой механизм получения новых классов называется порождением .
При этом новый, порожденный, класс ( потомок ) наследует все поля, методы и свойства своего базового, родительского класса.
Наследование поддерживает концепцию иерархии классов (hierarchical classification).
Применение иерархии классов делает управляемыми большие потоки информации.
Наследование обеспечивает поэтапное создание сложных классов и разработку собственных библиотек классов
Наследование (inheritance)
Простое наследование
Класс, от которого произошло наследование, называется базовым или родительским (англ. base class).
• Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class).
• Абстрактный класс – это класс, содержащий хотя бы один абстрактный метод, он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта.
Наследование (inheritance)
Множественное наследование
Множественное наследование – потенциальный источник ошибок,
которые могут возникнуть из–за наличия одинаковых имен методов в
предках.
• При множественном наследовании у класса может быть более одного
предка. В этом случае класс наследует методы всех предков.
Достоинства такого подхода в большей гибкости.
можно переопределить // например: return x+x; } }" width="640"