Пять уроков по Java

Коротко о Java


Язык Java - это объектно-ориентированный язык программирования, ведущий свою историю от известного языка C++. Но в отличие от последнего Java является языком интерпретируемым, программы, написанные на нем, способны работать в разных местах сети и не зависят от платформы, на которой выполняются написанные на нем приложения. Java сознательно избегает арифметики с указателями и прочих ненадежных элементов, которыми изобилует C++, поэтому, разрабатывая на нем приложения, вы предотвратите многие проблемы, обычные при создании программного обеспечения.

В терминах языка Java маленькое приложение, которое встраивается в страницу Web, называется аплет. Собственно говоря, создание аплетов - основное применение для Java. Аплеты снискали себе звание подлинных украшений для Web. Аплет может быть и окном анимации, и электронной таблицей, и всем, что только можно себе представить. Но это не значит, что на Java нельзя писать нормальные приложения с окнами. Этот язык программирования изначально был создан для обычных приложений, выполняющихся в Internet и интрасетях, и уж потом стал использоваться для изготовления аплетов.

Элементарные строительные блоки в Java называются классами (как и в C++). Класс состоит из данных и кода для работы с ними. В средствах для разработки на языке Java все стандартные классы, доступные программисту, объединены для удобства в упаковки - еще одни элементарные блоки Java-программ.

Вот простейшая программа, приводимая во многих учебниках по Java:

class JavaTest

{

public static void main(String args[])

{

System.out.println("Hello, World!");

}

}

Запустим компилятор Java под названием javac и получим готовый класс Java - JavaTest.class. Если вы хотите посмотреть, как этот класс работает, выполните его при помощи команды java JavaTest. При этом необходимо набрать имя запускаемого класса точно так, как оно написано в исходном тексте программы, т.е. с соблюдением регистра, иначе вы получите сообщение об ошибке.

Рассмотрим поэлементно исходный текст нашего примера. Вся программа состоит из одного класса с именем JavaTest. У этого класса имеется единственный метод main, аналогичный функции main в языках программирования C и C++ и определяющий место, с которого программа начинает выполняться (так называемая точка входа). Модификатор доступа public перед именем метода main указывает на то, что этот метод доступен всем классам, желающим его вызвать, независимо от прав доступа и от места их расположения. Модификатор static говорит о том, что для всех экземпляров класса CafeTest и в наследуемых от него классах существует лишь один метод main, разделяемый между всеми классами, которые, возможно, будут унаследованы от JavaTest. Это помогает избежать появления множества точек входа в программу, что вызовет ошибку.




Через переменную-массив args типа String (строка) передаются параметры командной строки класса. В Java первый элемент списка параметров соответствует первому параметру, а не имени запускаемой программы, как это принято в языках C и C++. Доступ к нему можно осуществить через выражение args[0]. Строка System.out.println("Hello, World!") посылает строку текста в стандартный поток вывода, т. е. на экран. Мы отправляем сообщение стандартному классу System, который отвечает за основные системно-независимые операции, например вывод текста на консоль. А уже из этого класса мы вызываем класс стандартного потока вывода. Следом идет вызов метода println, который, собственно, и отображает строку текста на экране монитора, по завершению чего переводит курсор на следующую строку. В Java все методы класса описываются только внутри него. Таким образом, отпадает необходимость в передвижении по тексту в поиске методов классов.

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

Если вы освоите содержимое упаковки Java с именем java.awt, которая расшифровывается как Abstract Windowing Toolkit (Набор абстрактной работы с оконной системой), то вам откроются неисчислимые возможности по созданию интерфейсов и оконной графики. Эта упаковка обеспечивает машинно-независимый интерфейс управления оконной системой любой оконной операционной системы. В состав java.awt входят более 40 классов, отвечающих за элементы графической среды пользователя (GUI). В основном awt применяется при написании аплетов для страниц Web. При просмотре страницы на Web-сервере аплет передается на машину пользователя, где и запускается на выполнение.

Теперь мы можем рассмотреть аплет, который делает то же самое, что и уже рассмотренный ранее пример, т. е. выводит строку на экран:



import java.awt.*;

public class JavaTest

extends java.applet.Applet

{

public void init() {}

public void paint(Graphics graph)

{

graph.drawString("Hello, World!",20,30);

}

}

Первой строкой в аплет включаются все необходимые классы из упаковки java.awt, о которой мы только что говорили. Ключевое слово import имеет приблизительно то же значение, что и оператор #include языков C и C++. Далее следует описание класса нашего аплета, предваряемое модификатором доступа public. Его задача - дать возможность использовать наш класс извне, т. е. запускать его из внешних программ. Если этого слова не будет, компилятор выдаст сообщение об ошибке, указав, что аплету требуется описание интерфейса доступа. Далее следует ключевое слово extends и название класса. Так в Java обозначается процесс наследования. Этим словом мы указываем компилятору унаследовать (расширить) стандартный класс java.applet.Applet, отвечающий за создание и работу аплета. Метод init вызывается в процессе инициализации аплета. Сейчас этот метод пуст, но впоследствии, возможно, вы будете пользоваться им для своих нужд. За отображение строки отвечает другой метод - paint. Он вызывается в тот момент, когда требуется перерисовать данные на экране. Здесь с помощью метода drawString стандартного класса Graphics рисуется строка "Hello, World!" с экранными координатами 20,30.


Содержание раздела