零基礎(chǔ)入門學習java第十二節(jié):Java類的簡單應(yīng)用

俗話說的好,實踐出真知,所以除了理論知識掌握扎實以外,更重要的是要多加操練,這樣才能掌握核心科技。

今天我們就用剛學會的類來實踐一下,目標便是完成上一篇中的剁手任務(wù)。

我們的商品類已經(jīng)準備好了,代碼重新羅列一次,這里增加了一個重載方法,關(guān)于重載這里不過多介紹,以后會專門文章介紹,這里把它當成一個普通方法就好了,主要用來比較兩個商品是否相等,如果對代碼不熟悉的話可以再返回去看一下上一篇文章。

這里順便介紹一下Java注釋的正確使用姿勢。注釋是插在源代碼中間用于對代碼進行說明的文字,不會被編譯和執(zhí)行。代碼不僅僅是用來編譯的,更是用來閱讀的,因此寫上足夠多的注釋是有必要的,這樣可以保證自己在以后回過頭來看自己寫的破代碼的時候?qū)懙氖鞘裁垂?,如果將自己寫代碼的思路也記錄下來的話,那就更方便自己以后的對比提升了。

Java中的注釋方法主要有三種:

1.單行注釋,使用//

2.多行注釋,使用/ 代碼 /

3.文檔注釋,使用/* 代碼 / 這種格式是為了便于javadoc程序自動生成文檔。這里先不做介紹,之后會又專門一篇來做講解。

/*GOODS類

主要用于記錄商品信息,并提供商品信息的訪問方法

*/

public class Goods{

//實例域,用于存儲商品信息

private String title="";

private double price=0.0;

private String link = "";

//構(gòu)造器1

public Goods(String aTitle,double aPrice,String aLink){

title = aTitle;

price = aPrice;

link = aLink;

}

//構(gòu)造器2

public Goods(String aTitle,double aPrice){

title = aTitle;

price = aPrice;

link = "www.baidu.com";

}

//構(gòu)造器3

public Goods(double aPrice){

price = aPrice;

title = "Goods";

link = "www.baidu.com";

}

//取商品標題

public String getTitle(){

return title;

}

//取商品價格

public double getPrice(){

return price;

}

//取商品鏈接

public String getLink() {

return link;

}

//設(shè)置商品標題

public void setTitle(String aTitle){

title = aTitle;

}

//設(shè)置商品價格

public void setPrice(double aPrice){

price = aPrice;

}

//設(shè)置商品鏈接

public void setLink(String aLink){

link = aLink;

}

//輸出商品信息

public void print(){

System.out.println("title:"+title+" price:"+price+" link:"+link);

}

//重載equals判斷方法

@Override

public boolean equals(Object obj) {

return super.equals(obj);

}

}

這樣一注釋,這個類的功能就很清晰了,人家一看就知道你要做什么瞎操作了,當然,如果每次使用類都要上類的源碼查看的話,也確實不方便,所以才有了Javadoc這樣的工具,這里因為還沒有介紹,所以先不使用。

接下來,我們需要一個購物車來存放商品。因為只需要管理一個購物車,所以預(yù)算類就先不寫了,不然也有些太小題大做了。

package pers.frank.test;

/**

* Cart類

* 購物車類用于管理商品和預(yù)算信息

* 提供添加商品,獲取預(yù)算,修改預(yù)算等方法

*/

