劉妍東
摘 要 在面向?qū)ο蟮木幊趟枷胫?,java類的設(shè)計是學(xué)習(xí)中的難點(diǎn)也是重中之重,類能否設(shè)計好,也是能否學(xué)習(xí)好面向?qū)ο蟮木幊陶Z言。通過生活中的實例分析到最后java類代碼的完成,能給學(xué)習(xí)者啟發(fā)。
關(guān)鍵詞 抽象 java類 代碼
1抽象
現(xiàn)實生活中的事物隨處可見,例如,我們身邊的人、大街上的汽車、隨身攜帶的各種用途卡等都是看的見、摸得著的事物。我們把這些事物都稱之為對象。對象有很多都屬于相同的種類。如各種不同膚色、不同職業(yè)的人,都屬于人類。如各式各樣的車,都屬于車類。各種用途的卡,都屬于卡類。我們就可以說,類是對象的抽象,對象是類的實例化。
在面向?qū)ο蟪绦蛟O(shè)計中, 類是由屬性和行為組成的。上述這些對象都有屬性和行為。例如,人有年齡、身高、體重等屬性;跑、跳等行為。車有車牌、車型、顏色等屬性;行駛、停止等行為。卡有卡號、密碼等屬性;取款、存款等行為。屬性通過數(shù)據(jù)來體現(xiàn),行為通過具體功能來實現(xiàn)。
2轉(zhuǎn)換
銀行卡在我們生活中必不可少,據(jù)社會科學(xué)文獻(xiàn)出版社統(tǒng)計,大學(xué)生平均擁有信用卡的數(shù)量已超過2張,如何將現(xiàn)實中的銀行卡變成計算機(jī)世界的類呢?接下來我們用java語言來實現(xiàn)卡類的設(shè)計。
首先我們要提取卡的共同點(diǎn),也就是卡具有的屬性。如發(fā)卡行、卡號、卡主名、有效日期、背后驗證碼。還有我們看不到的屬性,如密碼、余額、卡主的電話號碼、身份證號、消費(fèi)記錄等。接下來提取卡具有的行為,包括存款、取款、刷卡消費(fèi)、轉(zhuǎn)賬、繳費(fèi)等等。其中,發(fā)卡行、卡號等能用具體的值來描述的屬性,在類里面將轉(zhuǎn)換為成員變量。存取款、轉(zhuǎn)賬等這些可執(zhí)行操作,在類里面轉(zhuǎn)換為成員方法。根據(jù)我們的需要可以只保留常用的成員變量和成員方法。我們給它們加上標(biāo)點(diǎn)符號,看看是不是有些程序語言的結(jié)構(gòu)了。
銀行卡{
卡號;
余額;
存款(){ }
取款(){ }
查詢余額(){ }
}
3生成java代碼
在轉(zhuǎn)化為java語言的類時,我們還需要再考慮這些成員變量的取值,可以通過取值來決定成員變量的數(shù)據(jù)類型。如卡號。我們可以注意到,卡號是由長長的一串?dāng)?shù)字組成,而且不需要參與運(yùn)算,這樣我們就可以把卡號定義為“字符串”類型。余額,表示卡里存儲的錢,如66元6角8分。允許存在小數(shù)點(diǎn),這樣余額就可以定義為實型,如“雙精度”類型。存款、取款、查詢余額這些操作我們暫時先定義“無返回值”類型。最后,在“銀行卡”前面加一個“class”,class是定義類的關(guān)鍵字?,F(xiàn)在,這就是一個我們定義好的“銀行卡類”。
class 銀行卡{
String 卡號;
double 余額;
void 存款(){ }
void取款(){ }
void查詢余額(){ }
}
中文呈現(xiàn)在源代碼中不太合適。下面我們用規(guī)范的命名方法來重新修改一下,一般采用見名知意原則來命名。如類,銀行卡,就可以命名為card。卡號,命名為cardNo。余額用balance來表示。存款用deposit來表示。取款用withdraw表示,最后,查詢余額可以用getBalance表示。到此為止,我們的銀行卡類就設(shè)計完成,該類中包括2個成員變量,3個成員方法。我們再把3個成員方法加上方法體,一個簡單的類完成了。
class Card{
String cardNo;
double balance;
void deposit(double d){
balance+=d;
System.out.println(“存款”+ d +”元 余額為 ”+balance+”元”);
}
void withdraw(double d){
balance-=d;
System.out.println(“取款”+ d +”元 余額為 ”+balance+”元”);}
}
void getBalance(){
System.out.println(“余額”+balance+“元”); }
}
}
類設(shè)計完成后,就可以通過這個類來生成一個個具體的銀行卡對象了。我們先試試生成一個簡單的對象測試一下card類。首先定義一個測試類,Test,然后寫上標(biāo)準(zhǔn)的主方法。
public class Test {
public static void main(String[] args) {
Card debitCard=new Card();
debitCard.deposit(200);
}
}
在主方法中, 使用Card類生成debitCard對象,我們用new(閃爍)關(guān)鍵字調(diào)用默認(rèn)的構(gòu)造方法(Card()閃爍),這樣debitCard對象中的值都賦為默認(rèn)值,cardNo值為NULL,balance值為0.0。最后,使用debitCard.deposit來調(diào)用存款方法。參數(shù)200,代表存了200元。
由Card類實例化了一個名為debitCard的對象,初始值為0,我們往里面存了200元,現(xiàn)在卡里就有200元了。
4總結(jié)
最后,我們再回憶一下,在類的設(shè)計中,涉及到了幾個的概念。
類是封裝了一類對象的狀態(tài)和方法。是現(xiàn)實世界中事物的抽象集合。類具有完整的功能和相對的獨(dú)立性。對象:是現(xiàn)實世界中可以明確標(biāo)識的任何事物。在程序中,對象由類來創(chuàng)建。成員變量:是用來描述類的屬性,反映類的狀態(tài)和特征。成員方法:是用來說明類的行為,反映類中對數(shù)據(jù)的操作。
同學(xué)們,是不是設(shè)計一個類很簡單,你們也來設(shè)計一個吧。