1.7(java学习笔记)package和import
package
package主要用于管理類,在java中同一個包下不能有相同的類名,可有時項目總會出現很多同名的類,這時就需要通過包來管理類。不同的包下可以有相同的類名。
包就有點類似于文件夾,不同文件夾中可以有相同的文件名,一個文件夾下不能有同名的文件。
包的命名規則一般是域名倒著寫,后面再加具體項目名稱。
例如京東的就是 cn.jd.123
?
例如下面位于包cn.hcf.pro3下的TestExtends.java文件和位于包cn.hcf.TestThis包下的TestPackage.java文件中都有Person類,但他們處于不同的包中是可以的。
但當它們位于同一個包下時是不可以的。
?
2.import
import可以導入其他包的類,但這個類必須是以public修飾的(這個知識點還需要學習后面的訪問控制才知道為什么)。
?
例如下面我在cn.hcf.oo包下的TestEqu中要用TestPackage包下的TestPackage類,就需要用import導入。
如果不導入,在一個包中使用其它包的類,則會出行錯誤。
1 package cn.hcf.oo; 2 3 4 import TestPackage.*; //包后面加*就代表導入TestPackage包中的所有類,也可以單獨導入包中的一個類, 5 //import TestPackage.TestPackage 就代表導入TestPackage包中TestPackage類。 6 public class TestEqu { 7 public static void main(String[] args){ 8 TestPackage n = new TestPackage(); 9 10 } 11 }?
導入還有靜態屬性的導入,比如在java.lang包下的Math類中有PI(圓周率)這個靜態屬性。我們使用要這樣寫,Math.PI,代表使用PI。
我們可以用靜態屬性的導入, import static java.lang.math.PI;就導入了PI這個靜態屬性,導入后可以直接寫PI,因為該屬性已被導入。
?
還有一個問題,導入時例如我們要使用Date類,在cn.test.1這個包和cn.test.2這兩個包中都有Date類,我們導入時這樣寫
import cn.test.1.Date;
import cn.test.2.*;
那么我們用new = Date()新建一個對象時,優先選擇具體導入的類,就是說此時的Date是cn.test.1包中Date;
?
如果我們既要使用cn.test.1中的Date,也要使用cn.test.2中的cn.test.2中的Date時
即使使用 import導入也會出現錯誤,因為創建Date時無法識別到底是哪一個包中的Date
這時我們需要寫出Date具體的路徑。
例如我們兩個都要使用時:
cn.test.1.Date D1 = new cn.test.1.Date();
cn.test.2.Date D2 = new? cn.test.2.Date();
?
轉載于:https://www.cnblogs.com/huang-changfan/p/9319338.html
總結
以上是生活随笔為你收集整理的1.7(java学习笔记)package和import的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在RHEL上实现OpeenSSH
- 下一篇: JavaScript事件循环探索