由于我不喜欢这些其他答案,所以我会自己写。
现实世界的例子:
将“包”视为 java 类引用另一个类的简单方法。
假设我的阁楼上有这个大盒子。我有计算器、指南针、量角器等。我可以给这个盒子贴上标签MathTools。
另一个例子是拍摄所有照片并将它们放在文档中的Pictures 文件夹中。从那里,您可以将它们拆分为 Spring Break 2009 或 [Insert Name Here]'s Party。
这与 Java 有什么关系?好吧,让我们看看java.util 包(你可以用import java.util.*; 引用它。你有ArrayLists、Strings、Random 等,它们在大多数Java 程序中都使用(如果你愿意,可以使用常见的“实用程序”)。还有所有这些都整齐地组织在同一个包中,以便程序员可以轻松引用它们 (import java.util.*;)。
轻松申请:
假设我们可以在C:/Program Files/Java Project/my/proj/找到一个小骰子模拟器的所有文件(这个文件很可能在你的电脑上不存在,只是假装一会儿)。
您有 3 个文件:Main.java、Dice.java 和 DiceRoller.java。如下图所示:
.
"C:/ProgramFiles/Java Project/my/proj/main/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/my/proj/sims/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/my/proj/sims/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()方法,它需要从java.util.*包中导入Random类。
.
您可能会注意到有些人更喜欢使用java.util.* 而不是java.util.Random、java.util.ArrayList 等。* 本质上的意思是java.util 中的任何类。运行import java.util.*会导入Random、String、ArrayList等类。
.
希望这可以解决问题。如果这对您有帮助,请考虑投票:)