public class Cart {

//實例域

Goods[] goodsList = new Goods[20];//商品列表,因為還沒有介紹列表跟集合,所以先使用數(shù)組存儲,先假設(shè)你不會買超過20件商品

int goodsNum = 0;//商品數(shù)量

double budget = 0.0;//預(yù)算

double totalPrices = 0.0;//當前商品總價

//構(gòu)造函數(shù)

public Cart(double aBudget){

budget = aBudget;

}

//獲取商品總價

public double getTotalPrices() {

return totalPrices;

}

//獲取預(yù)算

public double getBudget() {

return budget;

}

//修改預(yù)算

public void setBudget(double aBudget) {

budget = aBudget;

}

//添加商品,預(yù)算足夠則返回真,不夠則返回假

public boolean addGoods(Goods aGoods){

//先判斷預(yù)算

if(totalPrices + aGoods.getPrice() > budget){

return false;

}

//預(yù)算足夠則添加

//遍歷數(shù)組,尋找元素為null的位置

int i = 0;

for(; i < goodsList.length; i++){

if(goodsList[i] == null) {

goodsList[i] = aGoods;

break;

}

}

if(i == goodsList.length)

return false;

totalPrices = totalPrices + aGoods.getPrice();

goodsNum++;

return true;

}

//遍歷輸出購物車中的商品信息

public void showGoodsList(){

System.out.println("購物車內(nèi)商品數(shù)量:" + goodsNum + " 商品總價:" + totalPrices);

for( Goods a: goodsList){

if (a == null) continue;

a.print();

}

}

}

這里的代碼沒有太多需要介紹的東西,注釋里已經(jīng)寫的很詳細了。關(guān)于數(shù)據(jù)描述和使用的類已經(jīng)構(gòu)建好了,接下來只需要使用它們就可以了。

public class Test{

public static void main(String[] args) {

double budget = 20000;//預(yù)算

Cart myCart = new Cart(budget);//實例化一個購物車對象

//創(chuàng)建商品對象數(shù)組

Goods[] goodsList = new Goods[3];

goodsList[0] = new Goods("goodsA",10000,"link1");

goodsList[1] = new Goods("goodsB",6000,"link2");

goodsList[2] = new Goods("goodsC",6000,"link3");

//循環(huán)添加商品

for (int i = 0; i < goodsList.length; i++){

if (myCart.addGoods(goodsList[i]) == true){

//添加成功

System.out.println("商品添加成功!標題:" + goodsList[i].getTitle() + " 價格:" + goodsList[i].getPrice() + " 鏈接:"+ goodsList[i].getLink());

}else {

//添加失敗

System.out.println("商品添加失??!當前預(yù)算:" + myCart.getBudget() + " 當前商品總價:"+ myCart.getTotalPrices()+" 要添加的商品價格:" + goodsList[i].getPrice());

break;

}

}

//打印購物車內(nèi)所有商品信息

myCart.showGoodsList();

}

}

輸出如下:

商品添加成功!標題:goodsA 價格:10000.0 鏈接:link1

商品添加成功!標題:goodsB 價格:6000.0 鏈接:link2

商品添加失??!當前預(yù)算:20000.0 當前商品總價:16000.0 要添加的商品價格:6000.0

購物車內(nèi)商品數(shù)量:2 商品總價:16000.0

title:goodsA price:10000.0 link:link1

title:goodsB price:6000.0 link:link2

我們的類的簡單應(yīng)用就編寫完成了,當然這個類并不完善,有些更復雜的概念還沒有介紹,這里只是為了演示類的正確使用姿勢而設(shè)計的,不要過于糾結(jié)于細節(jié)。

我們可以看出,測試用的主要代碼其實很少,因為我們把具體實現(xiàn)都封裝在了類里,只需要按規(guī)則使用類中的方法就可以了。這就好比蓋房子,不是直接用石頭木材堆出來的,而是先加工成磚瓦門窗,然后再搭建。使用這些磚瓦門窗當然要比直接使用石頭木材方便得多。使用類的便利性也在于此。我們把商品跟購物車類構(gòu)建好之后,如果某些地方需要修改,只需要在相應(yīng)的類中進行修改即可,只要對外提供的方法沒有改變,那么調(diào)用這些代碼的其他代碼就不需要進行修改,這樣就能降低代碼的耦合度。

至此,本篇就結(jié)束了,之后會介紹關(guān)于類的更多內(nèi)容,歡迎大家繼續(xù)關(guān)注!

真正重要的東西,用眼睛是看不見的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容