Java的项目结构
? ? 在Eclipse中,一個工程用一個文件夾表示,它被放置在左側(cè)的資源管理面板當(dāng)中。把工程展開后,有一個src文件夾,用于存放項目的源代碼;有一個JRE System Library,即當(dāng)前的工程所需要的運行時,它的版本是在創(chuàng)建工程時所選擇的JRE版本,將它打開可以看到有很多jar格式的包,這就是系統(tǒng)的運行時提供給程序的運行環(huán)境和開放的API。
????展開src(source code)文件夾,可以看到當(dāng)前的工程。如果所創(chuàng)建的項目用于練習(xí)使用,那么可以在默認(rèn)的包中創(chuàng)建一個類并在其中練習(xí)編寫代碼。但是在正規(guī)的開發(fā)環(huán)境中,這種做法是非常不可取的。
????規(guī)范的做法是,在默認(rèn)的包下需要創(chuàng)建它的子包。
????包名有一定的命名規(guī)則,例如網(wǎng)站是www.yeqc.com,那么這里的命名規(guī)則是反過來的。
????即com.yeqc
????第一個是公司性質(zhì),即commercial(代表商業(yè)型的公司)
????第二個是公司名稱
????接下來是項目名稱,比如說這里的項目叫做hello,添加后變成com.yeqc.hello
????然后再hello后面繼續(xù)添加
????這時的包名按照功能來劃分,比如創(chuàng)建的第一個包是用來運行和開啟程序
????可以把這個包命名為main
????點擊finish
????可以看到,默認(rèn)的包邊成了com.yeqc.hello.main
????一般情況下,一個應(yīng)用程序應(yīng)當(dāng)遵循MVC的結(jié)構(gòu)規(guī)則。
????M代表Model(模型)
????V代表View(視圖或界面)
????C代表Control(控制),在這里com.yeqc.hello.main存放的就是用于控制的代碼
????接下來,可以在src上點擊右鍵繼續(xù)創(chuàng)建包
????根據(jù)MVC的結(jié)構(gòu)規(guī)則,可以創(chuàng)建下一個包com.yeqc.hello.view
????這樣就創(chuàng)建了一個view包
????
????按照MVC結(jié)構(gòu)還要再創(chuàng)建一個Model的包
????把它叫做com.yeqc.hello.model
????
????三個基本的包已創(chuàng)建完成。如果項目非常復(fù)雜,那么這里的程序包結(jié)構(gòu)也會非常復(fù)雜。這里是最簡單的包結(jié)構(gòu)。
????
????在程序創(chuàng)建完包結(jié)構(gòu)之后,首先要創(chuàng)建一個程序的主要入口,也就是主方法
????創(chuàng)建一個Main類放在com.yeqc.hello.main這個包當(dāng)中,同時生成一個主方法
????點擊finish
????
????如果要在項目中創(chuàng)建一個儲存模型的類,那么要把它放到com.yeqc.hello.model這個包中
????比如說現(xiàn)在要創(chuàng)建一個游戲的項目,那么游戲的地圖、人物的屬性等這些都屬于數(shù)據(jù)模型
????應(yīng)到放到這個包中
????在這個包上點擊右鍵,創(chuàng)建一個新的class,把它叫做Model
????點擊finish
????模型就可以儲存在這個包當(dāng)中了
????如果項目需要添加視圖和用戶界面
????那么就需要把它放在com.yeqc.hello.view包中
????
????當(dāng)包創(chuàng)建完成后,要對其如何在硬盤中的存儲有一個明確的概念
????來到文件管理器
????在工作空間中找到Hello World這個項目
????可以看到src這個文件夾和一個bin文件夾
????src就對應(yīng)著Eclipse項目下的src文件夾
????包中的com.yeqc.hello.mian
????這里的每一個點都代表著包中的每一級文件結(jié)構(gòu)
????依次打開src->com->yeqc->hello
????然后可以看到main、model、view三個文件夾
????因為在工程中,這三個包它們的前綴都是一樣的? ??
????一直截止到hello,它們儲存在同一個文件結(jié)構(gòu)當(dāng)中
????所以在后面的最后三個結(jié)構(gòu)中,它們不同,所以要分開文件夾存儲
????可以看到main、model和view中都存放了所創(chuàng)建的對應(yīng)的類
????返回到項目的文件夾可以看到在HelloWorld還有一個bin路徑
????這個bin路徑在工程中是看不到的
????它用來存放當(dāng)前的Eclipse實時編譯的class文件
????它其中的文件夾結(jié)構(gòu)和src是完全相同的
????只不過按照層依次打開,看到的將是實時編譯出的.class文件
????也就是java的二進(jìn)制文件,二不是所編寫的源代碼
????
????也可以在文件瀏覽器中直接創(chuàng)建包的結(jié)構(gòu)
????比如src->com->yeqc->hello
????可以在這里創(chuàng)建一個新的文件夾,把它叫做network,“Enter”
????這樣就創(chuàng)建了一個新的network包
????在Eclipse中刷新后即可看到network包
????這時候就可以看到com.yeqc.hello.network
????可以繼續(xù)在這里創(chuàng)建類
????可以在一個包下創(chuàng)建子包
????比如在com.yeqc.hello.view包下創(chuàng)建一個用來存放圖像的包img
????刷新工程后可以看到com.yeqc.hello.img
????
????在當(dāng)前的工程下可以創(chuàng)建其它的文件夾
????最常出現(xiàn)的是一個lib文件夾
????在這里可以存放一些第三方的庫
????在lib文件夾中,可以從別的地方復(fù)制一個庫過來,然后粘貼到這個文件夾當(dāng)中
????那么它就會出現(xiàn)在當(dāng)前的目錄結(jié)構(gòu)當(dāng)中
????回到Java的工作空間并刷新,可以看到在當(dāng)前工程下的lib文件夾
????并且如同在文件瀏覽器中查看到的一樣,lib文件夾和src文件夾屬于同一級
????現(xiàn)在的lib文件夾當(dāng)中的這個文件只是出現(xiàn)在了當(dāng)前工作環(huán)境當(dāng)中,它并沒有被工程所引用
????右擊這個文件->Build Path->Add to Build Path
????這里出現(xiàn)了一個新的結(jié)構(gòu),叫做被引用的庫(Referenced Libraries)
????當(dāng)一個包出現(xiàn)在這里,就說明它已經(jīng)被當(dāng)前的工程所引用了
????并且可以在這里展開這個包,觀察它的目錄結(jié)構(gòu)
????可以看到這個包的命名和上述規(guī)范是一致的
????這樣就可以在工程中引用這個包里面的內(nèi)容了
本文轉(zhuǎn)自yeleven 51CTO博客,原文鏈接:http://blog.51cto.com/11317783/1773591
總結(jié)
- 上一篇: iptables规则备份和恢复、fire
- 下一篇: Java多线程生产者消费者调度实现