Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
12.05.2015
Размер:
1.82 Mб
Скачать

Глава 6. Введение в классы

Box Ы = new Box ();

Box Ь2 = Ы;

// ...

Ы = null;

Зйесьь! был установлен в null, но Ь2 все еще указывает на первоначальный

Когда вы назначаете одну ссылочную переменную объекта другой (ссылочной переменной объекта), вы не создаете копии объекта, а делаете только копию ссылки.

Рис 6.2. Две ссылки на один и тот же объект

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

Как упоминалось в начале этой главы, классы обычно состоят из двух видов компонентов — переменных экземпляра и методов. Раздел методов весьма обширен, потому что Java наделяет их большой мощью и гибкостью. Нема­лая часть следующей главы посвящена методам. Однако, чтобы приступить к добавлению методов к классам, некоторые основные принципы нужно изучить сейчас.

Общая форма метода такова:

type паше (parameter-list) {

// тело метода }

Здесь type определяет тип данных, возвращаемых методом. Это может быть любой допустимый тип, включая типы классов, которые вы создаете. Если метод не возвращает значения, его возвращаемый тип должен быть void. name определяет имя метода. Это может быть любой допустимый идентифи-. катор, но отличающийся от тех, что уже используются другими элементами в пределах текущей области действия имен. Parameter- i±st — это последо­вательность пар тип-идентификатор, разделенных запятыми. Параметры —

142 Часть I. Язык Java

это, по существу, переменные, которые принимают значения аргументов, посылаемых методу во время его вызова. Если метод не имеет параметров, то список параметров будет пуст.

Методы, у которых тип возвращаемого значения отличен от void, возвра­щают значение вызывающей подпрограмме, используя следующую форму оператора return:

return value;

Здесь value — возвращаемое значение.

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

Добавление метода к классу Box

Хорошо, конечно, создавать класс, который содержит только данные, но это случается редко. Большую часть времени приходится использовать методы для доступа к экземплярным переменным, которые определены в классе. Фактически, именно методы определяют интерфейс с большинством клас­сов. Они позволяют разработчику класса скрывать специфическое размеще­ние внутренних структур данных за более ясными абстракциями метода. Кроме методов, которые обеспечивают доступ к данным, можно также оп­ределять методы, использующиеся внутри самого класса.

Начнем с добавления метода к Box-классу. Глядя на предыдущие програм­мы, вполне может показаться, что вычисление объема блока было бы лучше выполнять в Box-классе, а не в классе вохОето. И, наконец, т. к. объем блока зависит от его размера, то имеет смысл поручить это вычисление Box-классу. Для этого нужно добавить метод в класс box, как показано в следующей программе:

// Эта программа включает метод внутрь класса Box.

class Box { double width/­double height; double depth;

// показать объем блока void volume () {

System.out.print("Объем равен ");

System.out.println(width * height * depth); } }

class BoxDemoS (

public static void main(String args[]} {

Соседние файлы в папке JavaLit