Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
66 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
3.41 MB
Просмотров:
81
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Объектно-ориентированное](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img0.jpg)
Содержание слайда: Объектно-ориентированное программирование
Лекция 4. Классы и объекты. Поля класса, методы класса.
№2 слайд![Определение класса в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img1.jpg)
Содержание слайда: Определение класса в ООП
Класс – это тип данных, задающий реализацию некоторой абстракции данных (сущности), характерной для моделируемой предметной области.
№3 слайд![Определение класса в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img2.jpg)
Содержание слайда: Определение класса в ООП
Класс – это тип данных, задающий реализацию некоторой абстракции данных (сущности), характерной для моделируемой предметной области.
№4 слайд![Определение класса в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img3.jpg)
Содержание слайда: Определение класса в ООП
Класс – это тип данных, задающий реализацию некоторой абстракции данных (сущности), характерной для моделируемой предметной области.
№5 слайд![Определение класса в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img4.jpg)
Содержание слайда: Определение класса в ООП
Класс – это тип данных, задающий реализацию некоторой абстракции данных (сущности), характерной для моделируемой предметной области.
№6 слайд![Определение класса в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img5.jpg)
Содержание слайда: Определение класса в ООП
Класс – это тип данных, задающий реализацию некоторой абстракции данных (сущности), характерной для моделируемой предметной области.
№7 слайд![Определение класса в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img6.jpg)
Содержание слайда: Определение класса в ООП
Класс – это тип данных, задающий реализацию некоторой абстракции данных (сущности), характерной для моделируемой предметной области.
№8 слайд![Определение класса в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img7.jpg)
Содержание слайда: Определение класса в ООП
Класс – это тип данных, задающий реализацию некоторой абстракции данных (сущности), характерной для моделируемой предметной области.
№9 слайд![Определение класса в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img8.jpg)
Содержание слайда: Определение класса в ООП
Класс – это модуль, архитектурная единица построения программной системы.
№10 слайд![Проектирование в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img9.jpg)
Содержание слайда: Проектирование в ООП
Объектно-ориентированная разработка программной системы основана на стиле, называемом проектированием от данных. Проектирование системы сводится к поиску абстракций данных, подходящих для конкретной задачи.
№11 слайд![Проектирование в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img10.jpg)
Содержание слайда: Проектирование в ООП
Некоторые сущности проявляются в процессе разработки – возможно, нам потребуются стены, пол и потолок, а для описания температуры, освещенности и концентрации СО2 может выявиться сущность – КОМФОРТ. У каждой сущности выявляются атрибуты и методы.
№12 слайд![Проектирование в ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img11.jpg)
Содержание слайда: Проектирование в ООП
Некоторые сущности могут включать в себя другие:
группа состоит из студентов
окна являются частью стены
светильники являются частью стены или потолка
№13 слайд![Проектирование в ООП В ООП](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img12.jpg)
Содержание слайда: Проектирование в ООП
В ООП используются понятия клиент и сервер. Сервер – тот, кто поставляет услугу (в нашем случае – класс), клиент – тот, кто использует этот класс (программист, возможно тот же, кто писал класс, возможно – другой).
№14 слайд![Класс CCar Рассмотрим создане](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img13.jpg)
Содержание слайда: Класс CCar
Рассмотрим создане и использование простейшего класса – автомобиль (Car).
Для имен классов желательно использовать префикс – первую букву C (Class), чтобы не путать их в дальнейшем с объектами.
Поэтому имя класса будет CCar
№15 слайд![Создание нового проекта](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img14.jpg)
Содержание слайда: Создание нового проекта
№16 слайд![Добавление нового класса](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img15.jpg)
Содержание слайда: Добавление нового класса
(правый клик на имени проекта)
№17 слайд![Задание имени класса](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img16.jpg)
Содержание слайда: Задание имени класса
№18 слайд![Класс CCar Желательно каждый](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img17.jpg)
Содержание слайда: Класс CCar
Желательно каждый класс описывать в отдельном модуле
Заготовка для класса создается автоматически
№19 слайд![Класс CCar у нашего класса](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img18.jpg)
Содержание слайда: Класс CCar
у нашего класса пока только два атрибута (поля)
public – поля будут видны во всем проекте (и в классе Program)
№20 слайд![Класс CCar Объекты создаются](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img19.jpg)
Содержание слайда: Класс CCar
Объекты создаются в том классе, где они используются – в Program
№21 слайд![Класс CCar при обращении к](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img20.jpg)
Содержание слайда: Класс CCar
при обращении к объекту видны все поля и методы, а также их типы
№22 слайд![Класс CCar Мы можем](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img21.jpg)
Содержание слайда: Класс CCar
Мы можем использовать поля, чтобы присвоить им значения и чтобы получить их значения.
№23 слайд![Класс CCar Добавим еще один](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img22.jpg)
Содержание слайда: Класс CCar
Добавим еще один объект.
Итого у нас есть 2 объекта.
№24 слайд![Класс CCar И еще один.](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img23.jpg)
Содержание слайда: Класс CCar
И еще один.
Сколько всего объектов у нас есть?
№25 слайд![Класс CCar Для удобства](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img24.jpg)
Содержание слайда: Класс CCar
Для удобства добавим к нашему классу метод – вывод всей информации о полях класса
№26 слайд![Класс CCar Теперь](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img25.jpg)
Содержание слайда: Класс CCar
Теперь пользоваться нашим классом стало намного удобнее
№27 слайд![Класс CCar Добавим метод](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img26.jpg)
Содержание слайда: Класс CCar
Добавим метод посложнее
№28 слайд![Класс CCar Разгоним один](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img27.jpg)
Содержание слайда: Класс CCar
Разгоним один автомобиль
№29 слайд![Класс CCar И притормозим](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img28.jpg)
Содержание слайда: Класс CCar
И притормозим другой
№30 слайд![Класс CCar Еще один вариант](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img29.jpg)
Содержание слайда: Класс CCar
Еще один вариант метода – с возвращаемым значением
№31 слайд![Класс CCar И его использование](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img30.jpg)
Содержание слайда: Класс CCar
И его использование
№32 слайд![Класс CCar Насколько один](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img31.jpg)
Содержание слайда: Класс CCar
Насколько один автомобиль едет быстрее, чем другой?
Метод работает с двумя объектами.
№33 слайд![Класс CCar Здесь важно](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img32.jpg)
Содержание слайда: Класс CCar
Здесь важно продумать, от какого объекта будет вызван метод (первый автомобиль) и какой объект будет подан в качестве аргумента (автомобиль, с которым сравниваем).
Вызов будет выглядеть так:
car1.faster(car2)
№34 слайд![Класс CCar А что он будет](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img33.jpg)
Содержание слайда: Класс CCar
А что он будет возвращать? На сколько км/ч быстрее
№35 слайд![Класс CCar Так это метод](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img34.jpg)
Содержание слайда: Класс CCar
Так это метод будет вызываться:
№36 слайд![Класс CCar Но если мы хотим](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img35.jpg)
Содержание слайда: Класс CCar
Но если мы хотим упростить жизнь пользователю класса (т.е. классу Program), можно весь вывод перенести внутрь метода
№37 слайд![Подведение итогов. Метод](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img36.jpg)
Содержание слайда: Подведение итогов. Метод
Метод – это функция, описанная внутри класса
Метод вызывается от объекта класса и ему доступны поля объекта, который его вызвал
Метод может возвращать результат или иметь тип void
Метод может принимать аргументы (или не принимать)
№38 слайд![Конструкторы такое создание](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img37.jpg)
Содержание слайда: Конструкторы
такое создание объектов не слишком удобно
№39 слайд![Конструкторы Так было бы](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img38.jpg)
Содержание слайда: Конструкторы
Так было бы удобнее
№40 слайд![Конструкторы Конструктор](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img39.jpg)
Содержание слайда: Конструкторы
Конструктор – особый метод класса, используемый при создании новых объектов данного класса.
Конструктор всегда имеет то же имя, что и класс.
Конструктор никогда не имеет возвращаемого значения.
№41 слайд![Конструкторы Если класс не](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img40.jpg)
Содержание слайда: Конструкторы
Если класс не имеет ни одного конструктора, компилятор создает конструктор по умолчанию.
№42 слайд![Конструкторы Добавление хотя](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img41.jpg)
Содержание слайда: Конструкторы
Добавление хотя бы одного конструктора отменяет создание конструктора по умолчанию
№43 слайд![Перегруженные конструкторы](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img42.jpg)
Содержание слайда: Перегруженные конструкторы
№44 слайд![Перегруженные конструкторы](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img43.jpg)
Содержание слайда: Перегруженные конструкторы
При вызове конструктора появляется подсказка. Желательно видеть в подсказке осмысленные имена полей.
№45 слайд![Ключевое слово this Чтобы](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img44.jpg)
Содержание слайда: Ключевое слово this
Чтобы отличать имена полей от имен аргументов, используется слово this.
№46 слайд![Цепочки конструкторов При](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img45.jpg)
Содержание слайда: Цепочки конструкторов
При создании автомобиля пользователь может указать нереальную скорость (-10 или 100000).
Желательно добавить проверку.
Придется добавлять проверку в каждый конструктор?
№47 слайд![Цепочки конструкторов Изменим](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img46.jpg)
Содержание слайда: Цепочки конструкторов
Изменим только один конструктор (самый подробный)
№48 слайд![Цепочки конструкторов](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img47.jpg)
Содержание слайда: Цепочки конструкторов
№49 слайд![Свойства Есть еще более](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img48.jpg)
Содержание слайда: Свойства
Есть еще более грамотный способ обеспечить корректность полей класса – свойство.
Свойство – это метод (или пара метода), которые с точки зрения клиентского кода ведут себя как поле.
Такой подход позволят при работе с полями выполнять дополнительную обработку – проверку бизнес-правил (соответствие определенным критериям)
№50 слайд![Свойства private для поля имя](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img49.jpg)
Содержание слайда: Свойства
private для поля
имя поля с _
public для свойства
внешнее имя
get и set
value
№51 слайд![Свойства Проверку на](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img50.jpg)
Содержание слайда: Свойства
Проверку на корректность лучше делать внутри свойства
№52 слайд![Свойства Свойство выглядит](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img51.jpg)
Содержание слайда: Свойства
Свойство выглядит иначе, чем поле
№53 слайд![Свойства get и set вызываются](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img52.jpg)
Содержание слайда: Свойства
get и set вызываются в зависимости от контекста
№54 слайд![Свойства Сработало](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img53.jpg)
Содержание слайда: Свойства
Сработало ограничение на скорость свыше 300 км/ч
№55 слайд![Что не так в нашем классе?](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img54.jpg)
Содержание слайда: Что не так в нашем классе?
№56 слайд![Свойства Мы вполне можем](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img55.jpg)
Содержание слайда: Свойства
Мы вполне можем вернуть прежний вариант конструктора, ведь теперь здесь будет использоваться свойство.
№57 слайд![Свойства И проверка на](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img56.jpg)
Содержание слайда: Свойства
И проверка на корректность выполняется при вызове конструктора
№58 слайд![Свойства Лучшее место в](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img57.jpg)
Содержание слайда: Свойства
Лучшее место в классе для проверки бизнес-правил – это свойство!
№59 слайд![Модификаторы доступа Любой](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img58.jpg)
Содержание слайда: Модификаторы доступа
Любой член класса может иметь один из модификаторов доступа:
private (по умолчанию) – доступ только внутри класса
public – для всех подключенных сборок
protected – только для своего класса и наследников
internal (по умолчанию)– только для своей сборки
№60 слайд![Свойства Используя](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img59.jpg)
Содержание слайда: Свойства
Используя модификаторы доступа можно управлять свойствами:
создать свойство только для чтения – клиент сможет только получать значение,но не изменять его
свойство только для записи – клиент сможет записывать значение, но не сможет прочитать
№61 слайд![Сбор мусора Если не](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img60.jpg)
Содержание слайда: Сбор мусора
Если не существует ни одной ссылки на объект, то предполагается, что этот объект больше не нужен, и занимаемая им память освобождается.
№62 слайд![Сбор мусора Поскольку на сбор](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img61.jpg)
Содержание слайда: Сбор мусора
Поскольку на сбор мусора требуется определенное время, динамическая система С# активизирует этот процесс только по необходимости или в специальных случаях.
№63 слайд![Деструкторы Деструктор метод,](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img62.jpg)
Содержание слайда: Деструкторы
Деструктор – метод, который должен вызываться непосредственно перед тем, как объект будет окончательно разрушен системой сбора мусора.
№64 слайд![Деструкторы имя класса код](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img63.jpg)
Содержание слайда: Деструкторы
~имя_класса()
{
// код деструктора
}
№65 слайд![Деструкторы](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img64.jpg)
Содержание слайда: Деструкторы
№66 слайд![Состав класса](/documents_6/b36b0828e2db08c47d51ca06afdd73c5/img65.jpg)
Содержание слайда: Состав класса