Мне нужно использовать термин "пакет" в каждом классе

Во-первых, я пытаюсь изучить Java с помощью Java, A Beginner Guide, 4th Edition. Я использую Ubuntu как ОС и Netbeans как IDE. Мне нужно создать проект для создания класса при использовании netbeans.

Вот приложение my hello world.

class First{
    public static void main(String args[])
    {
        System.out.println("Hello!");
    }   
}

Но это возвращает много ошибок. Когда я помещаю строку package first; в верхнюю строку моего класса java, она запускается. Но книга не использует термин пакета. Является ли это правилом netbeans или что мне нужно знать об этом?

Ответ 1

Вам не нужно класть класс в пакет. Однако это почти всегда хорошая идея. Это то, что Netbeans настойчиво пытается побудить вас сделать.

Для небольших проектов использование пакета по умолчанию (то есть никакого пакета вообще) в порядке. Однако, как только ваш проект растет и начинает добавлять внешние библиотеки, могут случиться плохие вещи. Что, если кто-то решил использовать пакет по умолчанию и имел класс с одинаковым именем? Теперь, поскольку вы оба в одном пакете, могут возникнуть столкновения!

Структура вашего файла также должна отражать ваш пакет. То есть файл в package com.myurl.helloworld должен находиться в папке с именем com/myurl/helloworld. Это по тем же причинам, что и выше.

Кроме того, и вы, вероятно, не попали сюда в свои исследования, вы не можете импортировать классы из пакета по умолчанию или использовать модификатор видимости с учетом пакета в классе пакетов по умолчанию.

Ответ 2

Это потому, что автор Java, A Beginner Guide, 4th Edition скорее всего использовал "пакет по умолчанию". Таким образом, вам не нужно включать какой-либо пакет. Пакет - это объявление пространства имен.

Какая черта является объявлением пространства имен?? Объявление пространства имен - это просто пакет, который предназначен для организации ваших классов. Для примера, если у вас будет несколько классов, скажем, ваш графический интерфейс и несколько классов для алгоритмов, смешение их вместе всегда немного запутывает. Сортировка их в разных пакетах, однако, является превосходным решением.

Существует также соглашение об именах, которое вы должны соблюдать, если другие люди будут смотреть на ваш код. Пакеты должны быть названы в домене верхнего уровня. Я имею тенденцию создавать проекты SourceForge, а затем я получаю что-то вроде этого:

net.sourceforge.softwarename.security, net.sourceforge.softwarename.gui и т.д.

Также обратите внимание, что вы никогда не должны использовать верхний регистр при наименовании вашего пакета. Подробнее здесь.

При изучении программирования вы столкнетесь с множеством ситуаций, подобных этим. Они все являются частью игры. Вам просто нужно немного разобраться.

Лучшее, что я могу для вас сделать, это рекомендовать Eclipse. Кроме того, при изучении Java я бы предположил, что вы не используете IDE во ВСЕХ! Это потому, что вы научитесь самостоятельно программировать. Это зависит от вас.

Ответ 3

Пакет представляет собой каталог, который содержит связанную группу классов и интерфейсов.

Пакет представляет собой пространство имен, которое организует набор связанных классов и интерфейсы. Концептуально вы можете думать о том, что пакеты похожи на различные папки на вашем компьютере. Вы можете хранить HTML-страницы в одном папку, изображения в другой, а также скрипты или приложения в другом. Поскольку программное обеспечение, написанное на языке программирования Java, может быть состоящий из сотен или тысяч отдельных классов, он делает смысл держать вещи организованными, размещая связанные классы и интерфейсы в пакеты.

Ниже вы можете найти хорошие обсуждения в отношении пакетов java:

Ответ 4

Нет, вам не нужно класть пакет в свой класс, ЕСЛИ вы собираетесь импортировать его в другой класс, который будет в его собственном файле. Здесь присутствуют защищенные типы переменных, когда вы не хотите, чтобы они были конфиденциальными, но только для доступа к ним подклассов (или дочерних классов). Вам также не хватает общедоступного заявления для вашего класса, чтобы он выглядел как

public class First{
    public static void main(String[] args){
          System.out.println("Hello!");
       }


}