Файл: История и развитие методологии объектно-ориентированного программирования. Сферы применения (ОСНОВНЫЕ ПОНЯТИЯ О ПРОГРАММИРОВАНИИ, ПАРАДИГМЫ ПРОГРАММИРОВАНИЯ).pdf
Добавлен: 30.03.2023
Просмотров: 289
Скачиваний: 2
Он позволяет исключать влияние программ, которые написаны на языке Java, на иные программы и файлы, что используются на новой платформе, и обеспечить тем самым безопасность при реализации этих программ. Такие свойства языка Java дают возможность использовать его в качестве основного язык программирования для многих программ, распространяемых с помощью сетевых технологий.
3.2. Сферы применения ООП
Основные области применения ООП:
– разработка программ;
– создание баз данных;
– построение прикладных систем.
Опишем принципы построения программы для ООП на примере матричного калькулятора.
Напишем шаблонный класс на языке С++, реализующий матричную арифметику: сложение, вычитание, умножение, транспонирование матриц, умножение матрицы на число, умножение вектора на матрицу, вывод элементов матрицы на дисплей, проверка матриц на равенство, нахождение определителя матрицы, нахождение следа матрицы.
Разработаем и реализуем тестовое приложение с оконным интерфейсом, демонстрирующее работу с описанным классом.
С помощью среды интегрированной разработки C++ Builder создадим оконный интерфейс для приложения (рисунок 6)
Рисунок 6 – Проектирование интерфейса для программы «Матричная арифметика»
Реализация программы состоит из файла Matrix.cpp, в котором находится описание шаблонного класса и все его функций и модуля с основной программой.
Рассмотрим кратко основные части кода реализации шаблонного класса.
//Объявление шаблонного класса
template<class T>
class Matrix {
//Описание открытых полей класса
public:
//конструктор
Matrix(int n, int m) {
rows = n;
cols = m;
mtx = new T*[rows];
for(int i=0; i<rows; i++) {
mtx[i] = new T[cols];
}
}
//реализация конструктора копирования
Matrix(const Matrix<T> &m) {
rows = m.rows;
cols = m.cols;
mtx = new T*[rows];
for(int i=0; i<rows; i++) {
mtx[i] = new T[cols];
for(int j=0; j<cols; j++) {
mtx[i][j] = m.get(i,j);
}
}
}
//деструктор класса
~Matrix() {
if(mtx == NULL)
return;
for(int i=0; i<rows; i++) {
delete [] mtx[i];
}
delete [] mtx;
}
//функция для сложения матриц
Matrix<T> add(const Matrix<T> &m) {
//новая матрица
Matrix<T> res(rows, cols);
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
res.mtx[i][j] = get(i,j)+m.get(i,j);
}
}
return res;
}
//функция для вычистания матриц
Matrix<T> substract(const Matrix<T> &m) {
//новая матрица
Matrix<T> res(rows, cols);
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
res.mtx[i][j] = get(i,j)-m.get(i,j);
}
}
return res;
}
//функция для транспонирования матрицы
void transp() {
for(int i=0; i<rows; i++) {
for(int j=i; j<cols; j++) {
T tmp = mtx[i][j];
mtx[i][j] = mtx[j][i];
mtx[j][i] = tmp;
}
}
}
Остальные функции создаются аналогично.
Функционирование программы показано на рис. 6:
Рисунок 7 – Интерфейс программы
В последней главе описываются основные механизмы ООП в С++, а также разработаны на практике программы для демонстрации главных возможностей ООП.
ЗАКЛЮЧЕНИЕ
Современное объектно-ориентированное программирование многие считают одной из самых совершенных парадигм программирования, которая может рассматривать создаваемую программу в качестве совокупности связанных "объектов".
Стоит заметить, что в ней применены сразу несколько технологий программирования: от ранних, к примеру, структуры алгоритмов, до более поздних: принципы модульности, наследования, инкапсуляции.
Невзирая на тот факт, что указанная ранее парадигма появилась еще в далеком конце 1960-х гг., она не имела в то время очень широкого применения так как являлась очень сложной для понимания.
Сегодня многие ЯП (а именно, такие популярные, как PHP, Java, Python, Objective-C) долгое время поддерживают указанную парадигму.
ООП уходит корнями непосредственно к разработке такого ЯП, как Симула, одновременно с значительным усилением многих споров о начале кризиса ПО.
Заметим, что при усложнении компонентов программного, а также аппаратного обеспечение, было трудно выполнять сохранение требуемого качества программ. При этом, ООП частично решило все указанные проблемы при помощи модульности. Этот принцип позволяет очень качественно осуществлять практически все часто применяемые методики разработки ПО с помощью ООП.
В процессе написания работы реализованы такие задачи:
– описаны основные понятия для теории ЯП;
– рассмотрена история возникновения ООП;
- определены основные принципы ООП;
- описаны ЯП высокого уровня, которые поддерживают ООП;
- рассмотрены сферы применения ООП на конкретном примере.