Java 中的 import
把类 Bell 留在文件夹 kit 里,带 package kit;,以及打印 ding 的方法 ring()。在该文件夹旁的 Porch.java 靠近文件顶部写 import kit.Bell;,再从 main 用短名调用 Bell.ring();。从父文件夹编译并运行 java Porch。屏幕应显示一行:ding。import 行让你在调用处去掉 kit.。import 之后的短名调用,就是本页要教的内容。
打开短名的那一行
在 packages 那一页,你每次都键入 kit.Bell.ring();。那个完整名仍然有效。一行 import 告诉 Java,短词 Bell 指的是哪个包里的类。写了 import kit.Bell; 之后,调用可以是 Bell.ring();。Bell 文件本身不改它的 package kit; 行。
保留你之前用过的同一个 kit/Bell.java,或重新创建。第一行 package kit;。Public class 是 Bell。方法:
public static void ring() { System.out.println("ding"); }
Bell.java 里没有 main。编译前先保存。本课不要把 import 行放进 Bell——import 属于需要短名的那个文件,这里是 Porch。
package kit;
public class Bell {
public static void ring() {
System.out.println("ding");
}
}
Porch 先 import,再调用 Bell.ring
在父文件夹创建 Porch.java——与 kit 同级,不要放进 kit。把 import kit.Bell; 放在 Porch 的任何 package 行之后(本页 Porch 没有 package 行)以及 public class Porch 之前。在 main 里写 Bell.ring();。不要把 kit.Bell.ring(); 当作本演示的必经路径——本课讲的就是 import。
把 Porch 保持为持有 main 的类。若 packages 页留下的 Lobby.java 仍只调用 kit.Bell.ring();,可以把那个文件先搁在一边。本课从父文件夹编译之后,运行 java Porch。
import kit.Bell;
public class Porch {
public static void main(String[] args) {
Bell.ring();
}
}
在同时放着 Porch.java 和 kit 文件夹的父文件夹里,运行 javac kit/Bell.java Porch.java。在 Windows 上也可以同样指向 kit\Bell.java。当圆括号、花括号和分号都配对时,javac 不会自己写出一行。然后运行 java Porch——不要 java Porch.java,也不要 java kit.Bell。运行命令不要带 .java 结尾。启动带有 main 的那个类。
程序应打印一行后停止:ding。它不会让你输入。如果终端在等待键盘输入,说明某个文件里还留着旧练习的 nextLine 调用。删掉那个调用,在 Porch 里保留 import kit.Bell; 以及 Bell.ring();。
把运行走一遍。Java 从 Porch.main 开始。import 已经指明你要的是哪个 Bell。调用 Bell.ring() 运行包 kit 里的静态方法。方法体打印 ding。屏幕显示 ding。不应再打印别的内容。若你看到 9 或 ok,说明仍在运行上一页留下的旧 Pier 或 Yard 程序。
若写成没有 import、也没有 kit. 前缀的 Bell.ring();,本页上 javac 找不到该类。在类上方加上 import kit.Bell;,或使用完整名。若把 import 放在 public class Porch 之后,javac 会拒绝——import 必须在类声明之前。拼写也很重要:import kit.Bell; 必须与包文件夹和类名逐字符一致。
不用 import 时完整名仍然有效
你仍然可以不写 import 行就调用 kit.Bell.ring();。那是 packages 页的写法。第二个 Porch 演示保留这条路径,好让你看见两种风格。
public class Porch {
public static void main(String[] args) {
kit.Bell.ring();
}
}
用同样方式编译并运行那种写法:javac kit/Bell.java Porch.java,然后 java Porch。屏幕仍显示 ding。import 页首选的教学文件是带 import kit.Bell; 和 Bell.ring(); 的那个。完整名文件只用来证明旧调用仍能编译。不要把两种调用混成测验路径上保存的唯一文件——把 import 写法选作本课文件。
若屏幕显示残留的 9 或 ok,说明仍在运行旧的 Pier 或 Yard 程序。改跑 java Porch。若 javac 说包 kit 不存在,请检查 Bell.java 是否仍在文件夹 kit 下,且首行是 package kit;。
与 packages 对比
在 packages 那一页,唯一的调用是 kit.Bell.ring();。本页加上 import kit.Bell;,让短名可用。从不 import 的残留 Lobby 只是历史,不是本课必需要的文件。本页请在 Porch 里保留 import kit.Bell; 和 Bell.ring();。
Bell 文件内部不需要 import。Bell 已经知道自己的包。import 是给包外、想用更短名字的调用方用的。把 import 看成只对本源文件有效的本地别名行——其他文件不会继承这个别名,除非它们自己也写 import。
以后你从同一包打开多个类时,可以写多行 import,每个类一行。本页只保留一个 import,好让短调用一眼可见。
留给 ArrayList 的内容
本页用 import 结束 Classes 模块的包故事。下一页用 ArrayList 打开 Collections。这里先留在 import 和短调用上。本页不要把通配 import kit.*; 当成必需要求;一条精确的 import 就够。
若父文件夹里仍有旧的 Lobby.java,可以不动它们,或仅在它们干扰编译命令时删除。编译本课的这对 import 文件之后,运行 java Porch。
进入 ArrayList 之前
你可以把 Bell 留在 kit 下并带 package kit;,在 Porch 写 import kit.Bell;,并调用 Bell.ring();。从父文件夹编译并运行 java Porch。屏幕显示 ding。import 打开了短名。下一页是 ArrayList,你会在一个对象里存放不断增长的值列表。
把 import 留在类上方。把短调用 Bell.ring(); 留在教学文件里。继续从父文件夹编译。这三条习惯是本页前进前的检查点。当 Bell.ring(); 之后屏幕显示 ding,import 行就完成本课工作,你可以进入下一主题。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部