2013-07-22 2 views
12

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

Вот мое приложение мира привет.

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

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

+1

Это объявление пространства имен, специфичное для Java, а не требование Netbeans. http://en.wikipedia.org/wiki/Java_package –

+1

Хорошо, я понимаю. Когда я перемещаю свой класс из пакета, мне не нужно использовать термин пакета. – Yusuf

ответ

15

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

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

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

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

10

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

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

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

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

отметить также, что вы никогда не должны использовать верхний регистр при именовании пакета. Больше информации here.

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

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

+1

Вы написали хороший ответ, но вы на самом деле не объяснили бедному парню, как работают пакеты. Пакеты были на Java с самого начала, поэтому книга, опускающая ее, не является проблемой старой книги и устаревшей. И это не будет волшебно решено, переключившись на Eclipse (или любую другую IDE). –

+1

Не могли бы вы сейчас убрать эту неприязнь? – Scientious

+0

Я бы предпочел использовать ту же среду IDE, которую вы будете использовать по той причине, что вы изучаете Java, таким образом, вы не просто обезьяна, застрявшая в блокноте, а все остальные очень продуктивны. – ProfK

1

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

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

Ниже вы можете найти некоторые хорошие дискуссии относительно пакетов Java:

1

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

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


} 
Смежные вопросы