Структура на 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 съответства на пакета, който съдържа класа.