不能成功,clone方法用protected修饰,只能在本包中使用。
1.须要被克隆的类实现cloneable接口。2.被克隆对象若含有引用类变量时,须要实现深度克隆
从安全性角度来讲,修饰为public容易使得原方法和属性容易被改变。
Arrays.sort(personList,(o1,o2)->o1.getName().compareTo(o2.getName()));
 ###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 |