1. 程式人生 > >【JAVA零基礎入門系列】Day12 Java類的簡單應用

【JAVA零基礎入門系列】Day12 Java類的簡單應用

object dsa tle 多行註釋 兩個 內容 ice public 所有

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

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

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

  這裏順便介紹一下Java註釋的正確使用姿勢。註釋是插在源代碼中間用於對代碼進行說明的文字,不會被編譯和執行。代碼不僅僅是用來編譯的,更是用來閱讀的,因此寫上足夠多的註釋是有必要的,這樣可以保證自己在以後回過頭來看自己寫的破代碼的時候寫的是什麽鬼,如果將自己寫代碼的思路也記錄下來的話,那就更方便自己以後的對比提升了。

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

  1.單行註釋,使用//

  2.多行註釋,使用/* 代碼 */

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

/*GOODS類
主要用於記錄商品信息,並提供商品信息的訪問方法
*/
public
class Goods{
  //實例域,用於存儲商品信息
private String title=""; private double price=0.0; private String link = "";
  
  //構造器1
public Goods(String aTitle,double
aPrice,String aLink){ title = aTitle; price = aPrice; link = aLink; }   //構造器2 public Goods(String aTitle,double aPrice){ title = aTitle; price = aPrice; link = "www.baidu.com"; }   //構造器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; }   //設置商品標題 public void setTitle(String aTitle){ title = aTitle; }   //設置商品價格 public void setPrice(double aPrice){ price = aPrice; }   //設置商品鏈接 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這樣的工具,這裏因為還沒有介紹,所以先不使用。

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

package pers.frank.test;

/**
 * Cart類
 * 購物車類用於管理商品和預算信息
 * 提供添加商品,獲取預算,修改預算等方法
 */
public class Cart {
    //實例域
    Goods[] goodsList = new Goods[20];//商品列表,因為還沒有介紹列表跟集合,所以先使用數組存儲,先假設你不會買超過20件商品
    int goodsNum = 0;//商品數量
    double budget = 0.0;//預算
    double totalPrices = 0.0;//當前商品總價

    //構造函數
    public Cart(double aBudget){
        budget = aBudget;
    }

    //獲取商品總價
    public double getTotalPrices() {
        return totalPrices;
    }

    //獲取預算
    public double getBudget() {
        return budget;
    }

    //修改預算
    public void setBudget(double aBudget) {
        budget = aBudget;
    }

    //添加商品,預算足夠則返回真,不夠則返回假
    public boolean addGoods(Goods aGoods){
        //先判斷預算
        if(totalPrices + aGoods.getPrice() > budget){
            return false;
        }
        //預算足夠則添加
        //遍歷數組,尋找元素為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("購物車內商品數量:" + goodsNum + " 商品總價:" + totalPrices);
        for( Goods a: goodsList){
            if (a == null) continue;
            a.print();
        }
    }
}

  這裏的代碼沒有太多需要介紹的東西,註釋裏已經寫的很詳細了。關於數據描述和使用的類已經構建好了,接下來只需要使用它們就可以了。

public class Test{
    public static void main(String[] args) {
        double budget = 20000;//預算
        Cart myCart = new Cart(budget);//實例化一個購物車對象
        //創建商品對象數組
        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");

        //循環添加商品
        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("商品添加失敗!當前預算:" + myCart.getBudget() + " 當前商品總價:"+ myCart.getTotalPrices()+" 要添加的商品價格:" + goodsList[i].getPrice());
                break;
            }
        }

        //打印購物車內所有商品信息
        myCart.showGoodsList();
    }
}

  輸出如下:

商品添加成功!標題:goodsA 價格:10000.0 鏈接:link1
商品添加成功!標題:goodsB 價格:6000.0 鏈接:link2
商品添加失敗!當前預算:20000.0 當前商品總價:16000.0 要添加的商品價格:6000.0
購物車內商品數量:2 商品總價:16000.0
title:goodsA price:10000.0 link:link1
title:goodsB price:6000.0 link:link2

  我們的類的簡單應用就編寫完成了,當然這個類並不完善,有些更復雜的概念還沒有介紹,這裏只是為了演示類的正確使用姿勢而設計的,不要過於糾結於細節。

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

  至此,本篇就結束了,之後會介紹關於類的更多內容,歡迎大家繼續關註!

【JAVA零基礎入門系列】Day12 Java類的簡單應用