一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

java語(yǔ)言

Java類(lèi)的基本構成

時(shí)間:2025-04-02 00:21:58 java語(yǔ)言 我要投稿

Java類(lèi)的基本構成

  Java是一種可以撰寫(xiě)跨平臺應用程序的面向對象的程序設計語(yǔ)言。以下是小編為大家搜索整理的Java類(lèi)的基本構成, 希望能給大家帶來(lái)幫助!更多精彩內容請及時(shí)關(guān)注我們應屆畢業(yè)生考試網(wǎng)!

  1:Java 類(lèi)的定義形式

  一個(gè)完整的 Java 類(lèi)通常由下面六個(gè)部分組成:

  包定義語(yǔ)句

  import 語(yǔ)句

  類(lèi)定義{成員變量 構造方法 成員方法}

  其中:只有類(lèi)定義和“{}”是不可或缺的,其余部分都可以根據需要來(lái)定義。

  下面分別來(lái)學(xué)習各個(gè)部分的基本規則,看看如何寫(xiě) Java 的類(lèi)。

  2: 包

  2.1:包 是什么

  在 Java 中,包是類(lèi)、接口或其它包的集合,包主要用來(lái)將類(lèi)組織起來(lái)成為組,從而對類(lèi)進(jìn)行管理。

  2.2:包 能干什么

  包對于下列工作非常有用:

  (1):包允許您將包含類(lèi)代碼的文件組織起來(lái),易于查找和使用適當的類(lèi)。

  (2):包不止是包含類(lèi)和接口,還能夠包含其它包。形成層次的包空間。

  (3):它有助于避免命名沖突。當您使用很多類(lèi)時(shí),確保類(lèi)和方法名稱(chēng)的唯一性是非常困難的。包能夠形成層次命名空間,縮小了名稱(chēng)沖突的范圍,易于管理名稱(chēng)。

  為便于管理數目眾多的類(lèi),Java 語(yǔ)言中引入了“包”的概念,可以說(shuō)是對定義的 Java類(lèi)進(jìn)行“分組” ,將多個(gè)功能相關(guān)的類(lèi)定義到一個(gè)“包”中,以解決命名沖突、引用不方便、安全性等問(wèn)題。

  就好似當今的戶(hù)籍制度,每個(gè)公民除有自己的名字“張三”、“李四”外還被規定了他的戶(hù)籍地。假定有兩個(gè)人都叫張三,只稱(chēng)呼名字就無(wú)法區分他們,但如果事先登記他們的戶(hù)籍分別在北京和上海,就可以很容易的用“北京的張三” 、 “上海的張三”將他們區分開(kāi)來(lái)。

  如果北京市仍有多個(gè)張三,還可以細分為“北京市.海淀區的張三” 、 “北京市.西城區.平安大街的張三”等等,直到能惟一標識每個(gè)“張三”為止。

  JDK 中定義的類(lèi)就采用了“包”機制進(jìn)行層次式管理,下圖顯示了其組織結構的一部分:

  從圖中可以看出,一個(gè)名為 java 的包中又包含了兩個(gè)子包:io 包和 lang 包。lang 包中包含了 System, String, Object 三個(gè)類(lèi)的定義。事實(shí)上,Java 包中既可以包含類(lèi)的定義,也可以包含子包,或同時(shí)包含兩者。

  簡(jiǎn)而言之:從邏輯上講,包是一組相關(guān)類(lèi)的集合; 從物理上講,同包即同目錄。

  2.1:JDK 中常 用的 包

  java.lang----包含一些 Java 語(yǔ)言的核心類(lèi),包含構成 Java 語(yǔ)言設計基礎的類(lèi)。在此包中定義的最重要的一個(gè)類(lèi)是“Object”,代表類(lèi)層次的根,Java 是一個(gè)單根系統,最終的根就是“Object”,這個(gè)類(lèi)會(huì )在后面講到。

  Java 并不具有“自由”的方法,例如,不屬于任何類(lèi)的方法,Java 中的所有方法必須始終屬于某個(gè)類(lèi)。經(jīng)常需要使用數據類(lèi)型轉換方法。Java 在 Java.lang 包中定義了“包裝對象”類(lèi),使我們能夠實(shí)現數據類(lèi)型轉換。如 Boolean、Character、Integer、Long、Float 和Double,這些在后面會(huì )講到。

  此包中的其它類(lèi)包括:

  ? Math——封裝最常用的數學(xué)方法,如正弦、余弦和平方根。

  ? String,StringBuffer——封裝最常用的字符串操作。

  你不必顯示導入該包,該 Java 包通常已經(jīng)導入。

  java.awt----包含了構成抽象窗口工具集(abstract window toolkits)的多個(gè)類(lèi),這些類(lèi)被用來(lái)構建和管理應用程序的圖形用戶(hù)界面(GUI)。

  javax.swing----完全 Java 版的圖形用戶(hù)界面(GUI)解決方案,提供了很多完備的組件,可以應對復雜的桌面系統構建。

  java.net----包含執行與網(wǎng)絡(luò )相關(guān)的操作的類(lèi),如 URL, Socket, ServerSocket 等。

  java.io----包含能提供多種輸入/輸出功能的類(lèi)。

  java.util----包含一些實(shí)用工具類(lèi),如定義系統特性、使用與日期日歷相關(guān)的方法。還有重要的集合框架。

  2.2:Java 中 如何 表達 包 ——package 語(yǔ) 句

  Java 語(yǔ)言使用 package 語(yǔ)句來(lái)實(shí)現包的定義。package 語(yǔ)句必須作為 Java 源文件的第一條語(yǔ)句, 指明該文件中定義的類(lèi)所在的包。 若缺省該語(yǔ)句, 則指定為無(wú)名包, 其語(yǔ)法格式為:

  package pkg1[.pkg2[.pkg3…]]; //“[]”表示可選Java 編譯 器 把包對 應 于 文 件系 統 的目 錄管 理,因此包也可以嵌套使用,即一個(gè)包中可以含有類(lèi)的定義也可以含有子包,其嵌套層數沒(méi)有限制。package 語(yǔ)句中,用‘.’來(lái)指明包的層次;

  Java 語(yǔ)言要求包聲明的層次和實(shí)際保存類(lèi)的字節碼文件的目錄結構存在對應關(guān)系, 以便將來(lái)使用該類(lèi)時(shí)能通過(guò)包名(也就是目錄名)查找到所需要的類(lèi)文件。簡(jiǎn)單地說(shuō)就是包的層次結構需要和文件夾的層次對應。

  注意:每個(gè)源文件只有一個(gè)包的聲明,而且包名應該全部小寫(xiě)。

  具體來(lái)說(shuō),程序員要做以下工作:

  2.3:編譯和 生 成 包

  如果在程序 Test.java 中已定義了包 p1,就必須將編譯生成的字節碼文件 Test.class 保存在與包名同名的子目錄中,可以選用下述兩種方式之一:

  采用下述命令編譯:

  javac Test.java

  則編譯器會(huì )在當前目錄下生成 Test.class 文件, 再在適合位置手動(dòng)創(chuàng )建一個(gè)名為 p1 的子目錄,將 Test.class 復制到該 p1 目錄下。

  采用簡(jiǎn)化的編譯命令,就是可以帶包編譯

  javac -d destpath Test.java

  歸入該包的類(lèi)的字節代碼文件應放在 java 的類(lèi)庫所在路徑的 destpath 子目錄下。 現在包的相對位置已經(jīng)決定了,但 java 類(lèi)庫的路徑還是不定的。事實(shí)上,java 可以有多個(gè)存放類(lèi)庫的目錄,其中的缺省路徑為 java 目錄下的 lib 子目錄,你可以通過(guò)使用-classpath 選項來(lái)確定你當前想選擇的類(lèi)庫路徑。 除此之外, 你還可以在 CLASSPATH 環(huán)境變量中設置類(lèi)庫路徑。 destpath 為目標路徑, 可以是本地的任何絕對或相對路徑。 則編譯器會(huì )自動(dòng)在 destpath目錄下建立一個(gè)子目錄 p1,并將生成的.class 文件自動(dòng)保存到 destpath/p1 下。例如:

  javac -d .\ Test.java

  javac -d C:\test\ Test.java

  2.4:帶包 運行

  運行帶包的程序,需要使用類(lèi)的全路徑,也就是帶包的路徑,比如上面的那個(gè)程序,就使用如下的代碼進(jìn)行運行:

  java p1.Test

  3:import

  為了能夠使用某一個(gè)包的成員,我們需要在 Java 程序中明確導入該包。使用“import”語(yǔ)句可完成此功能。在 java 源文件中 import 語(yǔ)句應位于 package 語(yǔ)句之后,所有類(lèi)的定義之前,可以有 0~多條,其語(yǔ)法格式為:

  import package1[.package2…].(classname|*);

  java 運行時(shí)環(huán)境將到 CLASSPATH + package1.[package2…]路徑下尋找并載入相應的字節碼文件 classname.class。 “*”號為通配符,代表所有的類(lèi)。也就是說(shuō) import 語(yǔ)句為編譯器指明了尋找類(lèi)的途徑。

  例,使用 import 語(yǔ)句引入類(lèi)程序:TestPackage.java

  java 編譯器默認為所有的 java 程序引入了 JDK 的 java.lang 包中所有的類(lèi)(import java.lang.*;) ,其中定義了一些常用類(lèi):System、String、Object、Math 等。因此我們可以直接使用這些類(lèi)而不必顯式引入。但使用其它非無(wú)名包中的類(lèi)則必須先引入、后使用。

  3.1:Java 類(lèi) 搜尋方 式

  程序中的 import 語(yǔ)句標明要引入 p1 包中的 Test 類(lèi), 假定環(huán)境變量 CLASSPATH 的值為

  “.;C:\jdk6\lib;D:\ex” , java 運行環(huán)境將依次到下述可能的位置尋找并載入該字節碼

  文件 Test.class:

  .\p1\Test.class

  C:\jdk6\lib\p1\Test.class

  D:\ex\p1\Test.class

  其中, “.”代表當前路徑,如果在第一個(gè)路徑下就找到了所需的類(lèi)文件,則停止搜索。

  否則依次搜索后續路徑,如果在所有的路徑中都未找到所需的類(lèi)文件,則編譯或運行出錯。

  4: 訪(fǎng)問(wèn)修飾 符

  Java 語(yǔ)言允許對類(lèi)中定義的各種屬性和方法進(jìn)行訪(fǎng)問(wèn)控制, 即規定不同的保護等級來(lái)限制對它們的使用。為什么要這樣做?Java 語(yǔ)言引入類(lèi)似訪(fǎng)問(wèn)控制機制的 目的 在 于實(shí) 現 信息的 封 裝 和 隱藏。 Java 語(yǔ)言為對類(lèi)中的屬性和方法進(jìn)行有效地訪(fǎng)問(wèn)控制, 將它們分為四個(gè)等級:private, 無(wú)修飾符, protected, public,具體規則如下:

  變量和方法可以處于四個(gè)訪(fǎng)問(wèn)級別中的一個(gè):公共,受保護,無(wú)修飾符或私有。類(lèi)可以在公共或無(wú)修飾級別。

  變量、方法或類(lèi)有缺省(無(wú)修飾符)訪(fǎng)問(wèn)性,如果它沒(méi)有顯式受保護修飾符作為它的聲明的一部分的話(huà)。這種訪(fǎng)問(wèn)性意味著(zhù),訪(fǎng)問(wèn)可以來(lái)自任何方法,當然這些方法只能在作為對象的同一個(gè)包中的成員類(lèi)當中。

  以修飾符 protected 標記的變量或方法實(shí)際上比以缺省訪(fǎng)問(wèn)控制標記的更易訪(fǎng)問(wèn)。 一個(gè)protected 方法或變量可以從同一個(gè)包中的類(lèi)當中的任何方法進(jìn)行訪(fǎng)問(wèn), 也可以是從任何子類(lèi)中的任何方法進(jìn)行訪(fǎng)問(wèn)。 當它適合于一個(gè)類(lèi)的子類(lèi)但不是不相關(guān)的類(lèi)時(shí), 就可以使用這種受保護訪(fǎng)問(wèn)來(lái)訪(fǎng)問(wèn)成員。

  5: 類(lèi)定義

  Java 程序的基本單位是類(lèi),你建立類(lèi)之后,就可用它來(lái)建立許多你需要的對象。Java把每一個(gè)可執行的成分都變成類(lèi)。

  類(lèi)的定義形式如下:

  這里,類(lèi)名要是合法的標識符。在類(lèi)定義的開(kāi)始與結束處必須使用花括號。你也許想建立一個(gè)矩形類(lèi),那么可以用如下代碼:

  6:構 造方 法

  6.1:什么是構造方法

  類(lèi)有一個(gè)特殊的成員方法叫作構造方法, 它的作用是創(chuàng )建對象并初始化成員變量。 在創(chuàng )建對象時(shí),會(huì )自動(dòng)調用類(lèi)的構造方法。

  6.2:構 造方 法定義規則

  Java 中的構造方法必須與該類(lèi)具有相同的名字,并且沒(méi)有方法的返回類(lèi)型(包括沒(méi)有void) 。另外,構造方法一般都應用 public 類(lèi)型來(lái)說(shuō)明,這樣才能在程序任意的位置創(chuàng )建類(lèi)的實(shí)例--對象。

  6.3:示 例

  下面是一個(gè) Rectangle 類(lèi)的構造方法,它帶有兩個(gè)參數,分別表示矩形的長(cháng)和寬:

  6.4:說(shuō)明

  每個(gè)類(lèi)至少有一個(gè)構造方法。 如果不寫(xiě)一個(gè)構造方法, Java 編程語(yǔ)言將提供一個(gè)默認的,該構造方法沒(méi)有參數,而且方法體為空。

  注意:如果一個(gè)類(lèi)中已經(jīng)定義了構造方法則系統不再提供默認的構造方

  7:析構方法

  析構方法 finalize 的功能是: 當對象被從內存中刪除時(shí), 該成員方法將會(huì )被 自動(dòng)調用。通常,在析構方法內,你可以填寫(xiě)用來(lái)回收對象內部的動(dòng)態(tài)空間的代碼。

  特別注意:當我們去調用析構方法的時(shí)候,并不會(huì )引起該對象實(shí)例從內存中刪除,而是不會(huì )起到任何作用。

  在 Java 編程里面,一般不需要我們去寫(xiě)析構方法,這里只是了解一下就可以了。

  8:屬性

  8.1:屬性是什么

  簡(jiǎn)單點(diǎn)說(shuō),屬性就是對象所具有的靜態(tài)屬性。

  8.2:定義規則

  Java 類(lèi)中屬性的聲明采用如下格式:

  訪(fǎng)問(wèn)修飾符 修飾符 類(lèi)型 屬性名稱(chēng)=初始值;

  訪(fǎng)問(wèn)修飾符:可以使用四種不同的訪(fǎng)問(wèn)修飾符中的一種,包括 public(公共的)、protected(受保護的) ,無(wú)修飾符和 private(私有的) 。public 訪(fǎng)問(wèn)修飾符表示屬性可以從任何其它代碼調用。private 表示屬性只可以由該類(lèi)中的其它方法來(lái)調用。protected 將在以后的課程中討論。

  修飾符:是對屬性特性的描述,例如后面會(huì )學(xué)習到的:static、final 等等。

  類(lèi)型:屬性的數據類(lèi)型,可以是任意的類(lèi)型。

  屬性名稱(chēng):任何合法標識符

  初始值:賦值給屬性的初始值。如果不設置,那么會(huì )自動(dòng)進(jìn)行初始化,基本類(lèi)型使用缺省值,對象類(lèi)型自動(dòng)初始化為 null。

  8.3:說(shuō)明

  屬性有時(shí)候也被稱(chēng)為成員變量、實(shí)例變量、域,它們經(jīng)常被互換使用。

  9:方 法

  9.1:方法是什么

  方法就是對象所具有的動(dòng)態(tài)功能。

  9.2:定義規則

  Java 類(lèi)中方法的聲明采用以下格式:訪(fǎng)問(wèn)修飾符 修飾符 返回值類(lèi)型 方法名稱(chēng) (參數列表) throws 異常列表 {方法體}

  訪(fǎng)問(wèn)修飾符:可以使用四種不同的訪(fǎng)問(wèn)修飾符中的一種,包括 public(公共的)、protected(受保護的) ,無(wú)修飾符和 private(私有的) 。public 訪(fǎng)問(wèn)修飾符表示方法可以從任何其它代碼調用。private 表示方法只可以由該類(lèi)中的其它方法來(lái)調用。protected 將在以后的課程中討論。

  修飾符:是對方法特性的描述,例如后面會(huì )學(xué)習到的:static、final、abstract、synchronized 等等。

  返回值類(lèi)型::表示方法返回值的類(lèi)型。 如果方法不返回任何值, 它必須聲明為 void(空)。

  Java 技術(shù)對返回值是很?chē)栏竦,例如,如果聲明某方法返回一個(gè) int 值,那么方法必須從所有可能的返回路徑中返回一個(gè) int 值(只能在等待返回該 int 值的上下文中被調用。 )

  方法名稱(chēng):可以是任何合法標識符,并帶有用已經(jīng)使用的名稱(chēng)為基礎的某些限制條件。

  參數列表:允許將參數值傳遞到方法中。列舉的元素由逗號分開(kāi),而每一個(gè)元素包含一個(gè)類(lèi)型和一個(gè)標識符。在下面的方法中只有一個(gè)形式參數,用 int 類(lèi)型和標識符 days 來(lái)聲明:public void test(int days){}

  throws 異常列表:子句導致一個(gè)運行時(shí)錯誤(異常)被報告到調用的方法中,以便以合適的方式處理它。異常在后面的課程中介紹。

  花括號內是方法體,即方法的具體語(yǔ)句序列。

  9.3:示例

  比如現在有一個(gè)“車(chē)”的類(lèi)——Car, “車(chē)”具有一些基本的屬性,比如四個(gè)輪子,一個(gè)方向盤(pán),車(chē)的品牌等等。當然,車(chē)也具有自己的功能,也就是方法,比如車(chē)能夠“開(kāi)動(dòng)”——run。要想車(chē)子能夠開(kāi)動(dòng),需要給車(chē)子添加汽油,也就是說(shuō),需要為 run 方法傳遞一些參數“油”進(jìn)去。車(chē)子跑起來(lái)過(guò)后,我們需要知道當前車(chē)輛運行的速度,就需要 run 方法具有返回值“當前的速度” 。

  9.4:形參和實(shí)參

  形參:就是形式參數的意思。是在定義方法名的時(shí)候使用的參數,用來(lái)標識方法接收的參數類(lèi)型,在調用該方法時(shí)傳入。

  實(shí)參:就是實(shí)際參數的意思。是在調用方法時(shí)傳遞給該方法的實(shí)際參數。

  比如:上面的例子中“int oil”就是個(gè)形式參數,這里只是表示需要加入汽油,這個(gè)方法才能正常運行,但具體加入多少,要到真正使用的時(shí)候,也就是調用這個(gè)方法的時(shí)候才具體確定,加入調用的時(shí)候傳入“80” ,這就是個(gè)實(shí)際參數。

  形參和實(shí)參有如下基本規則:

  (1):形參和實(shí)參的類(lèi)型必須要一致,或者要符合隱含轉換規則

  (2):形參類(lèi)型不是引用類(lèi)型時(shí),在調用該方法時(shí),是按值傳遞的。在該方法運行時(shí),形參和實(shí)參是不同的變量,它們在內存中位于不同的位置,形參將實(shí)參的值復制一份,在該方法運行結束的時(shí)候形參被釋放,而實(shí)參內容不會(huì )改變。

  (3):形參類(lèi)型是引用類(lèi)型時(shí),在調用該方法時(shí),是按引用傳遞的。運行時(shí),傳給方法的是實(shí)參的地址, 在方法體內部使用的也是實(shí)參的地址, 即使用的就是實(shí)參本身對應的內存空間。所以在函數體內部可以改變實(shí)參的值。

  9.5:參數可變的方法

  從 JDK5.0 開(kāi)始,提供了參數可變的方法。

  當不能確定一個(gè)方法的入口參數的個(gè)數時(shí),5.0 以前版本的 Java 中,通常的做法是將多個(gè)參數放在一個(gè)數組或者對象集合中作為參數來(lái)傳遞,5.0 版本以前的寫(xiě)法是:

  int sum(Integer[] numbers){…}

  //在別處調用該方法

  sum(new Integer[] {12,13,20});

  而在 5.0 版本中可以寫(xiě)為:

  int sum(Integer... numbers){//方法內的操作}

  注意:方法定義中是三個(gè)點(diǎn)

  //在別處調用該方法

  sum(12,13,20);//正確

  sum(10,11); //正確

  也就是說(shuō),傳入參數的個(gè)數并不確定。但請注意:傳入參數的類(lèi)型必須是一致的,究其本質(zhì),就是一個(gè)數組。

  顯然,JDK5.0 版本的寫(xiě)法更為簡(jiǎn)易,也更為直觀(guān),尤其是方法的調用語(yǔ)句,不僅簡(jiǎn)化很多,而且更符合通常的思維方式,更易于理解。

【Java類(lèi)的基本構成】相關(guān)文章:

Java類(lèi)基本構成05-11

Java類(lèi)的基本構成08-28

Java類(lèi)的基本構成09-11

java類(lèi)的構成08-02

計算機二級Java入門(mén)教程:Java類(lèi)的基本構成10-06

計算機二級入門(mén)教程:Java類(lèi)的基本構成06-19

java集合類(lèi)基本簡(jiǎn)介10-26

java File類(lèi)的基本使用方法09-15

C語(yǔ)言的基本構成10-19

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看