Может кофейку?
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
Если у вас есть какие-то вопросы - пишите.