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

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

ределяет метод main (). Классы Java вообще могут включать метод main о. Вы определяете этот метод, только если класс является стартовой точкой вашей программы. Кроме того, апплеты вообще не используют метод main ().

Программисты C++ обратят внимание, что объявление класса и реализация методов хранятся в одном месте и не определяются отдельно. Это иногда при­водит к очень большим исходным (Java) файлам, т. к. любой класс должен быть полностью определен в одном исходном файле. Данное проектное свой­ство было встроено в Java потому, что, в конечном счете, хранение специфи­кации, объявления и реализации в одном месте упрощает поддержку кода.

Простой класс

Начнем наше изучение класса с простого примера. Предположим, имеется класс с именем box, который определяет три переменных экземпляра: width, height и depth. Пока что класс box не содержит никаких методов (но вскоре они будут добавлены).

class Box {

double width;

double height;

double depth; }

Как было сказано выше, класс определяет новый тип данных. В этом случае новый тип данных называется box. Вы будете использовать это имя для объ­явления объектов типа box. Важно помнить, что объявление класса создает только шаблон, а не фактический объект. Таким образом, предшествующий код не приводит к появлению каких-либо объектов типа box. Чтобы факти­чески создать Box-объект, можно воспользоваться следующим утверждением:

Box mybox = new Box(); // создать Box-объект с именем mybox

После выполнения этого утверждения переменная mybox станет экземпляром класса box, становясь той самой "физической" реальностью. Пока не беспо­койтесь относительно деталей данного утверждения.

Всякий раз, когда вы создаете экземпляр класса, образуется объект, который содержит свою собственную копию каждой экземплярной переменной, оп­ределенной в классе. Таким образом, каждый Box-объект будет содержать свою собственную копию переменных width, height и depth. Для доступа к этим переменным необходимо использовать операцию "точка" (.) Она свя­зывает имя объекта с именем переменной экземпляра. Например, чтобы на­значить переменной width объекта mybox значение 100, нужно использовать следующий оператор:

mybox.width = 100;

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

Этот оператор просит компилятор назначать копии переменной width, ко­торая содержится в объекте mybox, значение 100. В общем случае, чтобы об­ращаться как к переменным экземпляра, так и к методам объекта, следует указывать операцию "точка". Далее предлагается законченная программа, которая использует Box-класс.

/* Программа, которая использует Box-класс.

Назовите этот файл BoxDemo. j ava */ class Box {

double width;

double height;

double depth; }

// Этот класс объявляет объект типа Box. class BoxDemo {

public static void main(String argsf]) {

Box mybox = new Box();

double vol;

// присвоить значения экземплярным переменным объекта mybox mybox.width = 10; mybox.height = 20; mybox.depth = 15;

// вычислить объем блока

vol = mybox.width * mybox.height * mybox.depth;

System.out.println("Объем равен " + vol); } }

Вы должны назвать файл, который содержит эту программу, BoxDemo.java, потому что метод main ( ) находится в классе с именем BoxDemo, а не в классе с именем box. После компиляции программы вы обнаружите, что были соз­даны два файла с расширением .class — один для Box-класса и один для класса BoxDemo. Java-компилятор автоматически помещает каждый класс в его собственный class-файл. Нет необходимости в том, чтобы классы box и BoxDemo находились в одном исходном файле. Можно было поместить каждый класс в свой собственный файл с именами Box.java и BoxDemo.java, соответственно.

Чтобы выполнить данную программу, нужно выполнить BoxDemo. class. Когда вы сделаете это, то увидите следующий вывод:

Объем равен 3000.0

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