Может кофейку?

Patrick
2005-02-21

Это статья поможет вам написать свою первую программу. Итак, нам понадобится:

  • Java 2 SDK. JDK, которую можно скачать с сайта Sun Microsystems. Последней версией на момент написания статьи является J2SE 5.0(Номер версии 1.5 заменен на 5.0). Так что если у Вас еще нет свежей версии JDK, скачайте подходящий вам дистрибутив и установите его.
  • Текстовый редактор. Вполне можно обойтись Блокнотом, но он не очень удобен - отсутствует подсветка синтаксиса. Впрочем, не буду ничего советовать, просто воспользуйтесь свои любимым текстовым редактором.

Ваша первая программа

По сложившейся традиции первая программа на изучаемом языке программирования должна выводить строку "Hello, world". Создайте файл HelloWorld.java и введите с помощью текстового редактора следующий исходный код (source code) программы:

//HelloWorld.java
class HelloWorld { //Определение класса

    public static void main(String[] args) {
        //Выводит в консоль "Hello, World"
	System.out.println("Hello, World");
    }
}

Сохраняем наш файл HelloWorld.java в директорию на диске, например java. Запускаем командную строку и для компиляции исходного файла необходимо перейти в директорию с этим файлом.

Теперь обратимся к компилятору, чтобы преобразовать исходный код в байт-код(bytecodes) - инструкции, понятные для виртуальной машины Java (Java virtual machine). Байт-коды записываются в одном или в нескольких файлах, могут храниться во внешних носителях и передаваться по сети. Теперь можно приступить к компиляции, для этого в командной строке набирите следующую команду и жмем Enter:

javac HelloWorld.java

Для выполнения программы наберите в командной строке:

java HelloWorld

Если возникли проблемы, обратите внимание, что для выполнения нужно указать имя класса, т.е. HelloWorld, а не имя файла. Если указать имя файла HelloWorld.class, то класс не будет найден и возникнет такое исключение:

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class

Это означает, что класс не найден, а все потому, что интерпретатор java воспринимает HelloWorld как пакет(Пакет используется для логический группировки программных единиц Java), в котором находится класс с именем class, хотя класс с таким именем создать нельзя. Обратите внимание, что файл должен находиться в одной директории с javac и java, или путь к ним должен быть прописан у вас в PATH (в системном окружении: Система > Дополнительно > Переменные среды), или же укажите полный путь к компилятору C:\Progra~1\Java\jdk1.5.0\bin\java.

Каждая программа на Java есть класс. Класс может содержать поля (field) и методы (methods). Поля - это данные, принадлежащие либо самому классу, либо его объектам. Методы – это набор выражений, предназначенный для выполнения операций с полями объекта/класса и изменения его состояния. В приведенной выше программе объявляется класс с именем HelloWorld, который содержит всего один метод main. В Java этот метод имеет особое значение; метод main класса, объявленный так, как показано выше, выполняется, если запустить класс как приложение. При запуске метод main может создавать объекты, вычислять значения выражений, вызывать другие методы и делать все то, что вы в него заложили.

Ключевое слово public означает, что метод доступен другим классам, static означает, что метод принадлежит классу и не привязан ни к одному объекту(object), или, как еще говорят, экземпляру(instance), этого класса, void - он не возвращает никакого значения. Параметром метода main является массив строк args, содержащий аргументы, переданные программе в командной строке. В нашем примере тело(body)метода main содержит всего одино выражение, в котором вызывается метод println статического объекта out класса System. Для вызова метода необходимо указать объект и название метода, разделив их точкой (.). Метод println объекта out выводит в стандартный выходной поток строку текста и символ перехода на новую строку.

Комментарии

В Java предусмотрены комментарии трех видов. Текст, следующий за символами // вплоть до конца строки, игнорируется компилятором; то же самое относится и к тексту, заключенному между символами /* и */. Третий вид комментариев начинается с комбинации /** и заканчивается */. Комментарий, начинающийся с двух звездочек, является документирующим. Документирующие комментарии(doc comments) используются для описания назначения следующего за ними фрагмента программы. Инструментом для извлечения документирующих комментариев является программа javadoc, генерирующая по ним справочный файл в формате HTML.

Ваша первый апплет

Теперь мы создадим апплет(applet), который не является самостоятельной программой и может быть запущен из браузера с поддержкой java.

Впишите в файл следующий исходный код и сохраните его с именем HelloWorldApplet.java в директорию на диске:

//HelloWorldApplet.java
//<applet code="HelloWorldApplet" width=150 height=25>
//</applet>
import java.applet.Applet;
import java.awt.Graphics;

public class HelloWorldApplet extends Applet {
    public void paint(Graphics g) {
        //Выводит "Hello, World"
        g.drawString("Hello, World" , 50, 25);
    }
}

Пакеты для кофе

Две первые строки импортируют два дополнительных класса, которые используются в апплете: Applet и Graphics. Дополнительных, потому что существует целая библиотека классов java.lang, которая присоединяется автоматически к каждому файлу Java. Префиксы java.applet. и java.awt. сообщают компилятору в каких пакетах необходимо искать классы Applet и Graphics. Пакет(package) используется для логический группировки программных единиц Java и предоставляют механизм управления «пространством имен». Пакеты в Java являются именованными и могут импортироваться. Имена пакетов имеют иерархическую структуру, их компоненты разделяются точками. При использовании компонента пакета необходимо либо ввести его полное имя, либо импортировать пакет — целиком, для этого вместо имени класса нужно поставить знак (*), или частично. Приведем пример, в котором используются полные имена:

public class HelloWorldApplet extends java.applet.Applet {
    public void paint(java.awt.Graphics g) {
        //Выводит "Hello, World"
        g.drawString("Hello, World" , 50, 25);
    }
}

Классы Java всегда объединяются в пакеты. Имя пакета задается в начале файла:

package mypackage;

class {
//...
}

В Java существует соглашение писать имена пакетов только маленькими буквами. Если объявление package не было указано, класс становится частью безымянного пакета(unnamed package).

Посмотрим, что получилось

Создайте html-файл(например, applet.html) со следующим текстом:

<applet code="HelloWorldApplet" width=150 height=25></applet>

Компилируем

javac HelloWorldApplet.java

Можно посмотреть результат в браузере, запустив созданный вами html-файл, можно воспользоваться утилитой appletviewer, входящей в пакет JDK:

appletviewer Hello.html

Утилита appletviewer игнорирует весь html-код, кроме тега <applet>, поэтому его можно поместить в исходный файл программы в качестве комментария, как это сделано выше и для просмотра апплета выполнить команду:

appletviewer HelloWorldApplet.java

Если у вас есть какие-то вопросы - пишите.

Hosted by uCoz