Материал предоставлен https://it.rfei.ru

Члены классов: поля и методы

В примере 1.1 описан класс CharStack, изображенный на рис. 1.1. Его цель состоит в том, чтобы продемонстрировать основные черты описания класса в Java, а не в демонстрации эффективной реализации стека.

Описание класса состоит из последовательности объявлений членов класса. В случае класса CharStack он имеет два поля:

  • stackArray, которое является массивом, хранящим элементы стека (в нашем случае символы);
  • topOfStack, который показывает вершину стека (т. е. индекс последнего символа, сохраненного в массиве).

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

  • push() помещает символ в стек;
  • pop() удаляет элемент и возвращает верхний элемент стека;
  • peek() возвращает верхний элемент стека, не удаляя его;
  • isEmpty() определяет, является ли стек пустым;
  • isFull() определяет, не полон ли стек.

В описании класса также присутствуют объявления, похожие на объявления методов, но с именем, как у класса, например, в строке (2). Подобные объявления называются конструкторами. Как мы увидим далее, конструктор выполняется, когда создается объект из данного класса. Однако детали реализации примера не важны для настоящего рассмотрения.

Пример 1.1. Основные элементы в описании класса

// Имя исходного файла: CharStack.java
public class CharStack {  // Имя класса

  // Объявления класса

  // (1) Поля:

  private char[] stackArray;  // Массив, реализующий стек
  private int topOfStack;     // Вершина стека

  // (2) Конструктор:

  public CharStack(int n) {
    stackArray = new char[n];
    topOfStack = -1;
  }

  // (3) Методы:

  public void push(char element) {
    stackArray[++topOfStack] = element;
  }

  public char pop() {
    return stackArray[topOfStack--];
  }

  public char peek() {
    return stackArray[topOfStack];
  }

  public boolean isEmpty() {
    return topOfStack < 0;
  }

  public boolean isFull() {
    return topOfStack == stackArray.length - 1;
  }

}
КлассыОбъекты