Поскольку я не являюсь поклонником этих других ответов, я напишу свой собственный.
реальных примеров:
Придумайте «пакет», как легкий способ для класса Java, чтобы ссылаться на другой.
Предположим, у меня есть эта большая коробка на чердаке. У меня есть калькулятор, компас, транспортир и т. Д. Я могу пометить эту коробку MathTools
.
Другой пример - взять все ваши фотографии и поместить их в папку Pictures
в ваших документах. Оттуда вы можете разбить их на Spring Break 2009
или [Insert Name Here]'s Party
.
Как это относится к Java? Итак, давайте посмотрим на пакет java.util
(вы можете ссылаться на это с помощью import java.util.*;
. У вас есть ArrayLists, Strings, Random и т. Д., Которые используются в большинстве программ Java (если вы предпочитаете) общие утилиты. тот же пакет, так что программисты могут легко ссылаться на них (import java.util.*;
)
Easy Применение:.
Давайте предположим, что мы можем найти все файлы в небольшой кости симулятор в C:/Program Files/Java Project/my/proj/
(это, вероятно, что этот файл не существует на вашем компьютере, но просто притворяйтесь на мгновение).
У вас есть 3 файла: Main.java
, Dice.java
и DiceRoller.java
. Все из них показаны ниже:
.
"C:/ProgramFiles/Java Project/мой/проектируемый/главная/Main.java
":
package my.proj.main;
import my.proj.sims.Dice;
public class Main
{
public static void main(String[] args)
{
DiceRoller roller = new DiceRoller();
roller.rollAndShow(4);
}
}
"C:/ProgramFiles/Java Project/мой/проектируемый/симы/Dice.java
":
package my.proj.sims;
import java.util.Random; // I used the Random class, but you can also use the Math class if you prefer (java.lang.Math)
public class Dice
{
public Dice()
{
}
public int roll()
{
Random rand = new Random();
return rand.nextInt(6) + 1; // Rolls a random number 1-6
}
}
"C:/ProgramFiles/Java Project/мои/Рго/симы/DiceRoller.java
":
package my.proj.sims;
public class DiceRoller
{
public DiceRoller()
{
}
// Rolls and prints the result of 'n' number of rolls
public void rollAndShow(int n)
{
Dice dice = new Dice();
for (int i = 0; i < n; i++)
{
System.out.println(dice.roll()); // You should never use S.o.p in a method - it's bad practice, but it's easier this way if you don't yet understand the concept of objects
}
}
}
,
вещи заметить:
Main.java
упаковывается в my.proj.main
Dice.java
упаковывается в my.proj.sims
Main.java
потребности импортировать my.proj.sims.Dice
для того, чтобы создать Dice
объект и использовать его методы, потому что это в другой упаковка от Dice.java
.
DiceRoller.java
не нужно импортировать my.proj.sims.Dice
, потому что он находится в том же пакете, что и Dice.java
, и компилятор автоматически свяжет эти два.
.
Import
- это команда для загрузки функциональности класса в текущий файл. Посмотрите на Dice.java
, например. Чтобы создать объект Random
, который имеет способ nextInt()
, ему необходимо импортировать класс Random из пакета java.util.*
.
.
Вы можете заметить, что некоторые люди предпочитают использовать java.util.*
вместо java.util.Random
, java.util.ArrayList
и т.д. Что *
существу означает любой класс в java.util
. Запуск import java.util.*
будет импортировать классы Random, String, ArrayList и т. Д.
.
Надеюсь, что это прояснит ситуацию. Пожалуйста, подумайте о том, чтобы продолжить, если это вам помогло.
Ответы на этот вопрос могут помочь: http://stackoverflow.com/questions/1088509/what-is-the-purpose-of-defining-a-package-in-java-file – BoltClock