Принципы объектно-ориентированного подхода к программированию
Изучение принципов объектно-ориентированного подхода к программированию и получение практических навыков их использования при разработке классов и объектов в обучающей среде. Конструктор объектов класса Vektor c параметрами. Редактирования исходного кода.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 20.02.2015 |
Размер файла | 715,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Классический приватный университет
Кафедра программирования и информационных технологий
Отчет
по лабораторной работе
дисциплины "Основы программной инженерии"
Принципы объектно-ориентированного подхода к программированию
Выполнил:
ст. гр. ПИК-114
Кольцун И.В.
Принял:
доц. каф. ПИТ
Г.П. Коломоец
Запорожье
2016 г.
Задание лабораторной работы
Разработать в BlueJ класс на языке Java, представляющий собой вектор на плоскости, заданный координатами, с методами нахождения модуля вектора и сложения двух векторов.
Цель работы: Рассмотреть основные принципы объектно-ориентированного подхода к программированию и получить практические навыки их использования при разработке классов и объектов в обучающей среде.
Для начала работы создаем класс и определяем в нем необходимые переменные и методы:
Рис. 1. Рабочая область BlueJ с созданным классом
Редактируем исходный код класса Vektor:
/**
* Класс, описывающий вектор на плоскости.
*
* @author Кольцун Ирина
* @version 2.1
*/
public class Vektor
{
/**
* Координаты точек на поскости
*/
private int x1;
private int y1;
private int x2;
private int y2;
/**
* Конструктор объектов класса Vektor без параметров
*/
public Vektor()
{
// инициализация переменных объекта
x1 = 0;
y1 = 0;
x2 = 0;
y2 = 0;
}
/**
* Конструктор объектов класса Vektor c параметрами
*/
public Vektor(int x1,int y1,int x2,int y2)
{
//инициализация переменных объекта
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
После редактирования исходного кода класса выполняем щелчок по кнопке Скомпилировать в окне Редактора исходного кода. Теперь штриховка на пиктограмме класса исчезла и можно создать объект класса.
Рис. 2. Создание объекта (экземпляра класса) с помощью конструктора без параметров
Рис. 3. Создание объекта (экземпляра класса) с помощью конструктора с параметрами
Рис. 4. Инспекция объекта (экземпляра класса)
Таким образом, мы научились определять свойства класса объектов и задавать им значения через конструкторы.
Добавим к определению класса метод, который, например, будет вычислять модуль текущего вектора:
/**
* Метод, вычисляющий модуль текущего вектора.
*
* @param x1,x2,y1,y2-координаты произвольных точек
* @return расстояние между точками, определенных классом Vektor
*
*/
public double module()
{
int dx=x2-x1;
int dy=y2-y1;
return Math.sqrt(dx*dx+dy*dy);
}
Рис. 5. Результат метода module, вычисляющего модуль текущего вектора
Добавляем метод, вычисляющий сумму двух векторов класса Vektor:
/**
* Метод,вычисляющий сумму двух векторов класса Vektor
*
* @param
* @return res
*/
public Vektor sum(int x1,int y1, int x2,int y2)
{
Vektor res=new Vektor();
int dx=x1-this.x2;
int dy=y1-this.y2;
res.x2=x2-dx;
res.y2=y2-dy;
res.x1=this.x1;
res.y1=this.y1;
return res;
}
Рис. 6. Инспекция объекта (экземпляра класса)
Рис. 7. Вызов метода vector2.sum с передачей ему объекта Vektor vector1
Рис. 8. Результата метода
Рис. 9. Сумма двух векторов класса Vektor.
10. Исходный код класса:
/**
* Класс, описывающий вектор на плоскости.
*
* @author Кольцун Ирина
* @version 1.2
*/
public class Vektor
{
/**
* Координаты точек на поскости
*/
private int x1;
private int y1;
private int x2;
private int y2;
/**
* Конструктор объектов класса VekApp без параметров
*/
public Vektor()
{
// инициализация переменных объекта
x1 = 0;
y1 = 0;
x2 = 0;
y2 = 0;
}
/**
* Конструктор объектов класса Vektor c параметрами
*/
public Vektor(int x1,int y1,int x2,int y2)
{
//инициализация переменных объекта
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}
/**
* Метод, вычисляющий модуль текущего вектора.
*
* @param x1,x2,y1,y2-координаты произвольных точек
* @return расстояние между точками,определенных классом Vektor
*
*/
public double module()
{
int dx=x2-x1;
int dy=y2-y1;
return Math.sqrt(dx*dx+dy*dy);
}
/**
* Метод,вычисляющий сумму двух векторов класса Vektor
*
* @param
* @return res
*/
public Vektor sum(int x1,int y1, int x2,int y2)
{
Vektor res=new Vektor();
int dx=x1-this.x2;
int dy=y1-this.y2;
res.x2=x2-dx;
res.y2=y2-dy;
res.x1=this.x1;
res.y1=this.y1;
return res;
}
/**
* Метод,вычисляющий сумму двух векторов класса Vektor
*
* @param
* @return res
*/
public Vektor sum(Vektor v)
{
Vektor res=new Vektor();
int dx=v.x1-this.x2;
int dy=v.y1-this.y2;
res.x2=v.x2-dx;
res.y2=v.y2-dy;
res.x1=this.x1;
res.y1=this.y1;
return res;
}
}
В состав JDK входит утилита javadoc, позволяющая генерироватьдокументацию по проекту на основе документируемых коментариев в исходном коде классов проекта.
Рис. 11. Окно Редактора исходных кодов с сгенерированной документацией класса Vektor
Литература
программирование конструктор редактирование код
1. Фесюнов В. Конспект лекций по Java. http://www.javable.com/tutorials/fesunov/.
2. Методичка OPI-LR2.pdf.
Размещено на Allbest.ru
...Подобные документы
Основные элементы объектной модели. Сущность и преимущества объектно-ориентированного подхода, понятие объекта и класса. Унифицированный язык моделирования UML. Диаграммы классов и взаимодействия: назначение, построение и примеры использования.
реферат [273,2 K], добавлен 09.06.2009Технологии программирования. Сущность объектно-ориентированного подхода к программированию. Назначение Си, исторические сведения. Алфавит, базовые типы и описание данных. Структуры и объединения. Операторы Си++. Функции. Библиотека времени выполнения.
курс лекций [51,9 K], добавлен 03.10.2008Общая характеристика объектно-ориентированного подхода в программировании, его основные свойства и принципы. Разработка программы для автоматизация деятельности кафе на основе объектно-ориентированного подхода, проектирования и реализации схемы данных.
курсовая работа [1,2 M], добавлен 22.01.2012Особенности объектно-ориентированного проектирования. Основные понятия объектно-ориентированного подхода. Основы языка UML, варианты его использования. Диаграммы классов и взаимодействия. Разработка диаграммы прецедентов (вариантов использования).
курсовая работа [1,1 M], добавлен 13.05.2014Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.
контрольная работа [60,1 K], добавлен 17.01.2011Изучение принципов объектно-ориентированного программирования, в котором основными концепциями являются понятия классов и объектов. Свойства этого вида программирования: инкапсуляция, полиморфизм, наследование. Описание класса. Конструкторы и деструкторы.
презентация [74,8 K], добавлен 14.10.2013Особенности реализации главных элементов разрабатываемой программы (цифровые элементы) с помощью объектно-ориентированного подхода. Применение принципа инкапсуляции для защиты данных. Конструирование классов, описание и тестирование программного продукта.
курсовая работа [2,3 M], добавлен 10.05.2015Изучение базовых понятий объектно-ориентированного программирования. Исследование принципов работы с классами и объектами. Построение системы классов для описания плоских геометрических фигур. Анализ методов создания объектов, перемещения на плоскости.
лабораторная работа [212,0 K], добавлен 10.03.2013Анализ проблематики построения объектно-ориентированного канала связи. Основные понятия протокола Modbus. Возможности CodeSys для реализации объектно-ориентированного подхода. Разработка методики кроссплатформенной библиотеки для интеграции устройств.
курсовая работа [38,6 K], добавлен 15.06.2013Анализ объектно-ориентированного программирования, имитирующего способы выполнения предметов. Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. Понятие классов, полей, методов, сообщений, событий.
контрольная работа [51,7 K], добавлен 22.01.2013Основные понятия объектно-ориентированного программирования в PHP5. Структурный и объектно-ориентированный подход. Класс как абстрактный тип. Реализация класса. Конструкторы и деструкторы. Функция l_visited_style изменение стиля посещенных ссылок.
курсовая работа [433,2 K], добавлен 13.06.2008Основные понятия препроцессорной обработки. Объектно-ориентированные средства С++. Объектные типы данных. Виртуальные функции. Шаблоны функций и классов. Классы для ввода-вывода потоков. Задачи по программированию на Си, по разработке систем объектов.
курс лекций [53,8 K], добавлен 03.10.2008Изучение принципов объектно-ориентированного программирования. Понятие класса в Delphi, в основе которых лежат три фундаментальные принципы - инкапсуляция, наследование и полиморфизм. Разработка классов транспортных средств и структур классов (кошки).
курсовая работа [29,7 K], добавлен 29.10.2011Основные концепции объектно-ориентированного программирования. Разработка компонента ActiveX (элемента управления Label с новым свойством Caption) на базе стандартного текстового поля. Тестирование пользовательского класса Auto и коллекции его объектов.
курсовая работа [834,8 K], добавлен 07.04.2014Понятие объектно-ориентированного программирования, характеристика используемых языков. Практическая разработка средств объектно-ориентированного программирования в задачах защиты информации: программная реализация на языке С++, а также Turbo Pascal.
курсовая работа [275,9 K], добавлен 22.12.2011Понятие технологии разработки программного обеспечения и модели жизненного цикла. Сущность объектно-ориентированного подхода. Строительные блоки, общие механизмы языка моделирования UML, диаграммы классов, состояний, взаимодействий и компонентов.
курсовая работа [262,5 K], добавлен 10.07.2014Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.
курсовая работа [355,8 K], добавлен 26.09.2014Анализ методов объектно-ориентированного программирования на примере численных. Детальная характеристика модулей и связь их в одну общую программу. Принципы интегрирования по общей формуле трапеции и решение дифференциального уравнения методом Эйлера.
курсовая работа [511,6 K], добавлен 25.03.2015Анализ предметной области "Конкурс поэтов" на основе объектно-ориентированного подхода. Разработка оконного приложения и описание информационной модели предметной области. Описание разработанных процедур С++ и результатов тестирования приложения.
курсовая работа [355,9 K], добавлен 18.06.2013"Moodle" - модульная объектно-ориентированная динамическая среда обучения, ее использование для разработки систем дистанционного обучения. Общее представление о дистанционном практикуме по программированию. Разработка структуры данных и алгоритмов.
дипломная работа [1,2 M], добавлен 09.11.2016