Лабораторные работы java наследование

Лабораторна робота №10 «Наследование. Java» (2ч.)

Используя задание к лабораторной работе №2 создать иерархию классов и виртуальные функции.

Лабораторна робота № 11 «Обработка исключительных ситуаций. Java» (2ч.)

В программу, выполненную в соответствии с заданием к лабораторной работе №9 включить код обработки двух непроверяемых исключительных ситуаций, а также код для генерирования одной исключительной ситуации. Проверить работу программы для всех случаев возникновения исключительных ситуаций.

Лабораторна робота №12 «Интерфейсы. Java» (2ч.)

Используя задание к лабораторной работе №10, создать интерфейс для вывода на экран некоторых данных. Реализовать наследование интерфейсов. Продемонстрировать работу программы для объектов разных классов.

Лабораторна робота № 13 «Графика. Java» (2ч.)

Для кожного варіанта накреслити на екрані вісі координат, необхідні геометрічні фігури, а також вивести текст завдання та текст відповіді.

  1. Опуклий чотирикутник заданий довжинами сторін і кутами. Визначити вид чотирикутника (квадрат, ромб, трапеція, …).
  2. Два відрізки прямих задані координатами кінців. Визначити взаємне розташування відрізків (перетинаються, рівнобіжні, …).
  3. Задано прямокутні координати вершин трикутника і відрізка прямої. Визначити взаємне розташування трикутника і відрізка (відрізок розташований усередині трикутника, перетинає сторону, …).
  4. Задано коло координатами центру і радіусом і відрізок прямої координатами кінців. Визначити взаємне розташування кола і відрізка.
  5. Два трикутники задані координатами своїх вершин. Визначити чи перетинаються сторони цих трикутників.
  6. Задано прямокутні координати вершин квадрата і кінців відрізка. Визначити взаємне розташування відрізка і квадрата.
  7. Задано прямокутні координати вершин двох квадратів. Визначити їхнє взаємне розташування.
  8. Задано прямокутні координати кінців двох відрізків, що виходять з однієї точки. . Визначити, чи проходить через задану точку бісектриса кута, утвореного двома відрізками.
  9. Задано прямокутні координати кінців відрізка і точки. Визначити, чи поділяє перпендикуляр, опущений із точки на відрізок, цей відрізок навпіл.
  10. Задано прямокутні координати вершин і точки. Визначити, чи лежить точка на діагоналі квадрата.
  11. Задано прямокутні координати вершин прямокутного трикутника і точки. Визначити, чи лежить точка на медіані, проведеної з прямого кута.
  12. Задано прямокутні координати кінців двох відрізків, що перетинаються в деякій точці. Визначити, у якому відношенні точка перетинання поділяє відрізки.
  13. Задано прямокутні координати вершин трикутника. Визначити розташування трикутника щодо осей координат (№ квадранта, перетинання з осями, …).
  14. Задано прямокутні координати кінців відрізка прямої. Визначити розташування цього відрізка щодо осей координат (№№ квадрантів).
  15. Задано прямокутні координати трьох вершин ромба. Визначити розташування ромба щодо осей координат (№ квадранта).
  16. Задано прямокутні координати центру кола та його радіус. Визначити розташування кола щодо центру координат.
  17. Задано координати трьох вершин трикутника і координати 2-х точок. Визначити координати перетинання відрізка прямої, що проходить через дві точки, із сторонами трикутника, якщо це перетинання має місце.
  18. Задано прямокутні координати кінців двох відрізків. Визначити, чи є ці відрізки рівнобіжними, перпендикулярними або розташовані довільно.
  19. Задано прямокутні координати вершин трикутника і точки. Визначити, чи лежить точка на однієї з медіан трикутника.
  20. Задано координати трьох вершин прямокутника і точки. Визначити, чи лежить точка на однієї з діагоналей прямокутника.
  21. Задано прямокутні координати вершин трикутника і точки. Визначити, чи лежить точка на однієї з бісектрис кутів трикутника.
  22. Задано координати чотирьох точок. Визначити, чи можуть вони бути вершинами квадрата.
  23. Задано координати чотирьох точок. Визначити, чи можуть вони бути вершинами трапеції.
  24. Задано координати чотирьох точок. Визначити, чи можуть вони бути вершинами ромба.
  25. Задано координати чотирьох точок. Визначити, чи можуть вони бути вершинами прямокутника.
Читайте также:  Imutils python как установить

Источник

Лабораторная работа 6. Объектная модель Java

Единственный в мире Музей Смайликов

Самая яркая достопримечательность Крыма

Скачать 172.16 Kb.

Лабораторная работа №6.
Объектная модель Java. Наследование классов. Организация наследования.
Ключевое слово protected. Модификаторы наследования: public, private и protected. Права доступа при наследовании.
Цель работы: Используя принципы ООП писать программы на языке Java.
Абстракция. Наследование.
Java является объектно-ориентированным языком. Это означает, что писать программы на Java нужно с применением объектно-ориентированного стиля. И стиль этот основан на использовании в программе объектов и классов.
Основные принципы ООП:

Абстракция

Наследование

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

