昨天我们虽然各别把 .java 跟 .class 分类到不同的资料夹,
但长久下来还是不够的,我们还是需要把类别来做分类,让程序码更好管理~
在 Java 语法中有个 package 关键字,可以帮助我们把类别做分类管理哦!
我们来把昨天的两个档案加上 package !
package cc.oyang.util;
public class Utils {
public static void printABC(){
System.out.println("print ABC");
}
}
package cc.oyang;
public class MyHelloWorld {
public static void main(String[] args) throws Exception {
System.out.println("My First Hello World !");
Utils.printABC();
}
}
设定 package 的同时也要把 .java 档案放到相同阶层的资料夹哦!如下图~
那下一步就要再编译我们的 java 原始档:
编译器却不知道 Utils 物件从哪里来,这是为什麽呢?
当我们在程序码里面使用某个类别时,如果在相同套件中,只需要使用 class 定义的类别名称就可以使用了,
但如果是在不同套件,就必须要使用 完全吻合名称 ,这又是什麽呀?
完全吻合名称(Fully qualified name) : package + class
也就是说~我们的 MyHelloWorld.java 要改成下方:
package cc.oyang;
public class MyHelloWorld {
public static void main(String[] args) throws Exception {
System.out.println("My First Hello World !");
cc.oyang.util.Utils.printABC();
}
}
再来编译一次!
javac -d classes src/cc/oyang/MyHelloWorld.java
咦~~~又失败了,为什麽呢?
原来是我们没有设定 -sourcepath 给 javac,javac 找不到 MyHelloWorld.java 使用到的额外类别的原始档 Utils.java
javac -sourcepath src -d classes src/cc/oyang/MyHelloWorld.java
编译时如果有指定 -d 把 .class 放到到某个目录,结果会在该资料夹下自动建立出对应的套件阶层的资料夹哦!
最後一点!
如果每次都要用 完全吻合名称 ,加上套件名称又很长的话就是件麻烦事情了!
所以我们还有一个方便的东西叫做 import
package cc.oyang;
import cc.oyang.util.Utils;
public class MyHelloWorld {
public static void main(String[] args) throws Exception {
System.out.println("My First Hello World !");
Utils.printABC();
}
}
一样可以编译跟执行成功喔!
这边要执行的话,不能只用类别名称哦,要使用完全吻合名称!
这是回顾Go Smart Award的最後一集, 整个比赛的内容也在颁奖典礼举行的同时, 配合在...
上次我们介绍如何用 MySQL Workbench GUI 操作资料库,这次我们要来简单介绍一下 C...
前言 敏捷原则第九条:「持续追求优越的技术与优良的设计,以强化敏捷性。」这个持续追求,除了逐步在实作...
当你想更换手机,但是手机上的资料又没有办法完全转移到新的手机上。例如:新出的13promax很好,但...
前言 背景是一个如此重要的东西,你能想像萤幕的话棉全都是白底或黑底吗!!当然不行啊!! backgr...