代碼源自《java核心技術一卷》
抽象表示如下:
ManagerTest.java
package inheritance;
...
public class ManagerTest
{
}
存放於:inheritance/ManagerTest.java
Manager.java
package inheritance;
...
public class Manager
{
}
存放於:inheritance/Manager.java
Employee.java
package inheritance;
...
public class Employee
{
}
存放於:inheritance/Employee.java
好了 現在編譯一下
javac *.java
找不到符號
什麼意思呢?
就是說 這三個類放在一個文件夾inheritance裏面
一個挨着一個
可是編譯的時候就是看不到對方
那怎麼解決好?
方案一:
三個類仍舊一起扔在inheritance文件夾裏面
把三個類開頭的package inheritance註釋掉 例如://package inheritance;
再次編譯 javac *.java
方案二:
將需要運行main()函數的類提到文件夾外面
這裏呢就是ManagerTest.java 啦
以我的實驗爲例:
我電腦的路徑是
f:\java1\fivecptr\fivecptrone\inheritance(三個類在這)
我呢把ManagerTest.java放到了java1這個文件夾裏面
f:\java1\fivecptr\fivecptrone\inheritance(剩下2個類)
.......↑......................
ManagerTest.java
然後修改代碼如下
inheritance裏面兩個類的package 改爲:
package fivecptr.fivecptrone.inheritance;
............__________↑_____________
f:\java1\fivecptr\fivecptrone\inheritance
就是把ManagerTest.java類後面的路徑全部抄上去 當然"\"換成"."
TIPS:路徑名不能有奇怪的符號例如:下劃線_ , 阿拉伯數字0,1... (所以有蛋疼的fivecptr - -!)
下一步:
java1裏面的ManagerTest.java 裏面
1) 註釋掉package //package inheritance;
2) 開頭添加 import fivecptr.fivecptrone.inheritance.*; (和上面一樣,末尾添加通識符*)
接下來 設置類路徑
(win7下)
計算機-(左側)計算機右鍵-屬性-高級系統設置-環境變量-系統變量-新建
名字:CLASSPATH;
路徑:f:java1; .; (就是把ManagerTest.java那個類所在的文件夾java1之前的-包括java1-的路徑寫上去, 後面也可以再加個 .; (句號+分號, 如果方案一不行時可能是這裏的問題,它表示在當前目錄搜索類)
確定
重新開啓console (黑框框- -!)
cd到ManagerTest.java所在文件路徑下
運行:
javac ManagerTest.java