1. 程式人生 > >建立自己本地的java包

建立自己本地的java包

首先有兩點:

1.一個java原始檔只能有一個public類(或者介面)——public類類名就是原始檔的名字,因為JVM要根據名字去找檔案

2.只有被宣告為public的類才能被包外的非子類訪問

由此可知:想要被包外非子類呼叫的類或者介面,必須單獨成一個檔案,測試如下:

目錄結構1:test.java和testpkg資料夾在一個目錄,testpkg中有A.java檔案

A.java:

package testpkg; public class A{     public void showA(){//方法必須是public,否則不能被包外訪問         System.out.println("A In testpkg");} } interface B{//如果interface前面同時加上public,會有報錯:

錯誤: 介面 B 是公共的, 應在名為 B.java 的檔案中宣告    void showB();//介面預設public }

test.java:

import testpkg.*; public class test{     public static void main(String[] args) {         A a=new A();         a.showA();}

}//到這一步為止,執行結果很正常

class C implements B{     public void B(){         System.out.println("C In test.java implements B in testpkg"); } }//報錯,提示:

test.java: 錯誤: 找不到符號 class C implements B{                    ^   符號: 類 B 1 個錯誤

這是因為介面B並不是public的介面,無法被包外的非子類呼叫

這看起來比較麻煩哈,但是正是這樣保證了封裝性。下面看看怎樣建立自己的本地java包

上面的測試包和java原始檔放在同一個目錄下,可以直接import,如果作如下更改

1.把teskpkg放在C:\Users\Administrator\目錄下,也就是test.java的上級目錄【test.java的目錄是C:\Users\Administrator\Desktop】

如果程式碼不做修改直接執行程式碼會報錯:錯誤: 程式包testpkg不存在

如果程式碼做修改,我也不知道怎麼更改import語句。。。

2.把testpkg放在同級或下級目錄:import testpkg.x.x.*就好了

有了以上基礎,現在建立自己的本地包

裝jdk的時候肯定改過classpath目錄,那個目錄是我們要引用java自身提供的包的保障,去環境變數檢視,會發現:

其中,javahome是這樣的(每個人的不一樣哈)

注意到classpath裡面有一個javahome\lib,這裡面就是java原生的庫了。

F:\Java裡面是我自己的本地庫,也就是說,如果我們要建立自己的本地庫,只需要在classpath中新增一個地址,然後在該地址下面建立包檔案就可以

比如這是我的包檔案:以後要引用自己的包,就像要引用java內建包一樣只用import MyPack.*就行

對了上面的環境變數可能有些不是javahome\lib,而是如下。實際上下面的寫法不會錯,但是dt.jar和tools.jar在jdk-9以後是沒有的