"Bună, tânărul meu prieten. Sper că nu ai uitat că sunt un birocrat din generația a 16-a. Dacă nu mi-aș fi sistematizat toate cunoștințele, nu aș fi reușit niciodată ceea ce am. Sunt plin de informații utile. Vă voi ajuta cu câteva sarcini. Pentru început, permiteți-mi să vă spun despre un program tipic Java."

"Ascult."

"Faptul numărul unu. Un program Java este format din clase. Fiecare clasă este stocată într-un fișier individual, al cărui nume coincide cu numele clasei. Extensia fișierului este java ."

„Deci, un program constă dintr-o serie de fișiere cu extensia de fișier „java” și fiecare fișier conține cod pentru o singură clasă, nu ?

— Absolut corect, Amigo. Dacă un fișier se numește MyCat.java, acesta conține clasa MyCat.

„Faptul numărul doi. Când avem multe fișiere de clasă, le grupăm în foldere și subfoldere. În plus, clasele sunt grupate în pachete și subpachete. Numele pachetelor și subpachetelor trebuie să fie indicate în codul clasei și trebuie să fie identice cu numele folderelor și subfolderelor de pe unitate. "

„Astfel, pe de o parte, avem fișiere stocate în foldere, iar pe de altă parte – clase stocate în pachete. Un nume de clasă trebuie să coincidă și cu numele fișierului care descrie clasa. Numele pachetului coincide cu numele folderul în care este stocată clasa."

— Îmi poți da mai multe detalii?

„Numele pachetelor imbricate sunt împărțite pe puncte, aproape ca URL-uri.”

„Cu alte cuvinte, să presupunem că aveți o clasă numită Pisică, stocată într-un pachet animal.pets . Asta înseamnă:

Hard disk-ul are un folder (îl vom numi src ) în care sunt stocate toate fișierele de proiect.

Conține un folder numit animale , care, la rândul său, conține un subfolder pentru animale de companie.

Dosarul pentru animale de companie conține un fișier Cat .java, care, la rândul său, conține cod pentru clasa Cat ."

— Nu sunt sigur că înțeleg.

„Uite. Structura claselor și pachetelor reflectă structura folderelor și fișierelor de pe unitate. Dacă avem un fișier numit House .java, stocat în folderul src /com/houses , atunci există o clasă numită House , stocată în pachetul com.houses ."

"Am înţeles."

"Se pare că înțelegi asta destul de repede. Privește ecranul. Acesta este codul pentru o clasă mică. Am etichetat toate părțile cheie:"

PACKAGE NAME
package com.futujava.lesson2;
import java.io.IOException;
/**
 * User: General
 * Date: 12/21/12
 * Time: 11:59
 */
             CLASS NAME
public class Task1
{private static String TEXT = "Kiss my metal rear actuator";CLASS VARIABLE
                                                              ⎦
                                                                ⎤
   public static void main(String[] args) throws IOException{SCREEN OUTPUT                    SINGLE-LINE COMMENTSystem.out.println(TEXT); //Display a single string       ⎥
        MULTILINE COMMENT/*                                                        ⎥
        This is a multiline comment.                            ⎥
        The code below will display three identical strings.    ⎥ main() METHOD
       */VARIABLE DECLARATIONString s = "Ho-ho-ho!";METHOD CALLprintTextMoreTimes(s, 3);}                                                            ⎥
                                                                ⎦
                                          METHOD PARAMETERSpublic static void printTextMoreTimes(String s, int count)METHOD SIGNATURE
                                                              ⎦
                                                                ⎤
   {LOOPfor (int i = 0; i < count; i++)LOOP BODYMETHOD BODY/CODE
      {System.out.println(s);}}                                                            ⎥
                                                                ⎦
}

— Heh, este cât se poate de clar după o singură explicație.

"Bine! Asta este tot ce ne trebuie. Încearcă să înțelegi măcar ceva. O înțelegere completă va veni cu timpul. Acum, o să prind niște Z-uri. Altcineva vă va continua antrenamentul."