Мне нужно использовать термин "пакет" в каждом классе
Во-первых, я пытаюсь изучить 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!");
}
}