深入理解Java中包的定義與使用
包是什么?
在開發(fā)過程中,會定義很多類,隨著類越寫越多,難免會出現(xiàn)類重名而發(fā)生覆蓋的情況,為了在使用它們的時候不讓編譯器混淆,我們給類加上一個限定 (前綴),把所有java程序保存在各自的目錄里面,而該目錄就是包,包的本質實際上就是一個文件夾
即:把它們放在不同的包里面,調用時再加上前綴即可;這樣好處是對同名的類進行了區(qū)分;能精確指出我們需要的哪一個;讓同名的類在一個程序中可以共存
在Java中,包是對類、接口等的封裝機制的體現(xiàn),是一種對類或接口等的很好的組織方式
包的作用
在同一個工程中允許存在相同名稱的類,只要處在不同的包中即可
避免了類型之間命名沖突:包作為一種封裝,給類提供多層命名空間
導入包中的類
以導入時間戳為例:
方法1 使用類的全路徑
public class PackageTest { public static void main(String[] args) { java.util.Date time = new java.util.Date(); System.out.println(time.getTime()); java.util.Date time2 = new java.util.Date(); System.out.println(time2.getTime()); } }
優(yōu)點:一定不會發(fā)生沖突
缺點:使用麻煩,每 new 一個對象都需要
方法2 導入包
可直接使用 import java.util.*,導入util 里的所有類
import java.util.Date; public class PackageTest { public static void main(String[] args) { Date time3 = new Date(); System.out.println(time3.getTime()); Date time4 = new Date(); System.out.println(time4.getTime()); } }
舉例:
上述示例:不明確 Date 到底是 sql 中的類,還是 util 中的類
解決方法:使用方式一包的全路徑即可~
優(yōu)點:使用方便
缺點:可能會產生沖突
方法3 靜態(tài)導入包
類里若存在同名的靜態(tài)方法,也有可能會發(fā)生沖突、
//可以直接使用Math類中的所有靜態(tài)成員 import static java.lang.Math.*; public class PackageTest { public static void main(String[] args) { System.out.println(sqrt(100)); System.out.println(max(1,5)); System.out.println(min(6,7)); } }
總結:一個完整類名是包名+類名,在沒有 import 導入的情況下,使用一個類需要給出完整的類名
自定義包
操作步驟:
1.在 IDEA 中先新建一個包:右鍵 src → 新建 → 包
2.右鍵剛創(chuàng)建好的包→新建→類
輸入類名即可
3.找到相應目錄 查看是否創(chuàng)建成功
4. Test.java 文件的最上方,出現(xiàn)了一個 package 語句
包的訪問權限控制
不同包
若手動導入 Person 所在的包
到此這篇關于深入理解Java中包的定義與使用的文章就介紹到這了,更多相關Java 包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring中ApplicationContext的拓展功能詳解
這篇文章主要介紹了Spring中ApplicationContext的拓展功能詳解,相對于BeanFactory來說,ApplicationContext除了提供BeanFactory的所有功能外,還有一些其他的功能,主要包括國際化支持、資源訪問、事件傳遞,需要的朋友可以參考下2024-01-01JAVA中HTTP基本認證(Basic Authentication)實現(xiàn)
HTTP 基本認證是一種簡單的認證方法,本文主要介紹了JAVA中HTTP基本認證(Basic Authentication),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-07-07Java數(shù)據庫連接池之DBCP淺析_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了Java數(shù)據庫連接池之DBCP的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08Java中replace與replaceAll的區(qū)別與測試
replace和replaceAll是JAVA中常用的替換字符的方法,下面這篇文章主要給大家介紹了關于Java中replace與replaceAll的區(qū)別與測試,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09