官术网_书友最值得收藏!

2.import, public static void main, String[] args分別是什么意思?我的第一個(gè)Java程序

在第1節(jié)中,我們已經(jīng)認(rèn)識(shí)了第一個(gè)C++程序,通過該程序我們?cè)谄聊簧洗蛴×恕癏ello world!”。本節(jié)中我們將學(xué)習(xí)第一個(gè)Java程序,通過這一節(jié)的學(xué)習(xí),讀者會(huì)初步認(rèn)識(shí)Java的包機(jī)制、類定義和main函數(shù)。

Hello world

在第一個(gè)Java程序中,我們要完成的工作仍然是向屏幕輸出“Hello world!”。在這里我們故意把打印“Hello world!”的方法變得稍微復(fù)雜了些,目的是讓讀者認(rèn)識(shí)一個(gè)更完整的程序。

示例代碼2.1

package語句

程序的第一行是package語句,該語句的作用是規(guī)定當(dāng)前類屬于哪個(gè)包。

在Java中,同一個(gè)包中存放的類是功能相關(guān)的,包機(jī)制使得項(xiàng)目代碼存放在一個(gè)合理有序的組織結(jié)構(gòu)下,便于開發(fā)人員管理。

同時(shí),包機(jī)制提供了類的多層命名空間,這一點(diǎn)與C++中的命名空間類似,用于解決類的命名沖突。我們也許會(huì)遇到類名完全相同的兩個(gè)類,例如有兩個(gè)類的類名都是A,這時(shí)候不同的包名為這兩個(gè)類提供了不同的命名空間,我們就能通過包名告訴計(jì)算機(jī)我們使用的到底是哪個(gè)類了。若用電話號(hào)碼做類比,包名即為區(qū)號(hào),類名即為電話號(hào)碼。包名一般全是小寫字母,由一個(gè)或多個(gè)有意義的單詞連綴而成,命名規(guī)則是:域名倒寫.項(xiàng)目名.模塊名.組件名。例如我們會(huì)發(fā)現(xiàn)有些包以org.apache打頭,其對(duì)應(yīng)的域名就是apache.org。

import語句

接下來的一行是import語句。我們?cè)诰帉懸粋€(gè)類時(shí),經(jīng)常會(huì)用到其他的類,要正確引用這些類,就需要用import語句進(jìn)行導(dǎo)入聲明。在示例代碼2.1中,我們?yōu)榱耸褂胘ava.util.List類,定義了import java.util.List;語句。如果不在程序起始處定義import語句,程序中所有用到List類的地方都需要使用該類的全名,這就會(huì)使代碼顯得非常冗長。

進(jìn)階

一個(gè)Java編程高手通常對(duì)Java常用包非常熟悉,了解Java提供了哪些包,能夠幫助自己知道利用Java可以實(shí)現(xiàn)哪些功能,而哪些功能實(shí)現(xiàn)起來是較為困難的。Java的常用包如下。

java.lang: Java語言的核心,提供了Java中的各種基礎(chǔ)類。

java.util:實(shí)用工具包,提供了各種功能。

java.net:提供了網(wǎng)絡(luò)編程相關(guān)的各種類。

java.io:包含了輸入輸出操作相關(guān)的類。

java.sql:包含了數(shù)據(jù)庫編程相關(guān)的類。

java.awt:提供了用于構(gòu)建圖形用戶界面的類。

感興趣的讀者可以通過閱讀源碼深入了解Java的包機(jī)制。

類定義

在定義了package語句和import語句之后,程序進(jìn)入了主體部分,即對(duì)類的定義。當(dāng)編寫一個(gè)Java源代碼文件時(shí),此文件通常被稱為編譯單元,每個(gè)編譯單元都必須有一個(gè)擴(kuò)展名.java,而在編譯單元內(nèi)則至多可以有一個(gè)public類,該類的名稱必須與文件的名稱完全相同,包括大小寫在內(nèi)。

Java中,類(內(nèi)部類除外)有兩種訪問權(quán)限:

(1)public訪問權(quán)限。可以供所有類訪問。

(2)默認(rèn)訪問權(quán)限。同一個(gè)包中的類可以訪問該類,即包級(jí)訪問權(quán)限。

在示例代碼2.1中,我們定義的類名是Code1,其訪問權(quán)限是public級(jí)別的。如果讀者想要了解關(guān)于面向?qū)ο蟾钊氲闹R(shí),可以閱讀本書的第四部分。

main函數(shù)

類似C語言程序,main函數(shù)也是Java程序的執(zhí)行入口。main函數(shù)與其他函數(shù)在形式上并無差異,也是由返回類型、修飾符、參數(shù)等構(gòu)成的。下面以示例代碼2.1為例,介紹main函數(shù)的各個(gè)組成部分。

返回類型:void。Java程序中的main函數(shù)返回值必須為空,不允許為int或其他類型。

訪問修飾符:public。為了使得該main函數(shù)可以直接被系統(tǒng)調(diào)用,必須設(shè)置訪問修飾符為public。

類修飾符:static。static修飾符表明該函數(shù)類靜態(tài)函數(shù),即函數(shù)是屬于類的,而不是屬于對(duì)象的。因?yàn)閙ain函數(shù)是程序的入口函數(shù),系統(tǒng)是通過類來調(diào)用該main函數(shù),而不是通過該類的任何對(duì)象來調(diào)用該main函數(shù),所以必須設(shè)置類修飾符為static。關(guān)于靜態(tài)方法更深入的知識(shí),感興趣的讀者可以閱讀本書的第20節(jié)。

圖2.1 main函數(shù)參數(shù)設(shè)置

參數(shù):Java中,main函數(shù)的參數(shù)是一個(gè)String數(shù)組。該數(shù)組內(nèi)容是用戶在運(yùn)行程序時(shí)設(shè)置的。用戶可以通過Eclipse的run configuration設(shè)置Arguments為Hello world!,如圖2.1所示。這一方法類似于第1節(jié)中Visual Studio為main函數(shù)設(shè)置參數(shù)的過程。

函數(shù)主體:示例代碼2.1在main函數(shù)中首先生成一個(gè)List對(duì)象,然后循環(huán)遍歷main函數(shù)參數(shù)args,將數(shù)組中的每個(gè)元素添加到List對(duì)象中,最后將List對(duì)象直接打印到控制臺(tái)。如圖2.1所示,我們向示例代碼2.1的main函數(shù)傳入的參數(shù)是“Hello”和“world!”,所以控制臺(tái)成功打印出了“Hello world!”,如圖2.2所示。由于我們是直接將List對(duì)象打印到控制臺(tái)的,所以輸出的字符串包含了中括號(hào),并且在元素之間通過逗號(hào)進(jìn)行了連接。

圖2.2 示例代碼2.1的運(yùn)行結(jié)果

主站蜘蛛池模板: 长顺县| 嘉峪关市| 武清区| 永定县| 湟源县| 卢湾区| 宝兴县| 台北县| 仲巴县| 康保县| 广水市| 砀山县| 泰兴市| 盐山县| 吉隆县| 西华县| 逊克县| 瓦房店市| 隆德县| 济源市| 安达市| 皮山县| 香格里拉县| 奈曼旗| 吉林省| 大方县| 石城县| 辽源市| 布尔津县| 儋州市| 鄂尔多斯市| 固阳县| 济源市| 剑河县| 达拉特旗| 长葛市| 互助| 东海县| 万州区| 连平县| 焦作市|