— Привет, мой юный друг. Надеюсь, ты не забыл, что я — бюрократ в 16-м поколении. Если бы я не систематизировал все знания, которые у меня есть, то никогда бы не добился таких высот. У меня куча разной справочной информации. Я буду помогать тебе с некоторыми задачами. Давай для начала я расскажу тебе, что представляет собой типичная программа на Java.

— Да, я слушаю.

— Факт первый. Программа на Java состоит из классов. Каждый класс хранится в отдельном файле. Имя файла совпадает с именем класса, расширение файла – java.

— Программа состоит из набора файлов с расширением java, и в каждом файле написан код одного класса, так?

— Абсолютно правильно, Амиго! Если файл называется MyCat.java, то он содержит класс MyCat.

— Факт второй. Когда у нас много файлов с классами, мы группируем их в папки и подпапки. Классы при этом группируются по пакетам и подпакетам. Имена пакетов и подпакетов нужно указывать в коде класса, и они должны совпадать с именами папок и подпапок на диске.

— Т.е. с одной стороны у нас есть файлы, разложенные по папкам, а с другой — классы, разложенные по пакетам. При этом имя класса обязано совпадать с именем файла, в котором этот класс описан. А имя пакета совпадает с именем папки, в которой хранится класс.

— А можно больше подробностей?

— Имена вложенных пакетов описываются через точку, почти как ссылки в интернете.

— Т.е. если у тебя есть класс Cat, который лежит в пакете “animals.pets”, то это значит, что:

  1. На диске есть папка, например src, где хранятся все файлы проекта;
  2. В ней есть папка animals, в которой есть папка pets,
  3. В папке pets есть файл Cat.java, который и содержит код класса Cat.

— Вроде понял, но не уверен.

— Смотри, структура классов и пакетов полностью повторяет структуру папок и файлов на диске. Если есть файл House.java, который лежит в папке src/com/houses/, то это значит, что существует класс House, который находится в пакете com.houses.

— Понял.

— А ты сообразительный малый. Внимание на экран — вот код небольшого класса. Я подписал все ключевые моменты:

ИМЯ ПАКЕТА
package com.futujava.lesson2;
import java.io.IOExсeption;
/**
 * User: General
 * Date: 12/21/12
 * Time: 11:59
 */
             ИМЯ КЛАССА
public class Task1
{private static String TEXT = "Kiss my metal shiny ass"; ⎥ ПЕРЕМЕННАЯ КЛАССА
                                                           ⎦
                                                                ⎤
   public static void main(String[] args) throws IOExсeption    ⎥
   {                                                            ⎥
      ВЫВОД ТЕКСТА НА ЭКРАН       ОДНОСТРОЧНЫЙ КОММЕНТАРИЙ      ⎥
      System.out.println(TEXT); //Выведет на экран одну строку  ⎥
        МНОГОСТРОЧНЫЙ КОММЕНТАРИЙ                               ⎥
      /*                                                        ⎥
        Это многострочный комментарий.                          ⎥
        Код ниже выведет на экран три одинаковые строчки.       ⎥ МЕТОД main()
       */                                                       ⎥
      ОБЪЯВЛЕНИЕ ПЕРЕМЕННОЙ                                     ⎥
      String s = "Ho-ho-ho!";                                   ⎥
      ВЫЗОВ МЕТОДА                                              ⎥
      printTextMoreTimes(s, 3);}                                                            ⎥
                                                                ⎦
                                         АРГУМЕНТЫ МЕТОДА     ⎤
   public static void printTextMoreTimes(String s, int count) ⎥ ЗАГОЛОВОК МЕТОДА
                                                              ⎦
                                                                ⎤
   {                                                            ⎥
      ЦИКЛ                                                      ⎥
      for (int i = 0; i < count; i++)                           ⎥
      ТЕЛО ЦИКЛА                                                ⎥ ТЕЛО/КОД МЕТОДА
      {System.out.println(s);}}                                                            ⎥
                                                                ⎦
}

— Все понятно, насколько это может быть понятно с первого раза. Хе-хе.

— Молодец! Много и не надо. Ты главное хоть что-нибудь пойми, а полное понимание придет со временем. Теперь я пойду спать, а тобой займётся кто-нибудь ещё.