Package com company что это java
Перейти к содержимому

Package com company что это java

  • автор:

Пакеты классов, package

Пакет package позволяет логически объединить классы в наборы. Основные классы java входят в пакет java.lang. Различные вспомогательные классы располагаются в пакете в java.util. Классы для ввода и вывода входят в пакет java.io, а классы для работы в сети – в java.net. Некоторые их этих пакетов содержат подпакеты. Так, например, java.lang содержит два специализированных пакета java.lang.reflect и java.lang.ref, а java.util содержит подпакет java.util.zip, который включает классы для работы с ZIPархивами.

Каждый класс имеет как простое имя, данное ему в определении, так и полное имя, включающее имя пакета, в который он входит. Например, класс String является частью пакета java.lang, а его полное имя – java.lang.String.

Структура пакетов в точности отображает структуру файловой системы. Все файлы с исходными кодами (java-класс) и байт-кодами (расширением class), образующие один пакет, хранятся в одном каталоге файловой системы. Подпакеты образуют подкаталоги этого каталога. Каждый пакет создает единое пространство имен namespace. Это означает, что все имена классов и интерфейсов в пакете должны быть уникальны. Имена в разных пакетах могут совпадать, но это будут разные программные модули. Организация классов в виде пакетов позволяет избежать конфликта имен между классами. В пакете дублирование имен классов не допускается. Принадлежность класса к пакету позволяет гарантировать однозначность имен.

Чтобы указать, что класс принадлежит определенному пакету, следует использовать директиву package, после которой указывается наименование (путь) пакета :

package company.common; public class HelloWorld < public static void main(String[] args)< System.out.println ("Привет, мир!"); >>

В данном примере класс HelloWorld располагается в пакете company.common. Физически это директория «$/company/common». При создании класса в среде разработки IDE (например, Eclipse) следует указать наименование пакета, тогда IDE самостоятельно при необходимости создаст каталог на жестком диске и разместит новый класс в этом каталоге.

Можно package в классе не определять. В этом случае класс будет находиться в пакете по умолчанию, который не имеет имени «$», т.е. класс будет располагаться в корневой директории исходных кодов проекта.

Наименование пакета может быть любым, но необходимо соблюдать его уникальность в проекте. Соглашение «Code Conventions» рекомендует записывать имена пакетов строчными буквами. Тогда они не будут совпадать с именами классов, которые, по соглашению, начинаются с прописной буквы.

Стандартная библиотека Java API включает сотни классов. Каждый программист в ходе работы создает десятки своих классов. Множество классов быстро увеличивается. Java позволяет отдельные классы, решающие определенную задачу (или несколько задач), объединять в библиотеки классов в виде архивов jar. Но эти библиотеки классов, кроме стандартных, не являются частью языка java.

Импорт пакетов и классов, import

Для использования класса в приложении, его следует подключить. Так расположенный в пакете java.util класс Scanner можно подключить следующим способом :

java.util.Scanner in = new java.util.Scanner(System.in);

В этом примере при определении/создании нового объекта был указыван пакет (полный путь к файлу). Однако данный подход не всегда удобен, и в качестве альтернативы можно импортировать пакеты и классы в приложение с помощью директивы import, которая указывается после директивы package :

package company.common; import java.util.Scanner; public class HelloWorld < public static void main(String[] args)< Scanner in = new Scanner(System.in); >>

Директива import указывается в самом начале кода, после чего идет имя подключаемого класса (класс Scanner в примере).

В примере был подключен только один класс. Однако пакет java.util содержит большое количество разных классов. И чтобы не подключать по отдельности каждый класс, можно сразу подключить весь пакет :

import java.util.*; // импорт всех классов из пакета java.util

Теперь можно использовать любой класс из пакета java.util.

Возможна ситуация, когда используется два класса с одинаковым наименованием, но из разных пакетов. Это относится, например, к классам Date, которые имеются в пакете java.util и в пакете java.sql, или классам List пакетов java.util и java.awt. И если необходимо одновременно использовать оба эти класса, то необходимо указывать полный путь к классам в пакете :

java.util.Date udate = new java.util.Date(); java.sql.Date sdate = new java.sql.Date();

Следует сказать, что основные классы из пакета java.lang (например, String) подключаются автоматически и не требуют «импортирования».

Статический импорт классов, import static

В java можно использовать статический импорт. Для этого вместе с директивой import используется модификатор static :

package company.common; import static java.lang.Math.*; import static java.lang.System.*; public class HelloWorld < public static void main(String[] args) < double result = sqrt(20); out.println(result); >>

В примере определяется статический импорт классов System и Math, которые имеют статические методы. Определение статического импорта позволяет использовать статические методы без названия класса. В примере статическая функция sqrt(20) (можно и Math.sqrt(20)), возвращает квадратный корень числа. То же самое относится и к классу System, в котором определен статический объект out, поэтому можно его использовать без указания класса, если выполнен статический импорт класса System.

Пример использования классов разных пакетов

Рассмотрим простенький проект PackageExample, включающий 3 java-класса. Два java-класса располагаются в одном пакете «ru.java.online», а третий — в другом «ru.java.online.classes». Структура проекта представлена на следующем скриншоте:

Листинг базового класса, BaseClass.java

Базовый класс включает 2 поля (id, name) и методы get/set. В конструкторе значения полей инициализируется.

