Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2 2015.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
221.17 Кб
Скачать

Проектирование классов

Лабораторная работа №2

Цель лабораторной работы: научиться проектировать классы и работать с системой управления версиями.

Данная лабораторная работа состоит из двух частей:

  • В первой части необходимо создать проект в Visual Studio и разработать в нём классы на заданную тематику;

  • Во второй части необходимо научиться работать с системой управления версиями и поместить проект в хранилище версий.

Основы объектно-ориентированного программирования

Объектно-ориентированное программирование (ООП) — парадигма программирования (совокупность идей и понятий, определяющих стиль написания компьютерных программ), в которой основными концепциями являются понятия объектов и классов.

Другими словами: объектно-ориентированное программирование - это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

Объектное и объектно-ориентированное программирование возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Кроме того, в современном объектно-ориентированном программировании часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование).

Основные концепции:

  • Система состоит из объектов.

  • Объекты некоторым образом взаимодействуют между собой

  • Каждый объект характеризуется своим состоянием и поведением

  • Состояние объекта задаётся значением полей данных

  • Поведение объекта задаётся методами

Инкапсуляция

Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.

Т.е. при использовании класса достаточно знать функции, которые он выполняет, не задумываясь как внутри класса производится обработка и вычисления.

Можно привести аналогию с реальным миром: пользуясь сотовым телефоном человек не задумывается что происходит когда он начинает звонок и разговор с другим абонентом. Для него достаточно знать, что набрав номер телефона он инициирует звонок и может разговаривать используя микрофон для передачи голоса, и динамик для того, чтобы услышать говорящего.

Полиморфизм

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Если взять пример из реального мира: Производится множество различных моделей сотовых телефонов, но интерфейс взаимодействия с пользователем у них практически одинаковый.

Абстракция данных

Абстракция данных — подход к обработке данных по принципу чёрного ящика. Данные обрабатываются функцией высокого уровня с помощью вызова функций низкого уровня.

Абстракция в объектно-ориентированном программировании — это придание объекту характеристик, которые чётко определяют его концептуальные границы, отличая от всех других объектов. Основная идея состоит в том, чтобы отделить способ использования составных объектов данных от деталей их реализации в виде более простых объектов, подобно тому, как функциональная абстракция разделяет способ использования функции и деталей её реализации в терминах более примитивных функций, таким образом, данные обрабатываются функцией высокого уровня с помощью вызова функций низкого уровня.

Фундаментальная идея состоит в разделении несущественных деталей реализации подпрограммы и характеристик, существенных для корректного ее использования. Такое разделение может быть выражено через специальный «интерфейс», сосредотачивающий описание всех возможных применений программы.

Под «интерфейсом» понимается некий набор методов и средств доступа к данным класса, которые могут использоваться извне. Например, класс для генерации случайных чисел содержит метод, при вызове которого возвращается произвольное случайное число. Доступа к алгоритму генерации у программиста нет, но есть возможность вызвать метод, который возвратит результат его работы. Этом и заключается основной принцип абстрации – есть метод, который выполняет определённый алгоритм, при этом, логика работы самого алгоритма скрыта.

Класс

Идея классов пришла из работ по базам знаний, имеющих отношение к исследованиям по искусственному интеллекту. Используемые человеком классификации в зоологии, ботанике, химии, деталях машин, несут в себе основную идею, что любую вещь всегда можно представить частным случаем некоторого более общего понятия. Конкретное яблоко — это в целом некоторое яблоко, вообще яблоко, а любое вообще яблоко — фрукт.

Под классом подразумевается некая сущность, которая задает некоторое общее поведение для объектов.

Например: Класс «Автомобиль» задаёт общее поведение для всех автомобилей.

Класс это структурное описание, которое делается на этапе написания кода. В процессе выполнения программы создаются экземпляры класса (объекты), которые содержат конкретные данные и методы и взаимодействуют между собой.

Определение класса выглядит следующим образом:

class Parent

{

}