Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад]

Библиотека примеров приложений Java

Оглавление
Базовые типы

Замещающие типы
Без указателей
Массивы
Структурное программи-
рование

Обработка исключений
Возбуждение исключений
Классы обработки исключений
Блок finally
Строки String
Класс Math
Класс Vector
Класс Stack
Словарь на базе Hashtable
Словарь на базе Properties
Цифровые часы
Собственный класс
Наследование классов

Интерфейсы

Назад Вперед

1.17. Создание собственных классов

Пример демонстрирует создание собственного класса MyRect для хранения координат четырехугольника.

Исходный текст примера

Архив проекта для Java WorkShop 2.0

Немного теории

Одна из ключевых особенностей языка программирования Java - его объектная ориентированность. На базе богатого набора классов из стандартных библиотек Java программист может разрабатывать достаточно сложные приложения.

При необходимости нетрудно создать собственные классы, инкапсулирующие поведение различных объектов, создаваемых приложением Java. Эти классы образуются как на базе уже имеющихся (с применением механизма наследования), так и в виде самостоятельных объектов.

Внутри классов вы можете определять поля и методы, обрабатывающие содержимое этих полей.

Описание примера

В примере мы создаем простейший класс MyRect, который предназначен для хранения координат прямоугольника.

В этом классе мы определили четыре поля x1, y1, x2, y2, конструктор и два метода с именами setMyRect и toString:

class MyRect
{
  protected int x1;
  protected int y1;
  protected int x2;
  protected int y2;
  
  MyRect(int x1, int y1, int x2, int y2)
  {
    . . .
  }
  public void setMyRect(int x1, 
    int y1, int x2, int y2)
  {
    . . .
  }
  public String toString()
  {
     . . .
  }
}

Так как все поля определены с применением ключевого слова protected, доступ к ним имеют только методы класса MyRect и методы классов, созданных на базе класса MyRect.

Конструктор класса MyRect принимает четыре параметра:

MyRect(int x1, int y1, int x2, int y2)
{
  this.x1 = x1;
  this.y1 = y1;
  this.x2 = x2;
  this.y2 = y2;
}

Значения этих параметров переписываются в одноименные поля класса MyRect.

Обратите внимание на использование ключевого слова this. С его помощью мы сообщаем компилятору, что в левой части операторов присваивания происходит адресация полей класса для данного объекта, а не переменных, являющихся параметрами конструктора.

Заметим, что если бы имена параметров конструктора не совпадали с именами соответствующих полей, в применении this не было бы никакой необходимости. Вот, например, как вы можете переписать этот конструктор:

MyRect(int vx1, int vy1, int vx2, int vy2)
{
  x1 = vx1;
  y1 = vy1;
  x2 = vx2;
  y2 = vy2;
}

Метод setMyRect, так же как и конструктор, устанавливает значение полей класса:

public void setMyRect(int x1,
   int y1, int x2, int y2)
{
  this.x1 = x1;
  this.y1 = y1;
  this.x2 = x2;
  this.y2 = y2;
}

Для того чтобы этим методом можно было воспользоваться вне класса, он объявлен как public. Так как наш метод не возвращает никакого значения, он описан как void.

Заметим, что конструктор не может возвращать значения ни при каких условиях. Для него, тем не менее, нельзя указывать тип void.

Метод toString создает текстовую строку из координат прямоугольника и возвращает ее вызвавшему методу:

public String toString()
{
  String sz = "Object MyRect: (" +
    x1 + ", " + y1 + ", " +
    x2 + ", " + y2 + ")";
      
  return sz;
}

Метод main, получающий управление при запуске приложения, создает объект класса MyRect, вызывая конструктор соответствующего класса:

MyRect rect = new MyRect(0, 0, 10, 20);

Далее выполняется вызов метода toString, определенного в классе MyRect:

String szStr = rect.toString();

Текстовая строка с координатами прямоугольника отображается на консоли при помощи метода System.out.println:

System.out.println(szStr);

Для установки новых координат прямоугольника мы вызываем метод setMyRect, передавая координаты через параметры:

rect.setMyRect(100, 200, 300, 400);

Для того чтобы отобразить на консоли результат, мы вызываем метод toString из класса MyRect:

szStr = rect.toString();
System.out.println(szStr);

Вот что вы увидите на консоли, запустив нашу программу:

Object MyRect: (0, 0, 10, 20)
Object MyRect: (100, 200, 300, 400)

В первой строке отображаются координаты, какими они были при создании объекта, а во второй строке - после изменения методом setMyRect.

Назад Вперед

[Назад]