Язык и архитектура Java


Объектная модель Java - часть 3


Переменные и методы класса

Как и С++ язык Java позволяет использовать переменные и методы, принадлежащие классу целиком. Для определения их используется ключевое слово static. Естественно, что методы самого класса не могут оперировать данными и методами объекта класса, т.к. они не относятся ни к какому определенному объекту.


Например, версия реализации класса Rectangle может быть задана следующим образом:

class Rectangle extends Object {

static final int version = 2 ;

static final int revision = 0 ;

}

Ключевое слово final означает, что значение поля окончательное и изменению не подлежит (это константа).

Абстрактные методы

Абстрактные методы -- это методы, для которых в данном классе не определена их реализация. Мы указываем лишь на необходимость наличия методов с данным протоколом. Конкретная реализация должна быть осуществлена классами-наследниками. В то же время остальная, "неабстрактная" часть класса может содержать конкретную информацию, которая может быть использована производными классами. Например

abstract class Graphical extends Object

{

protected Point lowerLeft;

protected Point upperRight;

...

public void setPosition(Point ll, Point ur)

{

lowerLeft = ll;

upperRight = ur;

}

abstract void drawMyself();

}

class Rectangle extends Graphical

{

void drawMyself()

{

....

}

}

Здесь мы описали класс Graphical. В нем объявлено свойство всех графических элементов иметь какое-то положение на плоскости. Каждый элемент обязан также иметь метод для рисования самого себя, однако никакого метода рисования по-умолчанию быть не может. Класс Rectangle, представляющий собой конкретную реализацию для типа Graphical, реализует также этот метода для объекта прямоугольной формы.

Класс, содержащий хотя бы один абстрактный метод, должен быть объявлен как абстрактный. По понятным причинам создание экземпляров такого класса невозможно.




Начало  Назад  Вперед



Книжный магазин