package ru.java.online; public class BaseClass < private String protected String name = null; public BaseClass() < this.id = "default"; this.name = "Наименование не определено"; >public String getId() < return id; >public void setId(String id) < this.id = id; >public String getName() < return name; >public void setName(String name) < this.name = name; >@Override public String toString() < return this.getClass().getName() + "\n\t"; > >

Переопределенная функция toString() возвращает наименование класса и значение полей.

Листинг наследника, Inheritor.java

Класс Inheritor.java наследует свойства базового класса BaseClass.java. Поскольку классы располаются в разных пакетах, то базовый класс необходимо импортировать.

package ru.java.online.classes; import ru.java.online.BaseClass; public class Inheritor extends BaseClass < public Inheritor() < this.name = "Наследник"; this.setId("Первый"); >>
Листинг основного класса, MainPackage.java

Основной класс включает статический метод main. Поскольку данный класс не «видит» наследника, то его приходится импортировать.

package ru.java.online; import ru.java.online.classes.Inheritor; public class MainPackage < public MainPackage() < BaseClass bc = new BaseClass(); Inheritor ir = new Inheritor(); System.out.println (bc.toString()); System.out.println (ir.toString()); >public static void main(String[] args) < new MainPackage(); System.exit(0); >>

Результат выполнения данной программы выводится в консоль в следующем виде :

ru.java.online.BaseClass: ru.java.online.classes.Inheritor:

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

Говоря о полном наименовании класса следует отметить, что оно включает не только наименование пакета и наименование класса, но также и класс-загрузчик classloader. Подробно о классах-загрузчиках можно почитать здесь.

Naming a Package

With programmers worldwide writing classes and interfaces using the Java programming language, it is likely that many programmers will use the same name for different types. In fact, the previous example does just that: It defines a Rectangle class when there is already a Rectangle class in the java.awt package. Still, the compiler allows both classes to have the same name if they are in different packages. The fully qualified name of each Rectangle class includes the package name. That is, the fully qualified name of the Rectangle class in the graphics package is graphics.Rectangle , and the fully qualified name of the Rectangle class in the java.awt package is java.awt.Rectangle .

This works well unless two independent programmers use the same name for their packages. What prevents this problem? Convention.

Naming Conventions

Package names are written in all lower case to avoid conflict with the names of classes or interfaces.

Companies use their reversed Internet domain name to begin their package names—for example, com.example.mypackage for a package named mypackage created by a programmer at example.com .

Name collisions that occur within a single company need to be handled by convention within that company, perhaps by including the region or the project name after the company name (for example, com.example.region.mypackage ).

Packages in the Java language itself begin with java. or javax.

In some cases, the internet domain name may not be a valid package name. This can occur if the domain name contains a hyphen or other special character, if the package name begins with a digit or other character that is illegal to use as the beginning of a Java name, or if the package name contains a reserved Java keyword, such as «int». In this event, the suggested convention is to add an underscore. For example:

Legalizing Package Names

Domain Name Package Name Prefix
hyphenated-name.example.org org.example.hyphenated_name
example.int int_.example
123name.example.com com.example._123name

Package does not exist

Здравствуйте. Совсем недавно начал изучать Java. Поставил netbeans, создаю 2 файла. Один файл Main.java, второй лежит в отдельной папке (имя папки — Matrix11) matrix.java. Во втором файле пишу package Matrix11, в мейне пишу import Matrix11.matrix. Среда выдает мне такое сообщение — package Matrix11 does not exist. Совсем не знаю что с этим делать

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

package javafx.application does not exist
package com.company; import java.util.Random; import javafx.application.Application; public.

Ошибка error: package does not exist
Добрый день. Помогите, пожалуйста. Я в java пока ещё 0 почти, если честно. Поэтому может и глупый.

package net.mindview.util does not exist
package net.mindview.util does not exist Нужен метод Range() пакета, но пишет ошибка при.

NetBeans6.7 package javax.servlet does not exist
у меня такая ошибка куда надо поставить servlet-api.jar подскажите пожалуйста в C:\Program Files.

package org.apache.log4j does not exist
проблема с Logger выдает ошибку package org.apache.log4j does not exist логгер создаю вот так .

133 / 60 / 13
Регистрация: 10.03.2022
Сообщений: 215

на стековерфлов еще можно поискать ответ на ваш вопрос.
В общем, почитайте и вы поймете почему у вас возникает такая ошибка.

Регистрация: 20.07.2018
Сообщений: 205
Вроде делал все то же самое, что и в ваших источниках
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Ошибка package does not exist при сборке maven
Добрый день! Проблема вот в чем: если я собираю, компилирую и вообще что угодно делаю с проектом.

При компилянии сервлета ругается — ‘package javax.servlet.*; does not exist’
У меня установлены JDK1.3 и JRE при компилянии сервлета ругается — ‘package javax.servlet.*; does.

Eclipse. Package внутри package
Разбираюсь в Eclipse IDE 2019-06. Не могу понять как создать package внутри package как в.

error: package javax.ejb does not exist
Добрый день! Помогите решить проблему. есть модуль EJB. Во время компиляции выдает ошибку .

H2 Database Engine

Welcome to H2, the free SQL database. The main feature of H2 are:

  • It is free to use for everybody, source code is included
  • Written in Java, but also available as native executable
  • JDBC and (partial) ODBC API
  • Embedded and client/server modes
  • Clustering is supported
  • A web client is included

No Javascript

If you are not automatically redirected to the main page, then Javascript is currently disabled or your browser does not support Javascript. Some features (for example the integrated search) require Javascript. Please enable Javascript, or go ahead without it:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *