不能成功,clone方法用protected修飾,只能在本包中使用。
1.須要被克隆的類實現cloneable接口。2.被克隆對象若含有引用類變量時,須要實現深度克隆
從安全性角度來講,修飾爲public容易使得原方法和屬性容易被改變。
Arrays.sort(personList,(o1,o2)->o1.getName().compareTo(o2.getName()));
![](http://images2017.cnblogs.com/blog/1123275/201710/1123275-20171029105652023-2006558494.png) ###2.2. 分析下列代碼,回答shapeComparator所指向的對象與Comparator接口有什麼關係? Comparator<Shape> shapeComparator = new Comparator<Shape>() { @Override public int compare(Shape o1, Shape o2) { //你的代碼 } }; - 實現了comparator的接口,重寫了其方法 ###2.3 題集:6-1(匿名內部類)實驗總結。你以爲使用匿名內部類有什麼好處? - 更加簡單明瞭 ##3. PTA實驗總結 ###3.1 PTA(自定義接口)。並回答:相比較不寫接口,直接寫一個類包含IntegerStack相應的方法來講,定義IntegerStack接口,而後定義其實現類這種方式有什麼好處? - 方便不一樣環境下使用,根據需求修改簡單 ###3.2 PTA(靜態內部類)。並回答:你以爲何時應該使用靜態內部類?靜態內部類與內部類有什麼區別? - 當須要訪問別的靜態成員。靜態內部類能夠無外部類成員建立 ###3.3 PTA(繼承覆蓋綜合練習-Person、Student、Employee、Company)。並回答:使用Collections.sort對引用類型數組進行排序須要有一個什麼前提條件? - 實現接口comparable ##4.大做業-繼續完善(嘗試使用接口改造大家的系統) ###參考Case-StudentDao.zip案例 ###假設在不一樣的實現中,購物車裏的商品有的是存放在ArrayList,有的是存放在數組中。 ###4.1 如今但願將系統中購物車的操做抽象到相應的DAO接口。
public interface CarDao{
public double getTotal();
public boolean removeGoods(Goods goods);
public boolean addGoods(Goods goods,int num);
}```java
package AboutShopping; import java.util.*; /** 201621123090 鍾其均* */ public class ShoppingCartList implements ShoppingCartDao { private List<GoodsItem> goodsList = new ArrayList<GoodsItem>(); @Override public int addGoods(Integer goodsId) { boolean b = Storage.storageGoodsList.containsKey(goodsId); if (b) { int flag = 0; Goods goods=null; GoodsItem cartGoodsItem = null; GoodsItem storageGoodsItem = Storage.storageGoodsList.get(goodsId); for (int i = 0; i < goodsList.size(); i++) { cartGoodsItem = goodsList.get(i); } goods = cartGoodsItem.getGood(); if (goods.getGoodId().equals(goodsId)) { flag = 1; } } } if (flag == 0) { goodsList.add(new GoodsItem(storageGoodsItem.getGood(), 1)); } return 1; } else { if (cartGoodsItem.getCount() < storageGoodsItem.getCount()) { cartGoodsItem.setCount(cartGoodsItem.getCount() + 1); return 1; }// 成功添加。 } else return 0;// 庫存不足 } } else return -1;// 倉庫沒有該商品 }
public class Main{ public static void main(String[] args) { Goods[] goods = new Goods[2]; goods[0]=new Goods("機械鍵盤",598,1); goods[1]=new Goods("java課本",89,1); GoodsDao sdm = new GoodsDaoArrayImpl(50);//使用數組實現 //GoodsDao sdm = new GoodsDaoListImpl();//使用列表實現 System.out.println("===========計算總價格========"); for(Goods e:goods){ if(sdm.getTotal(e)){ System.out.println("%f",total); } } System.out.println("===========添加商品========"); for(Goods e:goods){ if(!sdm.addGoods(e)){ System.out.println("添加商品失敗!"); }else{ System.out.println("添加商品成功!"); } System.out.println("===========刪除商品========"); for(Goods e:goods){ if(!sdm.removeGoods(e)){ System.out.println("刪除商品失敗!"); }else{ System.out.println("刪除商品成功!"); } }
DAO(Data Access Object)接口是一個數據訪問接口,當咱們實現了這個接口,咱們能夠經過這個接口來編寫不一樣的類,使用不一樣的方法來實現數據的存儲。數組
將四個對象進行排序
不行這樣沒法調用父類的構造方法
多個類用toString方法進行了覆蓋操做
周次 | 總行數 | 新增行數 | 總文件數 | 新增文件數 |
---|---|---|---|---|
1 | 73 | 73 | 3 | 3 |
2 | 468 | 468 | 91 | 9 |
3 | 411 | 411 | 27 | 9 |
4 | 503 | 503 | 42 | 13 |
5 | 608 | 608 | 25 | 22 |
6 | 356 | 356 | 4 | 2 |