Полиморфизм
Попробуем с помощью примеров разобраться, что такое классы и объекты, а также с тем, как применять на практике основные принципы ООП: абстракцию, наследование, полиморфизм и инкапсуляцию.
Что такое объект?
Мир, в котором мы живем, состоит из объектов. Если мы посмотрим вокруг, то увидим, что нас окружают дома, деревья, автомобили, мебель, посуда, компьютеры. Все эти предметы являются объектами, и каждый из них обладает набором определенных характеристик, поведением и назначением. Мы привыкли к объектам, и мы их используем всегда для вполне конкретных целей. Например, если нам необходимо доехать до работы, мы пользуемся автомобилем, если захотим поесть – посудой, а если отдохнуть – нам понадобится удобный диван.
Человек привык мыслить объектно для решения задач в повседневной жизни. Это послужило одной из причин использования объектов в программировании, а такой подход к созданию программ назвали объектно-ориентированным.
Приведём пример. Представьте, что вы разработали новую модель телефона и хотите наладить её серийное производство. Как разработчик телефона, вы знаете для чего он нужен, как он будет функционировать, и из каких деталей он будет состоять (корпус, микрофон, динамик, провода, кнопки и т.д.). При этом только вы знаете, как соединить эти детали. Однако вы не планируете выпускать телефоны лично, для этого у вас есть целый штат работников. Чтобы вам не пришлось каждый раз объяснять, как соединить детали телефона, и чтобы все телефоны при производстве получались одинаковыми, прежде чем начать их выпуск, вам понадобиться сделать чертеж в виде описания устройства телефона.
В ООП такое описание, чертеж, схема или шаблон называется классом, из которого при выполнении программы создается объект.
Класс — это описание еще не созданного

объекта, как бы общий шаблон, состоящий из полей, методов и конструктора, а объект – экземпляр класса, созданный на основе этого описания.
Абстракция ООП
Давайте теперь подумаем, как нам перейти от объекта из реального мира к объекту в программе на примере телефона. История этого средства связи превышает 100 лет и современный телефон, в отличие от своего предшественника из 19 века, представляет собой куда более сложное устройство.
Когда мы пользуемся телефоном, то не задумываемся о его устройстве и процессах, происходящих внутри него. Мы просто используем функции, предоставленные разработчиками телефона — кнопки или сенсорный экран для выбора номера и совершения вызовов. Одним из первых интерфейсов телефона была рукоятка, которую нужно было вращать, чтобы сделать вызов. Разумеется, это было не очень удобно. Тем не менее, свою функцию рукоять исправно выполняла. Если посмотреть на самый современный и на самый первый телефон, можно сразу выделить самые важные детали, которые важны и для устройства конца 19-го века, и для суперсовременного смартфона. Это совершение вызова
(набор номера) и приём вызова. По сути это то, что делает телефон телефоном, а не чем-то другим. Сейчас мы применили принцип в ООП — выделение наиболее важных характеристик и информации об объекте.
Этот принцип ООП называется абстракцией.
Абстракцию в ООП можно также определить, как способ представления элементов задачи из реального мира в виде объектов в программе.
Абстракция всегда связана с обобщением некоторой информации о свойствах предметов или объектов, поэтому главное — это отделить значимую информацию от незначимой в контексте решаемой задачи. При этом уровней абстракции может быть несколько. Попробуем применить принцип абстракции к нашим телефонам. Для начала выделим наиболее распространённые типы телефонов от самых первых и до наших дней. Например, их можно представить в виде диаграммы, приведенной на рисунке 1.
Теперь с помощью абстракции мы можем выделить в этой иерархии объектов общую информацию: общий абстрактный тип объектов — телефон, общую

характеристику телефона — год его создания, и общий интерфейс — все телефоны способны принимать и посылать вызовы. Вот как это выглядит на Java:
public
abstract
class
AbstractPhone <
private
int
year;
public
AbstractPhone(
int
year) <
this
.year = year;
>
public
abstract
void
call
(
int
outputNumber);
public
abstract
void
ring (
int
inputNumber);
>
На основании этого абстрактного класса мы сможем создавать в программе новые типы телефонов с использованием других базовых принципов ООП Java, которые рассмотрим ниже.
Наследование
Давайте посмотрим еще раз на диаграмму телефонов. Можно заметить, что она представляет собой иерархию, в которой модель, расположенная ниже обладает всеми признаками моделей, расположенных выше по ветке, плюс своими собственными. Например, смартфон, использует сотовую сеть для связи
(обладает свойствами сотового телефона), является беспроводным и переносным
(обладает свойствами беспроводного телефона) и может принимать и делать вызовы (свойствами телефона). В этом случае мы можем говорить о наследовании свойств объекта.
В программировании наследование заключается в использовании уже существующих классов для описания новых.
Рассмотрим пример создания класса смартфон с помощью наследования. Все беспроводные телефоны работают от аккумуляторных батарей, которые имеют определенный ресурс работы в часах. Поэтому добавим это свойство в класс беспроводных телефонов:
public
abstract
class
WirelessPhone
extends
AbstractPhone <
private
int
hour;
public
WirelessPhone(
int
year,
int
hour) <
super
(year);
this
.hour = hour;
>
>
Сотовые телефоны наследуют свойства беспроводного телефона, мы также добавили в этот класс реализацию методов call и ring
:
public
class
CellPhone
extends
WirelessPhone <
public
CellPhone(
int
year,
int
hour) <
super
(year, hour);
>
@Override
public
void
call
(
int
outputNumber) <
System.out.
println
(
«Вызываю номер »
+ outputNumber);
>
@Override
public
void
ring
(
int
inputNumber) <
System.out.
println
(
«Вам звонит абонент »
+ inputNumber);
>
>

Источник

Оцените статью