Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Практическое занятие № 5

Читайте также:
  1. Анализ бизнес среды: практическое использование моделей STEP/PEST, SLEPT
  2. ВЫШИВАНИЕ – ДОМАШНЕЕ ЗАНЯТИЕ, РЕМЕСЛО И ПРОМЫСЕЛ
  3. Глава 6. Первое занятие
  4. Гоулд С.Э., Рубин Р. Бизнес в стиле дзен: Практическое руководство для дзен - предпринимателя / Пер. – 2 – е изд. М.: Добрая книга, 2006. – 207 с. 3000 экз.
  5. Занятие 1
  6. Занятие 1. Манера речи Синдарин.
  7. Занятие 10-е. Тема: "Умение хоронить свои потери".
  8. Занятие 10. Одноатомные спирты. Тест по теме «Одноатомные спирты». Задачи и упражнения на одноатомные спирты.
  9. ЗАНЯТИЕ 11
  10. Занятие 12-е. Тема: "Я имею право".

 

Тема: «Объекты, классы и интерфейсы в программных приложениях Java».

Целью занятия является освоение навыков:

· объявления классов и интерфейсов;

· организация работы иерархии классов программного приложения;

· конструкции интерфейсов;

· организация инкапсуляции.

Задание: Разработать программу, в которой осуществляется построение классов и интерфейсов.

 

Текст Java – программы

 

public class Rect {

// Поля данных класса прямоугольник

public int x1, y1, x2, y2;

 

/**

* Метод Rect является главным конструктором класса. Он использует

* аргументы для инициализации полей нового объекта. Его имя

* совпадает с именем класса и не содержит возвращаемого значения

**/

public Rect(int x1, int y1, int x2, int y2) {

this.x1 = x1;

this.y1 = y1;

this.x2 = x2;

this.y2 = y2;

}

 

/**

* Еще один конструктор, определяющийся через предыдущий

**/

public Rect(int width, int height) { this(0, 0, width, height); }

 

/** Еще один конструктор. */

public Rect() { this(0, 0, 0, 0); }

 

/** перемещение прямоугольника на заданное расстояние */

public void move(int deltax, int deltay) {

x1 += deltax; x2 += deltax;

y1 += deltay; y2 += deltay;

}

 

/** Проверка: находится ли заданная точка внутри прямоугольника */

public boolean isInside(int x, int y) {

return ((x >= x1)&& (x <= x2)&& (y >= y1)&& (y <= y2));

}

 

/**

* Возвращение объединения прямоугольника с другим

**/

public Rect union(Rect r) {

return new Rect((this.x1 < r.x1)? this.x1: r.x1,

(this.y1 < r.y1)? this.y1: r.y1,

(this.x2 > r.x2)? this.x2: r.x2,

(this.y2 > r.y2)? this.y2: r.y2);

}

 

/**

* Возвращение пересечения прямоугольника с другим.

**/

public Rect intersection(Rect r) {

Rect result = new Rect((this.x1 > r.x1)? this.x1: r.x1,

(this.y1 > r.y1)? this.y1: r.y1,

(this.x2 < r.x2)? this.x2: r.x2,

(this.y2 < r.y2)? this.y2: r.y2);

if (result.x1 > result.x2) { result.x1 = result.x2 = 0; }

if (result.y1 > result.y2) { result.y1 = result.y2 = 0; }

return result;

}

 

/**

* Метод базового класса Object. Представляем его таким образом,

* чтобы с объектом Rect можно было работать как со строками, и

* передавать методу System.out.println()

**/

public String toString() {

return "[" + x1 + "," + y1 + "; " + x2 + "," + y2 + "]";

}

}

 

Пример: Демонстрация возможности применения класса Rect.

 

public class RectTest {

public static void main(String[] args) {

Rect r1 = new Rect(1, 1, 4, 4); // Создание объекта класса Rect

Rect r2 = new Rect(2, 3, 5, 6);

Rect u = r1.union(r2); // Вызов методов класса Rect

Rect i = r2.intersection(r1);

 

if (u.isInside(r2.x1, r2.y1)) // Используем поля Rect для вызова метода

System.out.println("(" + r2.x1 + "," + r2.y1 +

") содержится в объединении");

 

// Неявный вызов метода Rect.toString()

System.out.println(r1 + " объединение " + r2 + " = " + u);

System.out.println(r1 + " пересечение " + r2 + " = " + i);

}

}

 

Пример: Реализация подкласса в классе Rect. Класс DrawableRec наследует поля и методы класса Rect и добавляет собственный метод drow(), рисующий прямоугольник при помощи объекта библиотеки java.awt.Graphics.

 

public class DrawableRect extends Rect {

/** Конструктор DrawableRect вызывает конструктор класса Rect()*/

public DrawableRect(int x1, int y1, int x2, int y2) { super(x1,y1,x2,y2); }

 

/** Новый метод в классе DrawableRect */

public void draw(java.awt.Graphics g) {

g.drawRect(x1, y1, (x2 - x1), (y2-y1));

}

}

 

Пример: Следующий подкласс, наследующий поля и методы классов DrawableRect и Rect, добавляет два новых поля, задающих цвет рамки и цвет заполнения изображаемого прямоугольника.

 

import java.awt.*;

 

/**

* Этот класс является подклассом DrawableRect и добавляет цвет

**/

public class ColoredRect extends DrawableRect {

// Новые поля, определяемые классом.

// Поля x1, y1, x2, и y2, наследуемые от класса Rect.

protected Color border, fill;

 

/**

* Конструктор использует super() для вызова конструктора базового

* класса.

**/

public ColoredRect(int x1, int y1, int x2, int y2,

Color border, Color fill)

{

super(x1, y1, x2, y2);

this.border = border;

this.fill = fill;

}

 

/**

* Метод замещает метод draw() базового класса

* для задания цвета.

**/

public void draw(Graphics g) {

g.setColor(fill);

g.fillRect(x1, y1, (x2-x1), (y2-y1));

g.setColor(border);

g.drawRect(x1, y1, (x2-x1), (y2-y1));

}

}

 




Дата добавления: 2015-09-11; просмотров: 28 | Поможем написать вашу работу | Нарушение авторских прав

ВВЕДЕНИЕ | Глава 1.1. Особенности разработки программы на языке Java | Практическое занятие № 1 | Практическое занятие № 2 | Практическое занятие № 3 | Практическое занятие № 7 | Пример 2.1. | Пример 2.2. | Глава 2.2. Графические интерфейсы пользователя в Java | Компоненты. |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.014 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав