Структура на Java проект
Преди изучаването на по-големи Java програми е необходимо да се разбере как е организиран един Java проект – какво представляват пакети, класове, методът main, както и различните файлове, генерирани при компилация.
Пакет (Package)
Пакет е механизъм за организиране на класове и интерфейси в Java. Пакетът може да се разглежда като папка в файловата система.
Пакетите служат за:
- групиране на сходни класове;
- избягване на конфликти в имената;
- контрол на достъпа.
Пример за дефиниция на пакет:
package myproject;
Този ред трябва да стои първи в Java файла. Всички класове в него ще бъдат част от пакета myproject.
Клас (Class)
В Java програмите се състоят от класове. Класът е шаблон, който описва обекти. По правило един .java файл съдържа един публичен клас, чието име съвпада с името на файла.
Пример:
public class HelloWorld {
// Тяло на класа
}
Ако файлът се казва HelloWorld.java, публичният клас във файла трябва да бъде HelloWorld.
Методът main
Изпълнението на Java програма започва от метода main. Това е входната точка:
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
Обяснение:
- public – методът е достъпен извън класа;
- static – не е необходимо създаване на инстанция за извикване;
- void – методът не връща стойност;
- String[] args – масив от аргументи, подадени от командния ред.
Файлове в Java проект
При работа с Java се използват няколко основни типа файлове:
-
Изходен код (.java)
Текстови файлове, в които се записва програмният код.
Пример: HelloWorld.java -
Байткод (.class)
След компилация с javac, .java файловете се превръщат в .class файлове (които съдържат bytecode). Този байткод се изпълнява от JVM.
Пример: HelloWorld.class -
JAR файлове (.jar)
Java ARchive – архив, който съдържа множество .class файлове и ресурси. Използва се за разпространение и пускане на приложения.
Примерна структура на проект
MyProject/
├── src/
│ └── mypackage/
│ └── HelloWorld.java
└── out/
└── mypackage/
└── HelloWorld.class
- В папката src/ се намират изходните .java файлове.
- След компилация в папката out/ се генерират съответните .class файлове.
- Папката mypackage съответства на пакета, който съдържа класа.