String 字符串類
System 可得到系統(tǒng)信息
StringBuilder 字符串工具類
Thread 線程類
Math 與數(shù)學(xué)有關(guān)的工具類
ArrayList 底層用數(shù)組實現(xiàn)的集合
LinkedList 底層用鏈表實現(xiàn)的集合
HashMap 接口Map的一個實現(xiàn)類
HashSet 接口Set的一個實現(xiàn)類
Scanner 簡單文本掃描器
Calendar 日期類
Date 日期類
File 目錄或文件操作類
FileInputStream 輸入流
FileOutputStream 輸出流
PrintWriter
BufferedInputStream 具有緩沖的輸入流
BufferedOutputStream 具有緩沖的輸出流
BufferedReader 從字符輸入流中讀取文本,緩沖各個字符,
BufferedWriter 將文本寫入字符輸出流,緩沖各個字符
我們使用關(guān)鍵字class來聲明一個類。
通常定義class的形式如下所示:class classname { type instance-varable1; type instance-varable2; //。
type instance-varableN; type metbodname1(parameter-list) { //body of method } type metbodname2(parameter-list) { //body of method } //。
type metbodnameN(parameter-list) { //body of method }} 在一個class中定義的數(shù)據(jù)或叫變量叫做實例變量。代碼包含在方法中。
總體來說,類中定義的方法和變量叫做該類的成員。在大部分類中,實例變量由該類所定義的方法調(diào)用和訪問。
因此,這就決定了類中的數(shù)據(jù)如何被使用。所有的方法都在類中聲明,并且通常都具有如下形式: type name(parameter-list) { //body of method } 在這里,type指定了由方法返回的數(shù)據(jù)類型。
它可以是任意有效的類型,包括你創(chuàng)建的類類型。 如果方法沒有返回值,則其返回類型必須是void。
方法的名字由name指定。這個名字可以是除了那些在當(dāng)前作用域中已經(jīng)使用的標(biāo)識符之外的任意合法標(biāo)識符。
parameter-list是類型、標(biāo)識符對組成的序列,每對之間用逗號分開。參數(shù)實際上是方法被調(diào)用時接收傳遞過來的參數(shù)值的變量。
如果方法沒有參數(shù),則參數(shù)表就是空的。除了返回void方法外,那些具有返回類型的方法使用下面的返回語句形式對調(diào)用他們的程序返回一個值。
return value;value是返回值。下面是一個簡單的類的例子:class Sameple { int a,b; int sum() { return a+b; }}聲明類的對象 每當(dāng)創(chuàng)建一個類時,就是在創(chuàng)建一個新的數(shù)據(jù)類型,可以用這個數(shù)據(jù)類型去聲明這種類型的對象。
然而,獲得一個類的對象一般分兩步進(jìn)行。首先,必須聲明這個類型的一個變量,這個變量并沒有定義對象本身,而僅僅是一個可以指向?qū)ο蟮淖兞俊?/p>
第二步,必須獲得這個對象的一個實際的物理拷貝,并將其賦給已聲明的那個變量。使用new運(yùn)算完成這一步。
new運(yùn)算符為對象動態(tài)分配(即在程序運(yùn)行時分配)內(nèi)存,并為其返回一個引用。 該引用或多或少的是由new分配給對象的內(nèi)存的地址。
然后該引用被保存在變量中。因此,JAVA中所有類的對象一定是動態(tài)分配的。
下面是一個創(chuàng)建Sample類(前面定義的)對象的例子:Sample ob = new Sample(); 這條語句將剛才提到的兩步合二為一了。 可以重新寫成下面這樣一來,更清楚的表示出2步:Sample ob;ob = new Sample(); 一旦得到一個類對象,就可以使用“。
“運(yùn)算符訪問其成員。下面是通常的形式:object-name。
member-name 如,給ob的成員a賦值10,使用下面語句:ob。 a = 10;構(gòu)造函數(shù) 構(gòu)造函數(shù)在創(chuàng)建對象時立即對其進(jìn)行初始化。
構(gòu)造函數(shù)與它所在的類具有相同的名字,在語句構(gòu)成上與方法類似。然而,構(gòu)造函數(shù)沒有返回值,甚至也不返回void。
這是因為類的構(gòu)造函數(shù)隱含的返回類型是類類型本身。初始化對象的內(nèi)部狀態(tài),以便使代碼創(chuàng)建實例時有一個完全初始化的、可用的對象是構(gòu)造函數(shù)的任務(wù)。
構(gòu)造函數(shù)可以有參數(shù),這些參數(shù)接收創(chuàng)建對象時傳遞給構(gòu)造的參數(shù)。典型情況下,包含在構(gòu)造函數(shù)參數(shù)中的這些值用于初始化對象。
當(dāng)創(chuàng)建每個對象的時候,傳遞給構(gòu)造函數(shù)的參數(shù)即被指定。例如,下面是一個加到Sample類中有參數(shù)的構(gòu)造函數(shù)的例子。
class Sample { int a,b;// constructorSample(int x,int y) { a = x; b = y;}int sum() { return a+b;}。
這個從關(guān)鍵字來理解啊,
1. 如果方法定義前面加final,說明你已經(jīng)知道這個方法提供的功能已經(jīng)滿足你要求,不需要進(jìn)行擴(kuò)展,并且也不允許任何從此類繼承的類來覆寫這個方法,但是繼承仍然可以繼承這個方法,也就是說可以直接使用。
2. 如果方法定義前面加static,表示靜態(tài)方法,方法和類關(guān)聯(lián),直接由類名來調(diào)用。
3. 如果方法定義前面加abstract,表示抽象方法,由繼承類來實現(xiàn)。
4. 對于方法前面的public, private,protected等這些是控制方法可以被調(diào)用的范圍。
5. 如果方法定義前面有native,Native方法是由另外一種語言(如c/c++,FORTRAN,匯編)實現(xiàn)的本地方法。因為在外部實現(xiàn)了方法,所以在java代碼中,就不需要聲明了,有點(diǎn)類似于借口方法,一般用不著。
6.如果方法定義前面加synchronized,表示當(dāng)前方法體是一個臨界區(qū),通過鎖機(jī)制來控制多個線程同步,在多線程應(yīng)用里面經(jīng)常使用。
Java程序在運(yùn)行時,Java運(yùn)行時系統(tǒng)一直對所有的對象進(jìn)行所謂的運(yùn)行時類型標(biāo)識。
這項信息紀(jì)錄了每個對象所屬的類。虛擬機(jī)通常使用運(yùn)行時類型信息選準(zhǔn)正確方法去執(zhí)行,用來保存這些類型信息的類是Class類。
Class類封裝一個對象和接口運(yùn)行時的狀態(tài),當(dāng)裝載類時,Class類型的對象自動創(chuàng)建。Class沒有公共構(gòu)造方法。
Class對象是在加載類時由Java虛擬機(jī)以及通過調(diào)用類加載器中的defineClass方法自動構(gòu)造的,因此不能顯式地聲明一個Class對象。虛擬機(jī)為每種類型管理一個獨(dú)一無二的Class對象。
也就是說,每個類(型)都有一個Class對象。運(yùn)行程序時,Java虛擬機(jī)(JVM)首先檢查是否所要加載的類對應(yīng)的Class對象是否已經(jīng)加載。
如果沒有加載,JVM就會根據(jù)類名查找.class文件,并將其Class對象載入?;镜腏ava類型(boolean、byte、char、short、int、long、float和double)和關(guān)鍵字void也都對應(yīng)一個Class對象。
每個數(shù)組屬于被映射為Class對象的一個類,所有具有相同元素類型和維數(shù)的數(shù)組都共享該Class對象。一般某個類的Class對象被載入內(nèi)存,它就用來創(chuàng)建這個類的所有對象。
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:3.398秒