第七章
7.1 包的基本概述
起因:
在我們設計一個程序的時候(尤其是多人合作)加矛,會寫一些類來實現(xiàn)功能塞耕,但是往往會有重名的現(xiàn)象發(fā)生,為了解決這個問題程癌,則專門設計了包舷嗡。(還有其他作用,下述)
簡單理解:不同的城市之間存在相同名字的小區(qū)嵌莉,用城市名則可以區(qū)分這些重名小區(qū)进萄,城市名就可以理解為上面的包,小區(qū)則可以看做是重名的類锐峭,通過這個前綴中鼠,解決了重名問題。
(1) 概念:
為了更好地組織類沿癞,Java 提供了包機制援雇,用于區(qū)別類名的命名空間。
其實可以理解為就是文件夾椎扬,并且使用了樹形目錄的存儲方式惫搏。
(2) 作用:
A:區(qū)分同名的類
B:對類進行分類管理
? a:按照功能分——把功能相似或者相關的類或接口組織在同一個包中
? b:按照模塊分
(3) 包的定義:
package 包名;
//多級包用.分開
(4) 注意:
A:package語句必須在文件中的第一條有效語句
B:在一個java文件中,只能有一個package
(5)帶包的編譯和運行
掌握——自動式(Dos中)
javac -d . xxx.java
//可以使用 *.java代表當前目錄下的所有源文件
//運行:
java 包名.HelloWorld
在ecplise盗舰、ideal等IDE中會自動的生成包名的結(jié)構(gòu)
7.2導包
當你需要使用一個包中的成員的時候晶府,我們就需要在 java 程序中導入該包
如果兩個類在同一個包中,則不必導包
格式:
第一種:
//導入單個(推薦)
import 包名;
注意:我們用誰就導誰钻趋。(盡量少用星號* 如下)
第二種:
//導入java.io下的所有類(不推薦)
import java.io.*
注意:
//前兩句是否能用最后一句代替
import java.lang.*;
import java.io.*;
import java.*川陆;//無法代替上面兩句,只能指向到單層的包中
注意:使用java.lang下的內(nèi)容是不用導包的蛮位,具體可以查看 jdk-api
作用:
使用某一包中對應成員较沪,并且簡化書寫
例如我們想使用java.io包下的BufferedReader
我們可以
import java.io.BufferedReader
BufferedReader in = new BufferedReader(new FileReader("foo.in"));
如果沒有使用import導包
我們在使用java類庫的時候,就需要寫出該類的全路徑名稱失仁,明顯代碼過于冗長
java.io.BufferedReader in = new java.io.BufferedReader(new FileReader("foo.in"));
7.3 權限修飾符
看完包的基本概念尸曼,我們也就理解了當初所講權限修飾符的問題
本類 | 同一個包下 | 不同包下的子類 | 不同包下的無關類 | |
---|---|---|---|---|
public | Y | Y | Y | Y |
protected | Y | Y | Y | |
默認 | Y | Y | ||
private | Y | |||
這四種權限修飾符在任何情況下只能出現(xiàn)一種 |
結(jié)尾:
如果內(nèi)容中有什么不足,或者錯誤的地方萄焦,歡迎大家給我留言提出意見, 蟹蟹大家 控轿!_
如果能幫到你的話,那就來關注我吧7鞣狻(系列文章均會在公眾號第一時間更新)
在這里的我們素不相識茬射,卻都在為了自己的夢而努力 ?
一個堅持推送原創(chuàng)Java技術的公眾號:理想二旬不止