黑马程序员_Java面向对象_包
7.包
7.1包(package)
- 對類文件進行分類管理。
- 給類提供多層命名空間。
- 寫在程序文件的第一行。
- 類名的全稱是:包名.類名。
- 包也是一種封裝形式。
利用命令行自動生成文件夾格式:D:\java0217\day10\javac -d . PackageDemo.java
"-d":指定這個包所存放的位置。
".":代表當前目錄??梢圆恢付ó斍?。
一般寫項目必須先寫包再寫類,因為寫項目有N多類組成,必須進行有效的區分,代表著每組類不同的功能。
以前沒有寫是因為使用了Java中默認的包機制,只要在當前目錄下沒有指定包,Java就把當前目錄作為默認包存在。
包的出現可以讓類文件(源文件)和運行文件相分離。好處在于,只要把運行文件拷給對方就能用了。沒有必要給源文件。
當想要使用包中的一個類的時候,classpath只要指向包的父目錄即可。
包與包之間的訪問
1、當調用其他包的類使,類的全名是:包名.類名
2、packa包不在當前目錄下,需要設置classpath告訴JVM去哪里找指定事物packa包。
3、有了包范圍變大,一個包中的類要被訪問,必須要有足夠大的權限。所以要被public修飾。
4、類共有后,被訪問的成員也要共有,才可以被訪問。
總結:
1、包與包之間進行訪問,被訪問的包中的類以及類中的成員,需要public修飾。
2、不同包中的子類還可以直接訪問父類中被protected權限修飾的成員。
包與包之間可以使用的權限只有兩種:public ,protected。
| ? | public | protected | default | private |
| 同一個類中 | OK | OK | OK | OK |
| 同一個包中 | OK | OK | OK | ? |
| 子類 | OK | OK | ? | ? |
| 不同包中 | OK | ? | ? | ? |
?
?
?導入import
為了簡化類名的書寫,使用一個關鍵字,import。
import導入的是包中的類。
import packb.haha.hehe.heihei.Democ;//導入Demo類,不必在本類中packb.haha.hehe.heihei.Democ c = new?packb.haha.hehe.heihei.Democ
import packb.haha.hehe.heihei.* ?//*代表把heihei里所有的類導進來。建議一般情況下不用通配符*,需要用到包中的哪個類,就導入哪個類。
?
c:\myclass\packb\DemoA.class
c:\myclass\packb\heihei\DemoZ.class
import packb.*//導入的僅僅是packb中所有的類。
import packb.heihei.*//導入的是heihei包中所有的類。
?
當導入不同包中的類,出現重名的情況,必須加包名。packb.haha.hehe.heihei.Democ c = new?packb.haha.hehe.heihei.Democ
建議定義包名不要重復,可以使用url 來定義,url是唯一的。
?
轉載于:https://www.cnblogs.com/594263274qq/p/4543877.html
總結
以上是生活随笔為你收集整理的黑马程序员_Java面向对象_包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何正确地使用电动烤串机?
- 下一篇: SLua 中继承 C# 类接口 Slua