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