Programadores são um grupo organizado quando se trata de escrever código. Eles gostam de organizar seus programas para que fluam de maneira lógica, chamando blocos de código separados, cada um com um trabalho específico. A organização das classes que eles escrevem é feita através da criação de pacotes.
Um pacote permite que um desenvolvedor agrupe classes (e interfaces). Todas essas classes serão relacionadas de alguma forma - elas podem estar relacionadas a um aplicativo específico ou a executar um conjunto específico de tarefas. Por exemplo, o Java A API está cheia de pacotes. Um deles é o pacote javax.xml. Ele e seus subpacotes contêm todas as classes na API Java relacionadas ao manuseio XML.
Para agrupar classes em um pacote, cada classe deve ter uma instrução de pacote definida na parte superior.arquivo java. Ele permite que o compilador saiba a qual pacote a classe pertence e deve ser a primeira linha de código. Por exemplo, imagine que você está fazendo um simples jogo de Battleships. Faz sentido colocar todas as classes necessárias em um pacote chamado encouraçados:
É onde todas as classes pertencentes a esse pacote são armazenadas. Por exemplo, se o pacote de navios de guerra contiver as classes GameBoard, Ship, ClientGUI, haverá serão arquivos chamados GameBoard.java, Ship.java e ClientGUI.java armazenados em uma chamada de diretório encouraçados.
Por exemplo, o nome do pacote javax.xml mostra que XML é um subpacote do pacote javax. Ele não para por aí, no XML existem 11 subpacotes: bind, criptografia, tipo de dados, namespace, analisadores, sabão, fluxo, transformação, validação, ws e XPath.
Os diretórios no sistema de arquivos devem corresponder à hierarquia de pacotes. Por exemplo, as classes no pacote javax.xml.crypto estarão em uma estrutura de diretórios.. \ javax \ xml \ crypto.
Mas, no que diz respeito ao compilador, cada pacote é um conjunto distinto de classes. Ele não vê uma classe em um subpacote como parte de seu pacote pai. Essa distinção se torna mais aparente quando se trata de usar pacotes.
Em empresas de software e grandes projetos, onde os pacotes podem ser importados para outras classes, os nomes precisam ser distintos. Se dois pacotes diferentes contiverem uma classe com o mesmo nome, é importante que não haja conflito de nomes. Isso é feito garantindo que os nomes dos pacotes sejam diferentes iniciando o nome do pacote com o domínio da empresa, antes de serem divididos em camadas ou recursos: